VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1409|回复: 9

新手关于datawindow中遇到的疑惑,请您直到一下

[复制链接]

2

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-10 22:20:01 | 显示全部楼层 |阅读模式
不知道我发的帖子类别对不对;错了请多包涵;
问题如下:
    这样的一句话:dw_1.setTrans(sqlca)和dw_1.retrieve()是该放在打开的主窗口的open事件里,还是在dw_1的itemchanged的事件里呢?书上写在主窗口里,但每次我运行时都说我所用到的那个表的对象名不对!而放在dw_1里吧,操作什么又没有反应;
   个人觉得还是放在主窗口里;但那里错了呢?
   数据链接也没有错误亚!
   请各位多指点一下;谢谢先!
回复

使用道具 举报

0

主题

100

帖子

53.00

积分

新手上路

Rank: 1

积分
53.00
发表于 2020-1-16 14:00:01 | 显示全部楼层
打开的主窗口的open事件里
回复

使用道具 举报

0

主题

100

帖子

53.00

积分

新手上路

Rank: 1

积分
53.00
发表于 2020-1-16 17:09:01 | 显示全部楼层
把报错的具体信息贴出来
回复

使用道具 举报

2

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-1-18 13:00:02 | 显示全部楼层
错误是这样的:
select error:SQLSTATE=S0002
[Microsoft][ODBC SQL Server Driver][SQL Server]对象名'pub_user' 无效
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-18 15:00:02 | 显示全部楼层
窗口的open事件中

dw_1.setTransobject(sqlca)
dw_1.retrieve()

试试
回复

使用道具 举报

0

主题

10

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-18 16:45:01 | 显示全部楼层
应该放在OPEN事件里
表对象抱错有可能是你生成数据窗口对象时有误
把你的的错误信息与有关数据窗口控件的代码 沾出来 看看~!~
回复

使用道具 举报

0

主题

9

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-19 00:00:01 | 显示全部楼层
根据你贴出来的错误提示,应该还是你数据库连接有问题,而不是写在哪里的问题,你写在哪只会影响你什么时候触发这段代码,而不会有错误提示,你放在open事件里,在窗口打开的时候触发.写在itemchanged里,没有检索到数据的时候是不会触发的,因为它是要在item被改变的时候被触发的.正确的数据窗口检索方式应该是superriche 兄弟说的那种写法的.
另外,根据你贴出的错误提示,你应该是使用的ODBC连接sql server.个人建议你使用PB提供的与sql server的专用通道,这样无论速度还是稳定性都比较好.你的问题我觉得有三种可能:一个是ODBC版本问题,我在用odbc连接Access的时候也会报一些莫名的错误,是odbc版本的问题.第二个可能是你数据窗的写法有问题.检查下你数据窗的SQL。第三个就是你驱动用的问题,我在下面附了我和用友服务器连接的驱动代码,环境是pb6.5、sql server2000。
// Profile lwz_test
SQLCA.DBMS = "MSS Microsoft SQL Server 6.x"
SQLCA.Database = "UFDATA_005_2006"
SQLCA.ServerName = "10.0.2.10"
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = "CommitOnDisconnect='No'"
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-20 23:27:01 | 显示全部楼层
学习一下.
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-9-4 19:00:01 | 显示全部楼层
应该放在open事件里面,
dw_1.settransobject(sqlca)
dw_1.retrieve()
回复

使用道具 举报

0

主题

1

帖子

419.00

积分

荣誉会员

Rank: 10Rank: 10Rank: 10

积分
419.00
发表于 2021-4-13 11:06:18 | 显示全部楼层
放在 对应数据窗口的constructor事件中最好,代码看上去最简洁!
settransobject(sqlca)
retrieve()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表