Delphi:SQLite 和 UniDac

标签 delphi sqlite unidac

需要在SQLite中存储一些数据。为了使用 SQLite,选择了 UniDac,但有一个问题:在 UniConnection 中的“数据库”字段中,我选择 SQLite 并输入数据库的名称 - 收到错误“不支持的元数据类型”。未创建数据库文件。问题是什么?由于之前与 UniDac 合作过,因此没有观察到此类问题。

最佳答案

UniDAC 4.1.6 与 Delphi 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;

关于Delphi:SQLite 和 UniDac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10754390/

相关文章:

delphi - 图像/相框

iOS - 在更新到新版本时保留旧的 sqlite 数据库

database - QT中清空sqlite数据库

delphi - 在 Delphi XE2 上使用 UniDac 的 PostgreSQL 串行(自动增量)

delphi - 如何区分 TStringList 中的 Pointer 和 TObject 条目?

delphi - 如何在设计时从自定义 TComponentEditor 显示 ActionList 编辑器

delphi - 带有 FM3 的 Windows XP 中缺少任务栏按钮上下文菜单

android - 在 OnClickListener 事件的数据库中插入多个值

mysql - delphi独特的UPDATE和DELETE代码