cra*_*gic 0 sql delphi sql-update delphi-10.2-tokyo
每当我尝试运行此代码时,它返回一个语法错误,我已经遵循了这里发布的几种格式,但我没做什么似乎工作.我怎样才能解决这个问题?
with adoQuerysupplier do
begin
sql.Clear;
sql.Add('UPDATE SupplierList');
SQL.Add('SET :Column = :newdetail');
SQL.Add('WHERE :Column1 = :OldDetail');
Parameters.ParseSQL(adoQuerysupplier.SQL.Text, True);
Parameters.ParamByName('Column').Value:= column;
Parameters.ParamByName('Column1').Value:= column;
Parameters.ParamByName('newdetail').Value:= newdetail;
Parameters.ParamByName('OldDetail').Value:= olddetail;
ExecSQL;
Run Code Online (Sandbox Code Playgroud)
所有变量都是字符串并且已成功捕获.这是我的第一个问题,所以如果我有任何格式错误,我会提前道歉.如果我需要发布更多代码,请告诉我.表名不是变量
您不能使用字段名称的参数.如果你真的必须这样做,你需要写一个大的switch语句.或者将查询构建为字符串:
sql.Add('UPDATE SupplierList');
SQL.Add('SET [' + column2 + '] = :newdetail');
SQL.Add('WHERE [' + column1 + '] = :OldDetail');
Parameters.ParseSQL(adoQuerysupplier.SQL.Text, True);
Parameters.ParamByName('newdetail').Value:= newdetail;
Parameters.ParamByName('OldDetail').Value:= olddetail;
Run Code Online (Sandbox Code Playgroud)
考虑可能的SQL注入!
| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |