该话题的继续延伸主要就是 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, AArg2, AArg3, 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 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
分类:
数据库编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2010-05-29 一个分割文本文件的小程序 - 回复 "jellyang" 的问题
2008-05-29 WinAPI: SelectClipRgn、ExtSelectClipRgn、SelectClipPath - 定义剪切区域
2008-05-29 用 Memo 读取 UniCode 编码的文本文件 - 回复 "ahgan" 的问题
2008-05-29 获取窗口矩形的四种方法: GetClientRect、ClientRect、GetWindowRect、BoundsRect