表js中存放的分别是
tj(条件) ys(运算公式)
xj>20 bm='hhhhh'
................
表ybbdy中存放被计算的数据
字段有xj,bm,name,....
下面代码adoquery1从表js中取出条件,放到变量中
adoquery2利用条件计算,在SQL语句中,允许使用ktj,但不允许kys,系统提示“应用程序定义paramter对象的方式不适当”,请教,我如何实现我的计算?是不是sql语句中不允许这样做?
我想实现的功能类似vfp中的宏代换,把不同的计算式放至变量kys中,代入update语句中以实现对数据库不同的运算。至于计算式的内容由用户在专用的模块中写入,这样无论怎样变化,程序都能适应,系统开发者不用维护程序源码,以增加程序的灵活性.
我的思路是否可行?各位大侠有何高见?procedure TForm1.Button1Click(Sender: TObject);
var
ktj,kys:String;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from js');
ADOQuery1.Open;
ktj:=ADOQuery1.FieldValues['tj']; //ktj值是'xj>20'
kys:=ADOQuery1.Fieldvalues['ys']; //ksy值是'bm='hhhhh''
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('update ybbdy set '+kys+' where '+ktj);//这句不行
ADOQuery2.ExecSQL;
end;
tj(条件) ys(运算公式)
xj>20 bm='hhhhh'
................
表ybbdy中存放被计算的数据
字段有xj,bm,name,....
下面代码adoquery1从表js中取出条件,放到变量中
adoquery2利用条件计算,在SQL语句中,允许使用ktj,但不允许kys,系统提示“应用程序定义paramter对象的方式不适当”,请教,我如何实现我的计算?是不是sql语句中不允许这样做?
我想实现的功能类似vfp中的宏代换,把不同的计算式放至变量kys中,代入update语句中以实现对数据库不同的运算。至于计算式的内容由用户在专用的模块中写入,这样无论怎样变化,程序都能适应,系统开发者不用维护程序源码,以增加程序的灵活性.
我的思路是否可行?各位大侠有何高见?procedure TForm1.Button1Click(Sender: TObject);
var
ktj,kys:String;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from js');
ADOQuery1.Open;
ktj:=ADOQuery1.FieldValues['tj']; //ktj值是'xj>20'
kys:=ADOQuery1.Fieldvalues['ys']; //ksy值是'bm='hhhhh''
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('update ybbdy set '+kys+' where '+ktj);//这句不行
ADOQuery2.ExecSQL;
end;
============================
提示update语法错误
---------------------------
把那个UPDATE语句SHOW出来看一下,看看显示的是什么
=============
怎么做?
sSql := 'update ybbdy set '+kys+' where '+ktj;
ADOQuery2.SQL.Add(sSql);
然后看看sSql的内容到底是什么,你可以有针对性的修改一下。
sSql语句里应该是下面这样的才是对的:
'update ybbdy set bm='hhhh' where xj>20'