在运用sql子句set时遇到麻烦,如果字段的名称不能事先设定,要根据程序运行的结果而定,这个字段是n1、n2、n3、n4、n5其中之一,不知这个set语句如何写,高人赐教。
dm.sqlx5.SQL.Add('update jsk ');
dm.sqlx5.SQL.Add('set n1=32');
........
dm.sqlx5.SQL.Add('update jsk ');
dm.sqlx5.SQL.Add('set n1=32');
........
解决方案 »
- ERP,CRM开发整体源代码(VB.net+SQLSERVER),有演示
- 数据传输问题!!!
- 关于共享软件开发的问题。我想请问制作共享软件,是否需要交税是否需要到工商局去登记注册什么的。
- 哪里有关于TChart/DBChart的中文详细介绍 说明(书或电子书)?
- 如何得知当前WINDOWS操作系统的文件夹的名字?
- 如何得知adoquery是否处于编辑状态。
- sql语句,不知道该怎么写
- 动态库以及第三方控件的问题,请高手帮忙!!
- delphi7 如何显示CAD图
- delphi进销存项目200用户并发的报价多钱
- DevExpres和FastReport相冲突了,有什么好办法解决?
- TObject 存在于内存中吗?
dm.sqlx5.SQL.Add('set :n1=32'); dm.sqlx5.SQL.ParamByName('n1').Value='n1';
执行以下语句:
错误提示: sqlx5:parameter'n1' not found
可是parameter'n1'已定义了,不知为何?????===========================================================
dm.sqlx5.SQL.Add('update jsk ');
dm.sqlx5.SQL.Add('set :n1=0 ');
dm.sqlx5.SQL.Add('where InvNo=:pp and Payer=:kk and IssuedDate=:dd ');
dm.sqlx5.Parameters.ParamByName('n1').Value:='n1';///(或字段表达式)
..................
dm.sqlx5.SQL.Add('set :n1=32'); dm.sqlx5.SQL.ParamByName('n1').Value='n1';
dm.sqlx5.SQL.Add('update jsk set');
dm.sqlx5.SQL.Add(strCol);
dm.sqlx5.SQL.Add('=0 ');
dm.sqlx5.SQL.Add('where InvNo=:pp and Payer=:kk and IssuedDate=:dd ');
这一句通不过编译,用的是d7dm.sqlx5.SQL.ParamByName('n1').Value:='n1';
dm.sqlx5.SQL.Add('update jsk ');
dm.sqlx5.SQL.Add('set n1=32');
.................
var
c: string;
....
c := 'n1';// c:= 'n2';
...
dm.sqlx5.SQL.Add('update jsk ');
dm.sqlx5.SQL.Add('set '+ c+ '=32');
这个明显有问题嘛,这样写的话,sql语句成了:
update jsk set 'n1'=32这里不能用参数的,只能老老实实地用字符串拼起来。