sqlite插入數據,主鍵重復怎么辦?
1.使用唯一性約束,但是如果在一個事務中批量提交,失敗會導致整個事務回滾。
2.在決定是否插入這個數據之前使用select查詢數據是否重復比較麻煩,尤其是字段比較多的時候,而且沒有效率上的對比測試。
3.使用語句ins
如何在Delphi中靜態鏈接SQLite?
1.當然是下載SQLit:amalgamation不是allinone,是corecodeallinone,源代碼里的其他文件都是不可或缺的!
2.解壓得到三個文件sqlite3.csqlite3.hsqlite3ext。
h然后把sqlite3.c編譯成obj在Delphi中使用。需要注意的是,不要用VC編譯,要用BorlandsC編譯器,比如Delphi自帶的bcc。這主要是因為VC編譯的obj是COFF格式的。Borland用的obj是命令行:bc32-PC-RT-O-W-6-I(bcc32)include-csqlite3.C3.光有sqlite3.obj是不夠的,呵呵。因為sqlite3.c有到其他庫的鏈接,所以所有要使用的obj文件都可以下載。4.現在所有的obj文件都準備好了,但是不要不要太高興,現在只完成了一小部分...要在Delphi的obj中使用這些函數,你必須首先聲明你必須首先創建一個新的單元,例如,然后指定鏈接的obj文件。比如{$lobjsqlite3_5_4.obj}{$lobstreams.obj}//duplicato{$lobj_FTOul.obj}{$lobfiles.obj}注意順序,呵呵,然后添加函數聲明,比如使用sqlite3_open方法。在sqlite的源代碼中,聲明如下:SQLite_apintsqlite3_open(constchar*fil:sqlit:函數_sqlit:汽車;vardb:point:integer;cdecl外部;注意調用方法是cdecl,函數名要以_開頭,否則你不會找到很多sqlite3函數。哦,呵呵,那這就是為什么我說這項工作只完成了一部分...5.好了,功能聲明完成,現在可以正式使用了~