错误提示:NULL Object reference at line 3 in clicked event of object cb_1 of w_1

MichaelW666 2009-12-04 11:43:07
如题.
程序运行中报错:application terminated Error:
NULL Object reference at line 3 in clicked event of object cb_1 of w_1
我在cb_1的clicked 事件中调用了一个存储过程,然后就报错了。
Functions name:of_buildorderno
String ls_OrderNO
Boolean lb_AutoCommit
lb_AutoCommit=SQLCA.AutoCommit
SQLCA.AutoCommit=True
DECLARE P_BuildOrderNO PROCEDURE FOR BuildOrderNO
@OrderNO= :ls_OrderNO OUTPUT;
EXECUTE P_BuildOrderNO;
IF SQLCA.SQLCode<>0 THEN
MessageBox("存储过程BuildOrderNO执行错误",SQlCA.SQLErrText)
END IF
FETCH P_BuildOrderNO INTO :ls_OrderNO;
IF SQLCA.SQLCode<>0 THEN
MessageBox("存储过程BuildOrderNO执行错误",SQlCA.SQLErrText)
END IF
CLOSE P_BuildOrderNO;
SQLCA.AutoCommit=lb_AutoCommit
COMMIT;
Return ls_OrderNO


然后再cb_1控件的clicked 事件 中写了这句话
String Is_OrderNO
Long Il_Row
Is_OrderNO=uo_sql.of_buildorderno()
Il_Row=dw_1.InsertRow(0)
dw_1.object.Orderno[Il_Row]=Is_OrderNO
运行后就报那样的错误 。
请问各路高手如何解决呀。
高分求解阿。
...全文
515 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
MichaelW666 2009-12-04
  • 打赏
  • 举报
回复
我调用自己定义的对象怎么还要create呀,怎么create呢?
wag_enu 2009-12-04
  • 打赏
  • 举报
回复
uo_sql = create uo_sql
uo_sql 自定义对象吧?
使用其内部的函数前,得先 create .
MichaelW666 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wag_enu 的回复:]
在Is_OrderNO=uo_sql.of_buildorderno()
之前 uo_sql = create XXXXXX 了吗?
[/Quote]
create xxxxxx是啥意思啊?
wag_enu 2009-12-04
  • 打赏
  • 举报
回复
在Is_OrderNO=uo_sql.of_buildorderno()
之前 uo_sql = create XXXXXX 了吗?
永生天地 2009-12-04
  • 打赏
  • 举报
回复
把这段拷贝到cb_1控件的clicked 事件 中
String Is_OrderNO
Long Il_Row
uo_sql luo_sql
luo_sql = create uo_sql
Is_OrderNO=luo_sql.of_buildorderno()
Il_Row=dw_1.InsertRow(0)
dw_1.object.Orderno[Il_Row]=Is_OrderNO
sun1976 2009-12-04
  • 打赏
  • 举报
回复
首先,搜索uo_sql在哪里定义的
然后
在适当的地方,保证你这个按钮click执行到Is_OrderNO=uo_sql.of_buildorderno()
之前的地方
写 uo_sql=create xxxx//xxxx就是定义uo_sql的那个类型,比如
datastore uo_sql
uo_sql=create datastore

然后在适当的地方:保证此处代码执行后再也执行不到调用这个对象的代码,uo_sql.xxx(),并且在窗口关闭前能执行到的地方写destroy uo_sql
也就是你自己create出来的东西要自己负责destroy

不过我更建议你找到定义uo_sql的那个用户自定义对象,如果是从不可视对象继承的把autoinstantiate钩上,就不用create destroy 了,定义了就能用
MichaelW666 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jimwoo 的回复:]
C# codeuo_sql luo_sql//申明一个uo_sql类型的对象luo_sql= create uo_sql//创建
如果uo_sql的属性AutoInstantiate选上的话,后面create那句可以不要
[/Quote]


不行啊,还是报这个错误呢.
jimwoo 2009-12-04
  • 打赏
  • 举报
回复
uo_sql luo_sql            //申明一个uo_sql类型的对象
luo_sql = create uo_sql //创建

如果uo_sql的属性AutoInstantiate选上的话,后面create那句可以不要
无牛刀 2009-12-04
  • 打赏
  • 举报
回复
创建对象,
二楼说的对,你先要创建对象
onlinedog 2009-12-04
  • 打赏
  • 举报
回复
3楼说的有道理,错误的意思是不存在引用对象,就是不存在这个对象,所以需要create一个对象出来。像java里面的new方法一样。

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧