delphi使用sqlite3
看了一下delphi调用sqlite3最新版本的调用,网上说的都很片面,也没有完整的资料了。
我自己研究了一下,分享出来。
在调用demo中,官方也给了一个demo但是功能很少,没有参考价值。
1.定义:
首先把sqlite3.dll放到bin目录,其他sqlite3.pas,sqlite3udf.pas和SQLiteTable3.pas放到工程目录。
引入SQLiteTable3;
sldb := TSQLiteDatabase.Create(slDBPath);
try
if sldb.TableExists('testTable') then begin
sSQL := 'DROP TABLE testtable';
sldb.execsql(sSQL);
end;
sSQL := 'CREATE TABLE testtable ([ID] INTEGER PRIMARY KEY,[OtherID] INTEGER NULL,';
sSQL := sSQL + '[Name] VARCHAR (255),[Number] FLOAT, [notes] BLOB, [picture] BLOB COLLATE NOCASE);';
上面是创建,这不是重点,这个官方demo也没啥问题。
问题是查询插入和修改时要怎么传参数,用老的方法都是不行的,
例如查询:
sldb.GetTable('SELECT ID FROM testtable where name=?',[nameparam]);
就这样传,参数才能生效。
下面这样就查不到数据,用format格式化也不行:
sldb.GetTable('SELECT ID FROM testtable where name='+QuotedStr(nameparam));