错误提示: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
运行后就报那样的错误 。
请问各路高手如何解决呀。
高分求解阿。
...全文
700 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]


不行啊,还是报这个错误呢.
风_雨_晴 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方法一样。
下载代码方式:https://pan.quark.cn/s/dd3561eca308 在软件开发领域,面向对象编程(OOP)是一种普遍采纳的结构化方法,它使得开发者能够借助模拟现实环境中的实体和关系来构建软件系统。在本案例中,我们观察到的是一个关于借助抽象类来执行不同几何图形面积求解的实践应用。现在,让我们详细分析这一议题。 标题 "应用抽象类计算面积" 清晰地表明我们将要讨论一个抽象类,此类设定了一个用于测量图形面积的标准函数,但并未提供实际的执行过程。抽象类在诸如C#或Java等编程语言中通常借助`abstract`修饰符进行声明,它们无法直接创建对象实例,仅能作为其他类的基础模板。 描述部分提及的"图形界面应用"暗示这是一个基于视觉用户界面(GUI)的系统,可能运用了.NET Framework的Windows Forms或WPF技术,或者是Java平台的Swing或JavaFX框架。在这样环境下,用户能够通过视觉元素与这些几何体进行互动,例如输入相关尺寸并观看到计算得出的面积值。 抽象类“几何体”内嵌了“计算面积”这一抽象函数。在代码层面,这可以被表述为: ```csharp public abstract class GeometricShape { public abstract double CalculateArea(); } ``` 随后,有三个派生类:圆(Circle)、矩形(Rectangle)和三角形(Triangle),它们各自提供了这个抽象函数的具体实现。比如,圆的面积是通过π乘以半径的平方得到的,矩形的面积是长和宽的乘积,而三角形的面积可能是底乘以高再除以2的结果。这些类将提供具体实现来计算它们各自的面积: ```csharp p...

611

社区成员

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

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