怪!怪!怪!!!PB这是怎么了??

JYJUN 2001-07-19 12:37:30
在使用dw_1.Retrieve()显示在窗口中数据窗口控件中的数据时,总是提示:
Database transaction information not available.
Call SetTrans or SetTransObject function
不知这是为什么?
我在Application中的OPEN事件的代码是
SQLCA.dbms="ODBC"
SQLCA.dbparm="ConnectString='DSN=PB_SQL_ONE'"
CONNECT USING SQLCA; //这里仅仅写CONNECT;也是同样出问题??
OPEN(WIN1)
DISCONNECT USING SQLCA;
在窗口WIN1中的OPEN事件中的代码是:
dw_1.SetTransObject(SQLCA)
dw_1.Retrieve( )
在窗口WIN1中已经有了数据窗口控件dw_1,而且,在数据库描绘器中可以正常编辑数据库表的内容,另外dw_1的引用的DataWindows,若单独打开,则也很正常的可以进行编辑。
多谢各位!!!
请指教!!!多谢!!!!!
...全文
242 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
samwcm 2001-07-26
  • 打赏
  • 举报
回复
是你的库没连上啊。。。

你把这个写到application的close事件里,DISCONNECT USING SQLCA;



dahaidao 2001-07-26
  • 打赏
  • 举报
回复
是啊,你不是用disconnect断开了么?
kevinchen_001 2001-07-26
  • 打赏
  • 举报
回复
gz
cdy516 2001-07-25
  • 打赏
  • 举报
回复
你用了 DISCONNECT, 如何联得上?
JYJUN 2001-07-20
  • 打赏
  • 举报
回复
多谢各位!!!!!
yanaca 2001-07-19
  • 打赏
  • 举报
回复
在connect之后判断是否正确的连接.
JYJUN 2001-07-19
  • 打赏
  • 举报
回复
我把DISCONNECT USING SQLCA; 去掉了,可还是一样啊,但是去掉dw_1.Retrieve( )就不会有错误提示,但是,不能在窗口中的数据窗口控件中显示数据,加一个按钮,并在按钮的单击事件中加上dw_1.Retrieve( ),则一按按钮,就会又出现哪个错误提示,另外,即使事先用数据库DB Profile连上数据库后再运行,也还是出现上述的问题?
真是急死人,但还是对PB很感兴趣。
还是要麻烦各位,指点指点!!
多谢!多谢!
wangsw 2001-07-19
  • 打赏
  • 举报
回复
SQLCA.dbparm="ConnectString='DSN=PB_SQL_ONE'"不全呀!!加上点别的!!
wangsw 2001-07-19
  • 打赏
  • 举报
回复
SQLCA.dbParm = "ConnectString ='DSN=Sales;UID=dba;

PWD=sql'"

chen_pb 2001-07-19
  • 打赏
  • 举报
回复
因为这样你已经和数据库断开连接了
chen_pb 2001-07-19
  • 打赏
  • 举报
回复
把open(win1)后面的DISCONNECT USING SQLCA;去掉就成了,如果窗win1的属性不是response的话就要出现问题,把DISCONNECT USING SQLCA;写到applcation的close事件中去
blackwh 2001-07-19
  • 打赏
  • 举报
回复
是数据库没联上
glongjun 2001-07-19
  • 打赏
  • 举报
回复
将下面所需的参数写在ini文件中,试一试
SQLCA.DBMS = ProfileString("pb.ini", "database", "dbms", "")
SQLCA.Database = ProfileString("pb.ini", "database","database", "")
SQLCA.Userid = ProfileString("pb.ini", "database", "UserId", "")
SQLCA.DBPass = ProfileString("pb.ini", "database", "dbpass", "")
SQLCA.Logid = ProfileString("pb.ini", "database","logid", "")
SQLCA.Logpass = ProfileString("pb.ini", "database","LogPassWord", "")
SQLCA.Servername = ProfileString("pb.ini","database", "servername", "")
SQLCA.DBParm = ProfileString("pb.ini", "database","dbparm", "")
glongjun 2001-07-19
  • 打赏
  • 举报
回复
将下面所需的参数写在ini文件中,试一试
SQLCA.DBMS = ProfileString("pb.ini", "database", "dbms", "")
SQLCA.Database = ProfileString("pb.ini", "database","database", "")
SQLCA.Userid = ProfileString("pb.ini", "database", "UserId", "")
SQLCA.DBPass = ProfileString("pb.ini", "database", "dbpass", "")
SQLCA.Logid = ProfileString("pb.ini", "database","logid", "")
SQLCA.Logpass = ProfileString("pb.ini", "database","LogPassWord", "")
SQLCA.Servername = ProfileString("pb.ini","database", "servername", "")
SQLCA.DBParm = ProfileString("pb.ini", "database","dbparm", "")
liulee 2001-07-19
  • 打赏
  • 举报
回复

给你一个Preview
// Profile RollCall
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=RollCall;UID=dba;PWD=sql',PBCatalogOwner='dba'"

照搬,改改就可以了。
连接后,需要马上判断是否连接成功:

connect using sqlca;
if sqlca.sqlcode <> 0 then
messagebox('ERror','Can~'t Connect to database.~r~rErr Info:~r'+sqlca.sqlerrtext,Stopsign!)
Halt close;
end if
.....
继续你的代码
JYJUN 2001-07-19
  • 打赏
  • 举报
回复
呀呀,我加上了UID和PWD,但是还是出现了上述的现象
wangsw 2001-07-19
  • 打赏
  • 举报
回复
 回复人:wangsw(呀呀) (2001-7-19 12:49:45) 得0分
SQLCA.dbParm = "ConnectString ='DSN=Sales;UID=dba;

PWD=sql'"


 回复人:wangsw(呀呀) (2001-7-19 12:50:15) 得0分
SQLCA.dbparm="ConnectString='DSN=PB_SQL_ONE'"不全呀!!加上点别的!!

JYJUN 2001-07-19
  • 打赏
  • 举报
回复
奇怪??
现在,我保留我原先的代码不变(仅仅去掉DISCONNECT USING SQLCA; ),现在,按运行健后,又突然出现一个“选择数据源”的对话框,我在其“机器数据源”页选择了合适的数据源“PB_SQL_ONE”后,就可以正常打开窗口了,而且,数据窗口控件也可以正常显示数据了,
我被搞糊涂了,怎么原先显示错误消息,现在又显示“选择数据源”,那么,现在又怎样去掉这个
“选择数据源”对话框,而直接连接上数据库呢??
多谢大家!!请指教!!
hansonman 2001-07-19
  • 打赏
  • 举报
回复
加上
if sqlcacode<> o then
yanaca 2001-07-19
  • 打赏
  • 举报
回复
直接把DB PROFILE PROVIEW Copy 到应用的脚本中.

1,072

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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