继续讨论C/S型数据库, Table的Refresh问题(200分)

  • 主题发起人 主题发起人 YaoChangLi
  • 开始时间 开始时间
Y

YaoChangLi

Unregistered / Unconfirmed
GUEST, unregistred user!
前面讨论过Table的Refresh问题,我似乎不太明白。
我用Delphi5+SQL Server 6.5编写了一个管理软件,遇到了好多问题,不知为什么?
服务器端运行的是Windows NT 4.0(Server Pack #6),数据库用SQL Server 6.5,出现了
以下问题:

1. 客户端的数据浏览速度有时很快,有时却很慢,极不稳定。一开始,我以为是网络问题,
可是,我将服务器用网线直接连到这个客户端,还是出同样的问题,而奇怪的是,有两台
客户端的机器一切正常,可是,客户端的程序都是一样的,我试过从新安装Win98,升级网
卡驱动程序,可是问题依旧。

2. Table的Refresh问题。在客户端进行Refresh操作时,程序报错“不能进行操作因为表中
没有唯一的索引”,可是表中明明建了一个关键字,为什么还是出错?
如不去理错误,继续进行操作的话,有时会出现:“Invalid BLOB hander buffer”提示,
出现这个提示后,不能再进行任何操作,只有退出。

* 附加说明以下,共有6个客户端,其中有三台机器无任何问题,其它的机器无论如何都要出现
此问题,客户端的程序都一模一样,如果有问题,都应该有问题,可是事实并不是这样。我以前
也做过类似的系统,没有出现过这些问题,可是这次好象是撞邪了,问题老是源源不断。

这些问题急需解决,请各位多多帮忙!!!
 
客户端的硬盘容量和网卡是否一样?
换个正常的机器在有问题的客户端试试?
 
2. 对于table中有raw或blob等大数据类型的字段时, 用ttable控件是会产生不可预测
的错误的, 建议改用TQuery, 结合Tquery的param来读写大数据类型的数据.

1. 可能是与使用的网络协议等有关, 也可能是碰巧, 每次慢的时候可能是服务器端
的并发机制没注意而引起的.
 
>> 可是表中明明建了一个关键字
是不是 Primary key ?
 
是Primary key.
 
首先确认你已经安装了SQL SERVERR6。5的最后一个补丁(Sp4或以上)
其次。 因为使用TABLE访问SQL 6。5数据库。 看你的说明里是使用了REFRESH
那上述操作中是否有更新数据库的动作。 如果使用tTABLE来更新SQL 65
会有锁定问题存在。
还有一问:Primary Key 是否是 Identity 字段?
 
Primary Key 是否是 Identity 字段都出现问题,而在某些机器上是好的,把程序复制到
出问题的机器上,仍然出现“不能进行操作因为表中没有唯一的索引”。
 
1、表是否有细表,而细表中有很多纪录,如图片等
2、update your bde to 5.1.1
并给delphi 加patch
 
1.SQL Server的许可证是否足够?数据库的用户数是否足够?有时用户数不够而用户较多时
会影响数据(用户数一般大于连接终端数,应为有些终端可以有多个连接用户),可以用
Enterprise Manager设置。
2.TTable在网络客户端应用中Refresh一般不太好用,大多数应用无需使用该特性,可以在
编程时屏蔽掉。如果一定要用可以先保存纪录显示位置并暂停对应显示滚动,关闭Table再
打开Table,指到显示位置,激活对应显示滚动。另外,在网络应用中,对同一数据库应避
免同时有两个以上的Table对其进行写操作。如有则必须用TQuery。
 
问题已经找出,原来是IBM Netfinity 1000(21Y)服务器的主机板出的问题,真是够倒霉的。
害得我好苦!!!!
 
多人接受答案了。
 
后退
顶部