急!为什么在2000下编译的dll在98下出现怪问题.(200分)

  • 主题发起人 主题发起人 777
  • 开始时间 开始时间
7

777

Unregistered / Unconfirmed
GUEST, unregistred user!
三层结构,server端用ado,client用Dcom连接.后台SQL-Server 7.
Client端编译成DLL进行调用.
问题:在2000下一切正常.但到了98下,调用ApplyUpdates()时,经常更新不到数据库
里, 更怪的是第一次ApplyUpdates()时可以存进去,存进去后再更改某一字段值的
话,就存不进去了.有时也会出现"changed by other user".各位高人请帮忙.
 
98用的最好在98下编译,2000用的在2000下编译。
 
注意你在Win98下的用户权限。Win2000会为你分配权限,你的SQL如果有权限设置,
比如各种锁定。而在WIN98下不能获取这个权限时,必然出错。
 
to:ddev
什么权限?怎么设?能详细点么?
 
2000下有安全级别,最好在98下编译!
 
可以认为 SQL Server 有两个不同的安全性级别。
第一级别为身份认证,它是鉴别一个连接SQL SERVER
的用户是否有访问系统的权限;第二级别是访问权限,
应用在数据库对象一级。用户在被鉴别为合法用户后,
下一步是他是否有对象一级的访问权限。
即存在两级安全性,一个在对象级,一个在命令级。
总的说来,只有当用户被鉴别并具有访问对象的权限,
他才可以登录到系统或执行某项功能。
---- 《SQL Server 7.0开发指南》“ 安全性和用户管理”
 
这个问题应该和权限没有关系吧
 
>>更怪的是第一次ApplyUpdates()时可以存进去,存进去后再更改某一字段值的
>>话,就存不进去了.有时也会出现"changed by other user".各位高人请帮忙.
看看你的Delta属性是否正确就知道了。
 
[blue]我想可能是因为2000中引用了什么UNICODE技术的原因吧。
为98编写的最好在98下编译,2000的最好在2000下编译。[/blue]
 
你存盘后可以试着更新一下如refresh,另外在数据库中最好要设一下主关键字。
 
在98中编一生成DLL后,还是同样的问题.
也不存在关键字的问题.
 
更新一下的缓冲区,如果有错,说明可能数据库名称,或数据库字段大小有误,在win98
对Sql 或oracle当中
 
服务器为2000还是98?
 
服务器是2000时正常,当服务器程序在98下运行时就出现上述情况.
 
避免意外,98下在98中编,2000用2000
 
后退
顶部