hur.cn - 华软网

 热门搜索

确保Select语句执行成功的措施?

  作者:未知    来源:网络    更新时间:2019/10/7
select sum(zl)
into :ld_yzl1 
from yyjs
where Trim(HTH) = :ls_chth and 
       DBDM= '1' and 
       comm <> '2' and 
       comm <> '5' and 
       Trim(nd) = :is_csgnd;
上面是我写的程序里的一个SELECT语句,现在有这么一个问题:
在大多数情况下SELECT语句执行是没有问题的,可是有时会出现没法掏出值的现象。请列位高手指点一下,有没有什么能够保证SELECT语句执行成功的措施?
或尽量保证!
------华软网友回答------
UP
高手来给点经验之谈阿!小弟先谢了!
------华软网友回复------
if sql.sqlcode= 0 then 
messagebox("","成功")
end if
------华软网友回复------
UP
对照着急阿,大家帮助!
------华软网友回复------
if sqlca.sqlcode= 0 then 
messagebox("","成功")
end if

------华软网友回复------
if sqlca.sqlcode< 0 then 
messagebox("","失利")
end if
------华软网友回复------
或是: 
IF SQLCA.sqlcode <> 0 THEN 
messagebox("犯错", SQLCA.sqlerrtext)  ==详细犯错信息 (如果想知道犯错信息) 
END IF
------华软网友回复------
这个条语句是在一个实时通讯程序里的,中间不能中断!
我也想过要加这样的语句
int i
i = 0
do while sql.sqlcode <> 0
 select sum(zl)
 into :ld_yzl1 
 from yyjs
 where Trim(HTH) = :ls_chth and 
       DBDM= '1' and 
       comm <> '2' and 
       comm <> '5' and 
       Trim(nd) = :is_csgnd;
 i++
if i >= 5 then exit
loop
------华软网友回复------
不知道有没有其余手段阿?
------华软网友回复------
谢谢WDBOY0000()的参加,你说的方法我知道。我想知道有没有其余什么措施!
------华软网友回复------
do while sql.sqlcode <> 0
 select sum(zl)
 into :ld_yzl1 
 from yyjs
 where Trim(HTH) = :ls_chth and 
       DBDM= '1' and 
       comm <> '2' and 
       comm <> '5' and 
       Trim(nd) = :is_csgnd;
 i++
if isnull(ld_yzl1) then exit
if i >= 5 then exit
loop

------华软网友回复------
if isnull(ld_yzl1) then exit
这句为什么要加?我就是由于掏出的值位NULL才要循环的
------华软网友回复------
if isnull(ld_yzl1) then continue  --跳出改次循环进入下一次循环
------华软网友回复------
对阿!嘿嘿,糊涂了。多谢!
------华软网友回复------
如果我针对这句SELECT语句做个DATAWINDOW来取数会不会效果好点呢?
------华软网友回复------
DATAWINDOW的体制会不会比直接用SELECT来取好呢?
------华软网友回复------
用datawindow必用游标要快!(你这个循环能够用datawindow完成)
------华软网友回复------
其实就是一个简单取一个东西的总重量的语句,用一句SELECT就能够了不涉及游标,可是就是这个简单的SELECT语句有时候取不出数。所以我才想看看有没有一个确认方法。
DATAWINDOW比这个SELECT语句,取数的成功率高吧?我是说DATAWINDOW是否是有一个内建的确认体制呢?
------华软网友回复------
select sum(isnull(zl,0))
 from yyjs
 where Trim(HTH) = :ls_chth and 
       DBDM= '1' and 
       comm <> '2' and 
       comm <> '5' and 
       Trim(nd) = :is_csgnd;

datawindow取数,只需有数据肯定能掏出来呀!select语句 应该也都能够掏出来!
------华软网友回复------
正常的应该是这样的阿,可是就是出现了取不出来的现象,我很郁闷。

------华软网友回复------
我给分了,可是不可功 不知道怎么回事      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。