2
需要在SQLite中存儲一些數據。要使用SQLite選擇UniDac,但存在一個問題:在UniConnection中,在「數據庫」字段中,我選擇SQLite並輸入數據庫的名稱 - 獲取錯誤「不支持的元數據類型」。數據庫文件沒有被創建。問題是什麼?如之前與UniDac一起工作,則不會觀察到這些問題。德爾福:SQLite和UniDac
需要在SQLite中存儲一些數據。要使用SQLite選擇UniDac,但存在一個問題:在UniConnection中,在「數據庫」字段中,我選擇SQLite並輸入數據庫的名稱 - 獲取錯誤「不支持的元數據類型」。數據庫文件沒有被創建。問題是什麼?如之前與UniDac一起工作,則不會觀察到這些問題。德爾福:SQLite和UniDac
UniDAC 4.1.6與德爾福XE2我沒有看到任何問題。 SQLite3.dll必須位於系統路徑或與您的可執行文件相同的目錄中。下面的非常基本的示例在單擊btnConnect時創建數據文件。
unit uMain;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.DBGrids, UniProvider,
SQLiteUniProvider, Data.DB, MemDS, DBAccess, Uni, Vcl.ExtCtrls, Vcl.DBCtrls,
Vcl.StdCtrls;
type
TfrmMain = class(TForm)
UniDataSource1: TUniDataSource;
UniConnection1: TUniConnection;
UniQuery1: TUniQuery;
SQLiteUniProvider1: TSQLiteUniProvider;
DBGrid1: TDBGrid;
edtDBName: TEdit;
Label1: TLabel;
DBNavigator1: TDBNavigator;
btnConnect: TButton;
procedure btnConnectClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnConnectClick(Sender: TObject);
begin
if (btnConnect.Caption = 'Connect') then
begin
UniConnection1.ProviderName := 'SQLite';
UniConnection1.Database := ExtractFilePath(Application.ExeName)
+ edtDBName.Text;
UniConnection1.Connect;
btnConnect.Caption := 'Disconnect';
end
else
begin
UniConnection1.Disconnect;
btnConnect.Caption := 'Connect';
end;
end;
萬一它可能會讓你感興趣,我已經在sqlite3.dll的周圍創建了一個薄包裝器https://github.com/stijnsanders/TSQLite –