我在一个w_main窗口中建了一个数据窗口控件,然后连接了一个数据窗口对象,运行应用,已经确定数据库连接成功了,但是在窗口就是不显示数据,提示:database transaction information not available call settrans or settransobject function
另,我已经在main窗口的open事件中写了dw_1.SetTransObject(SQLCA) dw_1.Retrieve(),不管用,哪位高手能指导一下,感激不尽
最新测试结果,把dw_1.SetTransObject(SQLCA) dw_1.Retrieve()这两句挪到应用sfbrapp(我建的应用名称)的open事件中,改为w_mian.dw_1.SetTransObject(SQLCA) w_main.dw_1.Retrieve(),运行,可以显示数据了,但是在显示数据前仍然弹出对话框说database transaction information not available call settrans or settransobject function
请教这是什么原因?那位高手能帮帮忙,谢谢
------解决方案--------------------
在DW设计器里面能看到数据吗?
是不是你连接的表出问题了?
------解决方案--------------------
呵呵,那是什么原因呢?我建这个应用的流程:
1 在odc odbc 那里建了一个asa数据库,并在数据库里建了一个表,设了主键,然后加了两行记录
2 建了一个pro,数据源就选了上面建的数据库
3 建了workspace
4 建了application
5 随便建了个窗口w_mian
6 建了个数据窗口对象,在里面能看到数据的
7 建了数据窗口空间dw_1,在w_mian中
8 在应用的function中建了一个自动选择数据源的函数f_regdatasource
9 在应用的open事件中运行函数和open(w_main)
10在w_main的open中写dw_1.SetTransObject(SQLCA) dw_1.Retrieve()
请哪位高手看一下哪里出问题了?谢谢各位的回答,无论有没有用,我都会觉得很感激的,我是自学,闭门造车,是有种孤独感,呵呵,不瞒各位,我研究生刚退学,虽说是研究生,却什么都不会,惭愧
这是f_regdatasource的内容:
integer li_rc,li_filenum
string ls_dir,ls_dbfile,ls_datasource,ls_dbname,ls_config,ls_database
boolean lb_exist
ls_datasource = as_dbname
ls_dbname = as_dbname
ls_dir = GetCurrentdirectory()
ls_dbfile = ls_dir+'\'+ls_dbname+'.db'
ls_config = ls_dir + "\config.ini"
boolean lb_exeist
lb_exist = FileExists(ls_dbfile)
if not lb_exist then
messagebox("提示","在当前目录下不存在:"+ls_dbname+".db")
halt
end if
lb_exist = FileExists(ls_config)
//判断配置文件是否存在
if lb_exist then
li_rc = profileint("config.ini","start","first",0)
//如果存在则获取配置文件的start段的first的键值
//如果键值不存在则赋值为0
else
li_FileNum = FileOpen(ls_config,LineMode!,Write!,Shared!,Append!)
FileWrite(li_FileNum,"[start]~r~n first = 1")
li_rc = 1
//如果不存在,则按一定的格式创建配置文件
end if
if li_rc = 1 then
//第一次读取配置文件
if RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+"Adaptive Server Anywhere 8.0","Driver",RegString!,"dbodbc8.dll") = 1 then
messagebox("提示","数据源已注册成功!")
end if
//注册数据源
else
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+"Adaptive Server Anywhere 8.0","Driver",RegString!,"dbodbc8.dll")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Data Sources",ls_datasource,RegString!,"Adaptive Server Anywhere 8.0")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+ls_datasource,"Drive",RegString!,"dbodbc8.dll")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+ls_datasource,"PWD",RegString!,"SQL")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+ls_datasource,"DataFile",RegString!,ls_dbfile)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+ls_datasource,"AutoStop",RegString!,"Yes")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+ls_datasource,"Integrated",RegString!,"No")