Firedac连接sqlite的例子。

procedure TForm2.Button1Click(Sender: TObject);
var
  Database,s1: string;
  i:integer;
  FDConnection : TFDConnection;
  FDPhysSQLiteDriverLink1: TFDPhysSQLiteDriverLink;
  FDQuery: TFDQuery;

  resourcestring
  sSQLString = 'SELECT * FROM StdItems';
begin
   Database := 'herodb.db';
  if not FileExists(Database) then begin
    Exit;
  end;

  FDConnection := TFDConnection.Create(nil);
  with FDConnection do begin
    FetchOptions.Mode := fmAll;
    LoginPrompt := False;
    Params.Clear;
    Params.Add('DriverID=SQLite');
    Params.Add('Database=' + Database);
    Params.Add('LockingMode=Normal');
    Params.Add('Password=' + '');
    Params.Add('SQLiteAdvanced=temp_store=memory'); // ;page_size=4096
    FormatOptions.MapRules.Add(dtWideString,dtWideMemo);
    FormatOptions.MapRules.Add(dtAnsiString,dtWideMemo);
      //Connected := True;
  end;

  FDPhysSQLiteDriverLink1 := TFDPhysSQLiteDriverLink.Create(nil);
  FDQuery := TFDQuery.Create(nil);
  try
    FDQuery.Connection := FDConnection;
    FDQuery.FetchOptions.Mode := fmAll; // 返回所有
    FDQuery.ResourceOptions.SilentMode := True; // 禁用沙漏光标

    FDQuery.SQL.Clear;
    FDQuery.SQL.Add(sSQLString);

    try
      FDQuery.Open;
       // 方式1 while循环
       while not FDQuery.Eof do begin
        s1 := FDQuery.FieldByName('name').AsString;
        Memo1.Lines.Add(s1);
        FDQuery.Next;
       end;
       // 方式2 for循环
//      for i := 0 to FDQuery.RecordCount - 1 do begin
//        s1 := FDQuery.FieldByName('name').AsString;
//        Memo1.Lines.Add(s1);
//        FDQuery.Next;
//      end;
    finally
      FDQuery.Close;
    end;

  finally
    FDQuery.Free;
    FDPhysSQLiteDriverLink1.Free;
    FDConnection.Free;
  end;

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值