注册 登录
编程论坛 PowerBuilder

[求助]i有关动态sql语句写法,紧急求助

jsxwr 发布于 2007-10-23 11:47, 2567 次点击

主要的问题出在这里,组合成的sql语句,不符合相关语法要求:

execute immediate :s_sql_sql;

s_sql_sql 是字符串变量,其值为

insert into 教职工信息修改 ( 序号,姓名,性别 ) values ( :i_xh,:s_xm,:s_xb )
或者
update 教职工信息修改 set 序号=:i_xh,姓名=:s_xm,性别=:s_xb where 序号= :i_xh

//其中字段表和变量表都是由其它字符串变量提供的,具体项目和值不固定,取决于实际被修改情况。

可能是组成sql语句时,其中的变量没有传递过来,导致执行时参数不足,出现错误

————————————————————————
以上是问题节选,由于本人新注册,原先只能在『 新人互助交流区 』发贴,所以原贴放在那儿了,详情请点击浏览
http://bbs.bc-cn.net/viewthread.php?tid=179830

————————————————————————
[fly]期待高手援助,先谢了[/fly]

4 回复
#2
fyh2007-10-24 20:35
s_sql_sql = "insert into 教职工信息修改 ( 序号,姓名,性别 ) values ('"+i_xh+"','"+s_xm+"','"+s_xb+"' )"

execute immediate :s_sql_sql;

序号是数值型的吗?如果是应写如下:

s_sql_sql = "insert into 教职工信息修改 ( 序号,姓名,性别 ) values ("+Strng(i_xh)+",'"+s_xm+"','"+s_xb+"' )"

字符型变量应用单引号括起来。

UPDATE 语句同。
#3
jsxwr2007-10-24 23:11
谢谢,pb中的sql语句如果引用变量,要求在变量名前加上“:”

我是要考虑你的建议,我执行前先组合一下试试,不过如果这样组合,好像所有字段都成了字符型了,怕不变量类型与数据库不匹配了!

序号 数值型
另外还有datetime型的字段呀
#4
fyh2007-10-28 13:55
datetime 类型可用CONVERT()转换成字符型啊```






#5
jsxwr2007-11-03 16:22
谢谢,以上问题已通过数据窗口比较的方法解决了!感谢PB的datawindows,我要好好学习!
1