查询出的字符型字段值,加工成SQL语句后如何有效执行?

秋天之落叶 2020-03-15 01:52:42
比如字段值为'A+B',且A和B均为另一个数据表的字段名,如果操作能正常执行:
if LowerCase(lx) = 'asfloat' then
XLSReadWriteII51.Sheets[0].AsFloat[k, i] := StrToFloat(ReplaceStr(ReplaceStr(str, '(', 'ADO.FieldByName('''), ')',''').asfloat'));
我想达到这个效果:
if LowerCase(lx) = 'asfloat' then
XLSReadWriteII51.Sheets[0].AsFloat[k, i] :=ADO.FieldByName('A').asfloat+ADO.FieldByName('B').asfloat;
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不行,那样是要运行时生成源代码再执行,只有解释型语言才可以,不过你可以使用脚本组件,DWS、FastScript之类的,可以运行时生成Delphi源码再解释执行
秋天之落叶 2020-03-16
  • 打赏
  • 举报
回复
引用 7 楼 早打大打打核战争 的回复:
不行,那样是要运行时生成源代码再执行,只有解释型语言才可以,不过你可以使用脚本组件,DWS、FastScript之类的,可以运行时生成Delphi源码再解释执行

原来如此,我说最后的字符串是一样的,要是能有一个标志启动脚本执行,就方便了,哈哈
下来研究一下脚本命令。
秋天之落叶 2020-03-15
  • 打赏
  • 举报
回复
引用 5 楼 早打大打打核战争 的回复:
for s in SplitString(str, '+') do begin Memo2.Lines.Add(s); AsFloat[k, i] := AsFloat[k, i] + FieldByName(s).AsFloat; end;
嗯,这个我已经实现了,哈 看来 ??? (ReplaceStr(ReplaceStr(str, '(', 'ADO.FieldByName('''), ')',''').asfloat')) 是不太好实现了?
  • 打赏
  • 举报
回复
for s in SplitString(str, '+') do
begin
Memo2.Lines.Add(s);
AsFloat[k, i] := AsFloat[k, i] + FieldByName(s).AsFloat;
end;
秋天之落叶 2020-03-15
  • 打赏
  • 举报
回复
引用 3 楼 早打大打打核战争 的回复:
uses System.StrUtils; var s: string; // ... for s in SplitString(str, '+') do Memo2.Lines.Add(s);
这也是一种拆分的方法,不知道这个语句如何执行? str:='(A)+(B)'; XLSReadWriteII51.Sheets[0].AsFloat[k, i] :=? (ReplaceStr(ReplaceStr(str, '(', 'ADO.FieldByName('''), ')',''').asfloat')); 直接执行会提示后面的不是浮点类型。其实使用asstring可以全部搞定,但是格式有点惨不忍睹,所以还是希望有数据类型。
  • 打赏
  • 举报
回复
uses System.StrUtils;

var
s: string;
// ...
for s in SplitString(str, '+') do
Memo2.Lines.Add(s);
秋天之落叶 2020-03-15
  • 打赏
  • 举报
回复
我使用TStringList解决了,但是我还是想知道delphi中有没有直接执行字符串的命令: sstr := TStringList.Create; sstr.Delimiter := '+'; sstr.DelimitedText := str; AsFloat[k, i] := 0; for s := 0 to sstr.count - 1 do begin Memo2.Lines.Add(sstr[s]); AsFloat[k, i] := AsFloat[k, i] + FieldByName(sstr[s]).AsFloat; end;
秋天之落叶 2020-03-15
  • 打赏
  • 举报
回复
其中str就是查询出的字段值: str:='A+B';

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧