delphi中SQLITE的使用方法解决办法

delphi中SQLITE的使用方法
slDBPath := ExtractFilepath(application.exename)
+ '1.db';
//
sldb := TSQLiteDatabase.Create(slDBPath);

try
if sldb.TableExists('testtablle') then begin
  ShowMessage('EXISTS');
end;
sldb.BeginTransaction;

sSQL := 'INSERT INTO testtablle '
  +'VALUES ("15",1,"2013-10-15 23:33:22");';
//do the insert
sldb.ExecSQL(sSQL);

其实目录中1.db文件是存在的,而且testtablle这个表也是存在的。这样写代码为什么搞的连表也读不出来,更别谈插入数据了,咋办?
------解决思路----------------------
从 http://www.ch-werner.de/sqliteodbc/ 下载 SQLite ODBC 驱动,
安装后,你就可以直接用 ADO 存取 SQLite,
不用思考那么麻烦的事了。
------解决思路----------------------
是不是 目录名中有中文或空格?
------解决思路----------------------
引用:
Quote: 引用:

从 http://www.ch-werner.de/sqliteodbc/ 下载 SQLite ODBC 驱动,
安装后,你就可以直接用 ADO 存取 SQLite,
不用思考那么麻烦的事了。
怎么用呢?

普通ODBC的方法啊,设置--控制面板--管理工具--数据源(ODBC)--建立SQLite数据源
------解决思路----------------------
引用:
Quote: 引用:

是不是 目录名中有中文或空格?
没有啊。。我在想就是如何连接SQLITE呢?


sqlite有几个缺陷,路径不能有中文或空格 是之一
你打印出slDBPath看看就知道是不是中这个陷阱了
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

从 http://www.ch-werner.de/sqliteodbc/ 下载 SQLite ODBC 驱动,
安装后,你就可以直接用 ADO 存取 SQLite,
不用思考那么麻烦的事了。
怎么用呢?

普通ODBC的方法啊,设置--控制面板--管理工具--数据源(ODBC)--建立SQLite数据源

就是这个
------解决思路----------------------
晕,我说了,
> 从 http://www.ch-werner.de/sqliteodbc/ 下载 SQLite ODBC 驱动,
> 安装后,你就可以直接用 ADO 存取 SQLite,

看清楚,安装后,就“直接用ADO存取SQLite”

“直接用ADO存取SQLite”,懂吗?
只要在ADO的ConnectionStr写 
Driver={SQLite3 ODBC Driver};Database=%s
把%s换成路径名即可。

这个已确定即使在Unicode版本的Delphi都不会有问题的了。
(本来什么路径空格、路径中文是有问题,
我找了那个老外,跟他反映,
最后他找到办法改掉了,
所以中文路径、空格都不会有问题)

这是习惯ADO的人最简单的使用SQLite的方法了。
------解决思路----------------------
> 另外,第三方的驱动,会不会稳定性也差一点?

他当然也是调用SQLite的DLL实现的,
和我们自己用Delphi调DLL比,
有他的持续维护更新(在他网站可以看到)
应该比我们自己调DLL要稳定吧!?

上次跟他反映他的驱动有中文应用上问题时,
连同问题沟通到问题解决,
大约只花了3-5天(中间改了3个缺陷),
这样的效率,比我们要好了。
(至少我这么觉得,要知道改底层缺陷不是那么容易的)

------解决思路----------------------
SQLite 的字符串格式默认为 UTF8,因此传送给SQLITE的字符串必须是UTF8的字符串,UTF8的英文字符和ANSI是兼容相同的,而中文是不一样的,所以正确的使用方法是传入UTF8的字符串。当然如果字符串中只有英文字符,可以直接使用ansi格式的字符。