Translate

2013/04/12

Devart Dbexpress driver for SQLite + Run-time created Encrypt Database

還記得這個網址嗎?
ID: 18385, SQLite DbExpress driver
當時可是使用內附的Demo時就悲劇了……

2008~2009年時我曾經有拿它來和Firebird作比較
當 C++ Builder 遇上 Firebird
關於dbExpress + SQLite3 怎麼用?



但事實上因為Bug無比多,所以我後來就放棄了Dbexpress + SQLite的方式


一直到Devart的出現才讓我又燃起了使用SQLite的慾望
本次介紹的主角--Devart Dbexpress driver for SQLite (*Photo from Devart)


為什麼要使用SQLite呢?

從綠色的羽毛就可以看出它的輕薄
答案很簡單,因為它能夠在不同的平台上被讀取、運作

iOS、Android上最常被用到的單機資料庫就是SQLite,如果同樣的資料庫架構可以輕鬆移轉到其它的平台上,那是多切愜意的事啊!

那麼,Devart這次要來變什麼魔術呢?

安裝步驟實在太簡單了,我就不再做介紹了

而企業上使用最常見的大概就是加密了,雖然解開後也沒什麼資料,但老闆們就是愛這一味……

而且沒問題的Demo重玩就沒意思了,哈!

所以我們就來介紹Devart的加密資料庫建立及資料表的使用吧

資料庫的建立?對,你沒聽錯,Devart的Dbexpress for SQLite driver是讓Dbexpress擁有自行建立資料庫的強大實力

首先我們要來打開Devart自帶的Demos:「%ProgramsFiles%\Devart\Dbx\SQLite\Demos\Win32\SimpleDataSet」

接下來就是設定SQLConnection.Params
參考Readme.htm的內容,我們得出以下的程式碼:
procedure TfmMain.edDatabaseExit(Sender: TObject);
begin
  if edDatabase.Text <> '' then
  begin
    SQLConnection.ConnectionName := 'Devart SQLite Direct';
    SQLConnection.DriverName := 'DevartSQLiteDirect';
    SQLConnection.LibraryName := 'dbexpsqlite40.dll';
    SQLConnection.GetDriverFunc := 'getSQLDriverSQLiteDirect';
    SQLConnection.Params.Clear;
    SQLConnection.Params.Add('DataBase='+edDatabase.Text);
    //存在時開啟,否則建立加密資料庫
    if FileExists(edDatabase.Text) then
    begin
      SQLConnection.Params.Add('ForceCreateDatabase=False');
      SQLConnection.Params.Add('EncryptionAlgorithm=Blowfish');
      SQLConnection.Params.Add('EncryptionKey=encryption key');
      SQLConnection.Params.Add('NewEncryptionKey=');
    end
    else
    begin
      SQLConnection.Params.Add('ForceCreateDatabase=True');
      SQLConnection.Params.Add('EncryptionAlgorithm=Blowfish');
      SQLConnection.Params.Add('EncryptionKey=');
      SQLConnection.Params.Add('NewEncryptionKey=encryption key');
    end;
  end
  else
    SQLConnection.Params.Values['Database'] := ' ';
end;

Project->Run後指定要建立的資料庫路徑及檔名,最後再按下「Open」,就建好囉!
按下「Open」鍵後,就可以看到資料庫建好而且也有Demo資料了


可是在Design Mode時想連結剛剛建立的加密資料庫,則會出現以下的錯誤視窗,我想可能之後的版本會改進吧。但目前只要Run-Time時期可以連就可以了
Design mode Error when TSQLConnection connect Encrypt database

以上就是 Devart Dbexpress driver for SQLite 的介紹,是不是也和我一樣覺得簡單又強大呢!

快去體驗Devart的Power吧!

沒有留言:

張貼留言

JSON Parse in Delphi XE (02)

在 JSON Parse in Delphi XE (01) 裡提到因為文字轉碼失敗引發的錯誤 今天就來試著解決這個問題 首先的判斷是: Indy 的 BUG? 那就來看看其它的軟體是否能被正確顯示: