delphi - 将 ZSQLProcessor.Script.Text 从 ZeosLib 迁移到 FireDAC for MySQL
问题描述
正在尝试将应用程序迁移到 Delphi 10.2 上的 FireDAC 使用,并且只使用此功能: Source on github
procedure TMainForm.ExecuteScript(script: string; memo: TMemo);
var
Log: TStringList;
FN: string;
begin
ShowHourGlassCursor;
ZSQLProcessor.Script.Text := script;
try
ZSQLProcessor.Connection.StartTransaction;
ZSQLProcessor.Execute;
ZSQLProcessor.Connection.Commit;
except
on E:Exception do
begin
ZSQLProcessor.Connection.Rollback;
memo.Text := E.Message;
Exit;
end;
end;
卡住了,无法相处,任何帮助都会很好:
ZSQLProcessor.Script.Text := script;
没有最后一部分的转换函数如下所示:
procedure TMainForm.ExecuteScript(script: string; memo: TMemo);
var
Log: TStringList;
FN: string;
begin
ShowHourGlassCursor;
//ZSQLProcessor.Script.Text := script;
try
MyTrinityConnection.StartTransaction;
FDScript1.ValidateAll;
FDScript1.ExecuteAll;
MyTrinityConnection.Commit;
except
on E:Exception do
begin
MyTrinityConnection.Rollback;
memo.Text := E.Message;
Exit;
end;
end;
解决方案
要将单个 SQL 脚本分配给TFDScript对象,您只需将一个TFDSQLScript项目添加到TFDSQLScripts集合并将其SQL字符串列表集合文本设置为您选择的 SQL 命令,例如:
FDScript1.SQLScripts.Add.SQL.Text := script; { ← this adds one TFDSQLScript item to the script collection and to this just added item assigns a SQL script }
当然,这假设TFDSQLScripts集合是清晰的,如果之前没有调用Clear。
推荐阅读
- python - 在 Discord.py 中为用户添加频道覆盖
- git - 如何将修复提交提升为 Git 中的常规提交?
- sql - 为什么它不显示单组功能?
- unity3d - 如何在 Unity 中加入精灵
- javascript - 通过 Javascript 向 Json 添加数据
- javascript - DataTable 库未在表上建立
- jupyter-notebook - Anaconda 不会更改 Jupyter 的环境,必须重新启动。(赢 10)
- ruby-on-rails - 如何使用 Ruby on Rails 处理数据库可伸缩性
- r - 在 purrr::map 中重新创建小标题
- javascript - 在网络应用程序中使用 Firebase Firestore,我可以排除某些字段被返回吗?