Delphi FireDAC 下的 Sqlite(十二) 备忘录2015-02-13该话题的继续延伸主要就是 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);beginFDConnection1.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);beginMemo1.Lines.Add(Format("%d - %s - %s - %s - %s", [ACode, AArg1, AArg2, AArg3, AArg4]));if ACode = SQLITE_DELETE thenAResult := SQLITE_DENYelseAResult := SQLITE_OK;end;//SQLite_OnUpdate 参考代码:procedure TForm1.FormCreate(Sender: TObject);beginFDConnection1.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);beginMemo1.Lines.Add(Format("%d - %s - %s - %u", [AOper, ADatabase, ATable, ARowid]));end;//快速选择到行:SELECT * FROM Orders WHERE ROWID = :RID//TFDMemTable 代替 TClientDataSetclass="Delphi">procedure TForm1.FormCreate(Sender: TObject);beginwith FDMemTable1.FieldDefs.AddFieldDef dobeginName := "word";DataType := ftString;Size := 50;end;with FDMemTable1.FieldDefs.AddFieldDef dobeginName := "ph";DataType := ftString;Size := 50;end;with FDMemTable1.FieldDefs.AddFieldDef dobeginName := "note";DataType := ftString;Size := 255;end;with FDMemTable1.FieldDefs.AddFieldDef dobeginName := "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
Author:cnblogs 万一