delphi 连接sqlite数据库,如果路径为中文,则需转换成UTF8格式,但有时候转换成UTF8格式后还是会报 SQLSetConnectAttr 失败。
比如 若路径为 F:\2011年4月\123.db3, 用AnsiToUtf8()转换后,连接还是会报错。我再试了一下其他路径,比如 F:\学习\2011年月\123.db3 , 这个路径转换成Utf8后,数据库又能正常连接。那这样网上笼统说的把中文转换成Utf8格式不能解决问题啊,有谁知道具体的解决办法?

解决方案 »

  1.   

    sqllite还没用过,汗。不过楼主为什么不使用英文路径呢
      

  2.   

    如果是用控件连接SQLite3,并不需要转换,控件自己就完成转换了(如我用Zeos)。除非控件要求只有你自己调用SQLite3API时才要转换。如下
    //var db: TSQLiteDB; ErrMsg: pchar; DataBase: pchar;
    SQLite3_Open(pchar(AnsiToUtf8(DataBase)), db);
    ...
    SQLite3_Exec(db, pchar(SQL), nil, nil, ErrMsg);请注意:你自己调用SQLite3API,无论路径是否中文,都要用AnsiToUtf8转换,这样程序才健壮些
      

  3.   

    用控件 TASQLite3DB
    然后 设置为utf-8  就可以解决了