首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

报错null object解决方案

2013-01-06 
报错null objectenvironment e_envstring stafileif(getenvironment(e_env)1) then messagebox(,don

报错null object
environment e_env
string stafile
if(getenvironment(e_env)<>1) then
 messagebox("","don't work")
 halt
end if
stafile = "train.ini"
sqlca.dbms = profilestring(stafile,"database","dbms","")
sqlca.database = profilestring(stafile,"database","database","")
sqlca.userid = profilestring(stafile,"database","userid","")
sqlca.dbpass = profilestring(stafile,"database","databasepassword","")
sqlca.logid = profilestring(stafile,"database","logid","")
sqlca.logpass = profilestring(stafile,"database","logpassword","")
sqlca.servername = profilestring(stafile,"database","servername","")
sqlca.dbparm = profilestring(stafile,"database","dbparm","")

connect using sqlca;

if sqlca.sqlcode<>0 then
MessageBox("无法连接数据库",sqlca.sqlerrtext)
return
else 
messagebox("","数据库连接成功")

end if 
int i
w_main.dw_1.settransobject(sqlca)
i = w_main.dw_1.retrieve()
if i>0 then
w_main.dw_1.scrolltorow(1)
else 
messagebox("","数据库中没有记录")
end if
w_main.dw_1.object.datawindow.readonly = 'yes'
w_main.cb_save.enabled = false




open(w_main)

代码如上,主窗口里放一个数据窗口控件dw_1连接数据窗口d_student_free
d_student_feel连接表stu_student
程序运行后连接数据库可以成功但是报错
null object reference at line 27 in open event of object studentinfo
[解决办法]
應該先在你的Application中連接數據庫:
// Profile cp_mes
SQLCA.DBMS = "OLE DB"
SQLCA.LogPass ="2222"
SQLCA.LogId = "***"
SQLCA.AutoCommit = true
SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='cp-mes'"



Connect using SQLCA;

IF SQLCA.SQLCode = -1 THEN 
MessageBox("警告", "數據庫連結失敗!")
ELSE  
open(w_login_main)
END IF  

然後再窗口的open事件中添加:dw.settransobject(sqlca) 

热点排行