sqlite使用dbexpress时数据库不存在自动建立数据库
在发布使用delphi dbexpress编写的基于SQLITE的程序时,需要在运行时判断某个数据库是否存在,如果不存在,则自动建立。
方法有2,其中之一是判断数据库文件是否存在,如果不存在,则创建一个文件,然后再连接该文件。方法二是直接在params中增加一个键值。
方法一:
var i:Integer; begin if not FileExists('lhq.sqlitedb') then //如果文件不存在 begin i:=FileCreate('lhq.sqlitedb'); //创建文件 FileClose(i); //必须关闭文件才能完成创建 end; con1.Params.Values['database']:='lhq.sqlitedb'; //修改数据库为创建的文件 con1.Open; //连接数据库 end;
方法二:
修改dbxconnections.ini,在SQLITECONNECTION栏中添加FailIfMissing=false,代码如下:
[SQLITECONNECTION] DriverName=Sqlite Database=test.db FailIfMissing=false
默认情况下,FailIfMissing=true,改为false后,如果数据库不存在则不报错。
如果不修改dbxconnections,也可直接在params下添加此键值即可,代码如下:
begin {if not FileExists('lhq.sqlitedb') then begin i:=FileCreate('lhq.sqlitedb'); FileClose(i); end; con1.Params.Values['database']:='lhq.sqlitedb'; con1.Open;} con1.Params.Add('FailIfMissing=false'); con1.Open; end;