在发布使用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;