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;