各位大哥,小弟有一个问题先请大家看看,急着用!!!谢谢了!!! ( 积分: 200 )

  • 主题发起人 主题发起人 xinyuan7910
  • 开始时间 开始时间
X

xinyuan7910

Unregistered / Unconfirmed
GUEST, unregistred user!
我自已自定义了一个函数,是一个小字金额转化大写金额,函数名了Xxzdx();
我在delphi中的Query组件update命令来地更新数据库时,调用这个函数,例子如下:
Query1.close;
Query1.sql.clear;
Query1.sql.add('update 表名 set 大写金额字段=Xxzdx(小写金额字段)');
Query1.open;
请大家百忙中帮助小弟,非常感谢!!!!
 
Query1.open;//错了。不能用open;用Query1.ExcSQL;
 
这么做肯定不行。
SQL语句是提交到数据库系统去执行的,数据库系统不会认识你的Delphi函数的。
 
Query1.ExcSQL;
 
sql可不认识你的函数,应该改成这样
Query1.close;
Query1.sql.clear;
Query1.sql.add('update 表名 set 大写金额字段='+Xxzdx(小写金额字段));
Query1.execsql;
另,保存大写的字段毫无意义
 
1.你在这里你不能用:Query1.open;。因为你是在写数据库,而不是读里面的数据。所以应该用:Query1.ExecSQL;
2.update 表名 set 大写金额字段=Xxzdx(小写金额字段)这个有错。因为Xxzdx是你自己定义的函数,所以不要写在这里,因为这些代码是给SQL执行的,不是DELPHI执行的,所以在DELPHI定义的函数在SQL里是不会执行的,结果就报错了。这样改吧:
Query1.close;
Query1.sql.clear;
Query1.sql.add('update 表名 set 大写金额字段=:MY_Value');
Query1.ParamByName('MY_Value').Value:=Xxzdx(小写金额字段);
Query1.ExecSQL;
注意,Xxzdx(小写金额字段)中的“小写金额字段”的值你一定要是一个确定的值喔。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部