我遇到了一个非常奇怪的问题!!!高手帮忙啊!
我从数据库里检索值来作为下拉列表的项
程序如下
string num,name
int i,l
l=0
select count(*)
into :l
from tk_kcb
using sqlca;
declare kcb_cur cursor for
select tk_kcb.kcm,tk_kcb.kcmc
from tk_kcb
using sqlca;
i=0
open kcb_cur;
do while i<l
fetch kcb_cur into :num,:name;
ddlb_1.additem(num+"-"+name)
i++
loop
这是一个子窗口,当我第一次打开时很成功,可当我再一次从父窗口打开这个窗口时却不好用了,下拉列表里除了几个‘-’,什么都没有!!
为什么啊
很急
问题点数:10、回复次数:5Top
1 楼zhngxVPP(萧何)回复于 2003-11-02 09:38:33 得分 0
大家帮帮我啊!!!Top
2 楼am2000(【最后一滴水】)回复于 2003-11-02 10:08:16 得分 0
我这里有一个动态帮定的例子;
将ddlb封装成一个用户对象;
自定义事件:ue_populate(as_sqlselect string)
Integer li_SQLCode
String ls_SQLText,ls_Value
IF as_sqlselect="" THEN
Return -1
ELSE
//动态游标
PREPARE SQLSA FROM:as_sqlselect;
DECLARE dynamic_cursor DYNAMIC CURSOR FOR SQLSA;
OPEN DYNAMIC dynamic_cursor;
IF SQLCA.SQLCode<>0 THEN
MessageBox("系统提示","不能打开动态游标"+SQLCA.SQLErrText)
Return SQLCA.SQLCode
END IF
This.SetRedraw(FALSE)
This.Reset()
DO WHILE SQLCA.SQLCode = 0
Fetch dynamic_cursor INTO :ls_value;
IF SQLCA.SQLCode=0 THEN
This.AddItem(ls_value)
ELSEIF SQLCA.SQLCode<0 THEN
li_sqlcode=SQLCA.SQLCode
ls_sqltext=SQLCA.SQLErrText
CLOSE dynamic_cursor;
MessageBox("系统提示","无法定位"+ls_sqltext)
This.SetRedraw(TRUE)
Return li_sqlcode
ELSE
EXIT
END IF
LOOP
THIS.SetRedraw(TRUE)
CLOSE dynamic_cursor;
Return 0
END IF
调用方法:This.Event ue_populate("SQL语句")Top
3 楼treesoft(长沙水)回复于 2003-11-02 11:29:39 得分 0
你忘记写与open kcb_cur;对应的close kcb_cur;了!
试一下吧!
Top
4 楼yanghongfeng(枫中飘叶)回复于 2003-11-02 12:15:15 得分 10
你忘记关闭游标了。Top
5 楼dingzhaofeng(Alading)回复于 2003-11-02 20:56:23 得分 0
:)
Top




