FireDAC 下的 Sqlite [12] - 备忘录(草草结束这个话题了)
发布时间:2020-12-12 23:51:58 所属栏目:百科 来源:网络整理
导读:该话题的继续延伸主要就是 SQL 的语法了,草草收场的原因是现在的脑筋已经进入了 IntraWeb 的世界. 相关备忘会随时补充在下面: //连接多个数据库的参考代码:FDConnection1.ExecSQL('ATTACH ''c:hr.sdb'' AS hr');FDConnection1.ExecSQL('ATTACH ''c:cust.sd
该话题的继续延伸主要就是 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 代替 TClientDataSetprocedure 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |