Delphi中批量把双引号替换为单引号的方法
Delphi调试模式中抓出来的SQL语句中变量值是双引号,不能直接执行,要替换为单引号包裹才行。
DELPHI中双引号用''''表示,单引号用''表示。但是
//下面这种写法是错误的。执行结果是全部被替换成空了。 Memo2.Text:=StringReplace(Trim(ssql), '''', '', [rfReplaceAll]); //正确写法如下: Memo2.Text:=StringReplace(Trim(ssql), #39#39, #39, [rfReplaceAll]); //以下简易代码可以直接将调试模试ctrl+F7窗口的变量值转成正常可执行的SQL语句 procedure TForm1.Memo1Change(Sender: TObject); var ssql:string; begin ssql:=Memo1.Text; Delete(ssql, 1, 1); Delete(ssql, Length(ssql), 1); Memo2.Text:=StringReplace(Trim(ssql), #39#39, #39, [rfReplaceAll]); end;
另:经测试,DelphiXE2中调试模式中Local Variables 窗口中变量对应值最大AnsiString类型长度为3840字节,选中变量按CTRL+F7窗口中的最大长度限制了4579字节,超过这个长度会被截断丢弃。如果超长SQL语句用这种跟踪调试方法抓取的SQL语句会有丢失,建议用另存为文件的方法获取,showmessage(好像没有丢失,但是通过剪贴板复制showmessage窗口的内容会有8192字节的限制)。
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751881.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?