hur.cn - 华软网

 热门搜索

update脚本问题

  作者:未知    来源:网络    更新时间:2017/9/29
update tmp_kd set tmp_kd.zt=(
select kd_station_data.zt
from kd_station_data
where kd_station_data.input_date=:jrrq and         kd_station_data.station_numb=tmp_kd.zm_numb)
 using dbh;
在程序里此脚本不执行,在isql里去掉using dbh可以运行的,请指点。
------华软网友回答------
在程序里不执行不知道原因,在isql里不可能可以执行的,因为这句话不是标准sql(里面有:jrrq)
------华软网友回复------
首先确定变量jrrq的值是否正确
然后看select kd_station_data.zt
from kd_station_data
where kd_station_data.input_date=:jrrq and         kd_station_data.station_numb=tmp_kd.zm_numb
这个查询是否只有一条结果
------华软网友回复------
我在PB7里测试了,没问题,可以运行啊。是不是你的变量有问题?
使用sqlcode判断一下。
if sqlca.sqlcode <> 0 then
messagebox('a',sqlca.sqlerrtext)
end if

------华软网友回复------
子查询返回多少行数据?
------华软网友回复------
参数没有问题,我怀疑是using dbh的问题,select和update都要using dbh,而只能在update后面加,否则语法错误
------华软网友回复------
子查询只有一行数据
------华软网友回复------
if dbh.sqlcode <> 0 then
messagebox('a',dbh.sqlerrtext)
end if
判断一下,或者debug一下。
------华软网友回复------
我测试了一下,SQLSTATE=37000,语法错误或违反访问规则
------华软网友回复------
1 什么数据库
2 input_date=:jrrq 这句?input_date字段是什么类型,jrrq 传入的值是什么?
3 select kd_station_data.zt
from kd_station_data
加上tmp_kd
改为from kd_station_data,tmp_kd

------华软网友回复------
哦。。。对不起,子查询返回不止一行,我错了,谢谢大家。。。。。。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。