FireDAC 下的 Sqlite [12] - 备忘录(草草结束这个话题了)

前端之家收集整理的这篇文章主要介绍了FireDAC 下的 Sqlite [12] - 备忘录(草草结束这个话题了)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
该话题的继续延伸主要就是 sql 的语法了,草草收场的原因是现在的脑筋已经进入了 IntraWeb 的世界.

相关备忘会随时补充在下面:
//连接多个数据库的参考代码:
FDConnection1.Execsql('ATTACH ''c:\hr.sdb'' AS hr');
FDConnection1.Execsql('ATTACH ''c:\cust.sdb'' AS cust');
FDQuery1.Open('select * from "Orders" o ' +
 'left join hr."Employees" e on o.EmployeeID = e.EmployeeID ' +
 'left join cust."Customers" c on o.CustomerID = c.CustomerID');


//sqlite_OnAuthorize 参考代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
 FDConnection1.Connected := True;
 TsqliteDatabase(FDConnection1.ConnectionIntf.CliObj).OnAutorize := DoAuthorize;
 FDQuery1.Open;
end;

procedure TForm1.DoAuthorize(ADB: TsqliteDatabase; ACode: Integer; const AArg1,AArg2,AArg3,AArg4: String; var AResult: Integer);
begin
 Memo1.Lines.Add(Format('%d - %s - %s - %s - %s',[ACode,AArg1,AArg4]));
 if ACode = sqlITE_DELETE then
  AResult := sqlITE_DENY
 else
  AResult := sqlITE_OK;
end;


//sqlite_OnUpdate 参考代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
 FDConnection1.Connected := True;
 TsqliteDatabase(FDConnection1.ConnectionIntf.CliObj).OnUpdate := DoUpdate;
 FDQuery1.Open;
end;

procedure TForm1.DoUpdate(ADB: TsqliteDatabase; AOper: Integer; const ADatabase,ATable: String; ARowid: sqlite3_int64);
begin
 Memo1.Lines.Add(Format('%d - %s - %s - %u',[AOper,ADatabase,ATable,ARowid]));
end;


//快速选择到行:
SELECT * FROM Orders WHERE ROWID = :RID

//TFDMemTable 代替 TClientDataSet
<pre class="Delphi">procedure TForm1.FormCreate(Sender: TObject);
begin
 with FDMemTable1.FieldDefs.AddFieldDef do
 begin
  Name := 'word';
  DataType := ftString;
  Size := 50;
 end;

 with FDMemTable1.FieldDefs.AddFieldDef do
 begin
  Name := 'ph';
  DataType := ftString;
  Size := 50;
 end;

 with FDMemTable1.FieldDefs.AddFieldDef do
 begin
  Name := 'note';
  DataType := ftString;
  Size := 255;
 end;

 with FDMemTable1.FieldDefs.AddFieldDef do
 begin
  Name := 'num';
  DataType := ftInteger;
 end;

 FDMemTable1.IndexDefs.Add('Index_1','word',[ixPrimary]);
 FDMemTable1.CreateDataSet;
end;

//并发相关: http://docwiki.embarcadero.com/RADStudio/XE6/en/Using_sqlite_with_FireDAC#Locking_and_Concurrent_Updates

猜你在找的Sqlite相关文章