重金求教delphi与ms sql server问题(200分)

  • 主题发起人 主题发起人 everdove
  • 开始时间 开始时间
E

everdove

Unregistered / Unconfirmed
GUEST, unregistred user!
单机上单独使用dephi的数据库应用,数据库为MS SQL Server 7,却出现‘couldn't perform the edit because another user changed the record’错误,是何缘故,如何处理?
 
試著在后台直接修改數據,如果可以修改那麼證明后臺沒有問題,如果后臺
有問題,你怎麼處理前台都沒有用.另注意是不是触發器有問題呢!
 
可能你程序的其他模块在占用该记录。
查查你的DATASET控件。
有没有用TABLE?
用他肯定有问题。
 
恩,同意foxnt,建议你用query
 
同意ouke,最好在每一个Form关闭时把Table和Query关闭,进去时再打开,
或者用一个DataModules模块,别的窗口都引用DataModules的数据
 
强烈建议采用TQuery,千万不要用TTable,TTable会引起很多问题,而且TQuery比TTable快很多。
 
我经常用Table连sql server的表,好像都没事。
各位能详细说说用table有和问题吗?
 
ms sqlserver 7.0最好不要用bde存取,可能会有问题。
用ado看看。
 
若是网络数据库,最好用table,若是pradax,最好用table.
 
可能是你在别的地方打开了本条记录,SQL-server对他加了锁在你不用的Table,query应该都Close掉用的时候在打开
 
你注册的SQL SERVER 用户有没有写的权限?
如果有,看看你的TTable 的ReadOnly属性是什么?
 
everdove
大家说了那么多 你能不能在详细的说一下
 
你把Client NetWork Utility设置为多协议试试。
 
我刚才也在提出了相同的问题,但需补充一下,在DATABASE DESKTOP单用户下也
会出现该错误消息.而且表中没有触发器,直接在sql7.0操作一切正常.
 

1.如为网络环境,则确为一user正在edit该record,应用程序控制尽快edit完成,
并关闭数据库。建议用query控件,而非table。
2.如为单机环境,这是错误消息,估计是ms sql server与delphi的兼容问题。
出现条件常为在tabel的before post、after post等事件中,更改本库或其他
相关库(如从库)的记录。解决方法为:将locate-edit-post修改记录方式,
改为用query控件,以T-SQL语句修改记录。另外的收获是这样速度似乎更快。
3.用ADO控件取代delphi的原data access控件。这是坚决问题的根本方法。
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
974
import
I
I
回复
0
查看
2K
import
I
I
回复
0
查看
3K
import
I
后退
顶部