ADO的BUG?用ADO+Access的大虾来看看(100分)

  • 主题发起人 主题发起人 杜宝
  • 开始时间 开始时间

杜宝

Unregistered / Unconfirmed
GUEST, unregistred user!
这是小弟今天忙了一天的成果,用ADO+Access的大虾来看看:

这两天小弟在改一个程序,是将原来的MIS系统(BDE+Paradox)移植到ADO+Access,
今天早上改到系统设置部份,原系统因为是Paradox的,所有的表都是文件,相应的
备份也只是备份数据表,现在不同了,Access就一个文件,系统表与数据当然要分开,
好,说干就干,打开Access,建了一个新表,顺手起名叫System.mdb,在ODBC建好别名
用DataDump一倒,好,全过来了,再进Delphi,打开工程,改改连接,F9,一切顺利,
没有错误,心中暗喜,突然,Delphi提示"Not a Validate password",难到是密码设
错了?不会啊,主工程的联接昨天作的,今天没动啊,难到是一时笔误?立马打开调试
器,找虫子!找了一天,所有的与联接字符串的地方,都看遍了,没问题,难道是Conncention
属性设错了?再把所有能改的地方都试一遍,无效。上网,到处找资料,找到的情况
也都试过了,还是无效。把自己的东东拷到其它的机子上运行,怪了,没问题,再回
到我的机器上,又不行了,难到是ADO的问题?ADO SP2 本来早就打了,又重打一遍,
ADO2.6已经装,又装一遍,防火墙,Winamp甚至边输入法都去了,还是不行,没办法,
只有把密码去掉,再来一次,天那,它居然还是提示密码不对!!!但用Access,
SQLExplore都是证明密码已经去掉了!
看着老板的脸色越来越难看,还好,下班了,把今天的东东打打包,今天又得
加班了。回到家,解开工程,又折腾几个小时,还是不行,突然想起其它的机器上可以
运行,就把刚编译的文件拷到其它目录下,它居然可以运行了!难到是环境设置的原因,
忙打开资料资源管理器,把昨天的备份还原,再运行,又不行了,真是@#$!#@$。
无意中看到System.mdb,对了,昨天的数据主库与今天的没有什么不同,就只是多这个
库,把它移到另一个目录试试,天,正常了!折腾了一天,想不到是这个东东!!!
再在其它程序下试了一下,如果在ADO的数据库路径下有一个叫System.mdb的东西,
ADO就会在联接的时候打开它读User的WorkGroup信息,如果这个文件加了密码,ADO当然
打不开,就提示无效密码,如果文件格式不对,就提示无法读取信息,而我刚好在建库
的时候给它了加密码(如果没加密码,说不定早就搞定了)。

虽说原因有点搞笑,也不知道是不是ADO的Bug,不过搞定了真是很高兴,来者有分!


 
我认为这跟ADO没有什么关系
system.mdb应该是access保留的名字,你不要用这个名字
 
增加点经验,也增加些个分数。
 
呵呵,MICROSOFU有很多自己的保留字段名,system是一个,user也是一个,有些系统表是
不可以重名的。
 
喔,原来如此!
(混点分而已,哈哈)
 
多谢你的实践。
 
你们老板还不错。上次我改一程序到了下班时间没改完,他竟然让我在公司睡了一晚。
呜呜……
这算Bug?要这么说,在Windows里文件名的限制也算Bug了。呵呵。
 
可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!
可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!
可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!可喜可贺!
 
又长知识了,又有分 ^_^
 
哥们,你那个文件应该不是system.mdb,而是system.mdw,是用户权限文件,把它删了就行了
,如果你不放心就把它改个名。
详细的东东,你可以看看ACCESS的帮助中数据库安全部分。
OFFICE XP中的帮助更完整。你试试看!
 
变量名不能随便设,文件名当然也一样了。
用别人的软件,受别人的限制也很正常了。
不过还是要感谢你把经验说出来,这样我们就可以少走很多弯路了。
 
Sorry!
题目没仔细看,你起的文件叫system.mdb
不过你进ACCESS看一下,你的安全权限有没有设置,ACCESS的安全设置文件的路径如果不是在VBA里就
写进去,只要把后缀名为mdw的文件删掉就可以了。
你试试看吧!用搜索来找到mdw文件,先改名看看
 
可恶的Access密码,更可恶的是Access的权限;
兄弟曾将我的数据库设为一部分用户为管理员,
一部分为普通用户.但在Delphi无论以哪类用户
都打开不了数据库,被B没辙,不设权限:{
不知哥们或者那位大虾有此经验,请不吝赐教.
 
我建设以后要用到MICROSOFU的保留字段名,就在前面加个MY
system->mysystem又好读,又好记。。。。好处多多
 
>>文件名是叫:system.mdb,*.mdw我没找。

我想这问题与ADO的连接字符串设置有关系,我在调试中有几次连接对了,但一打开表又报
密码错。但没时间再试。
我用BDE和ODBC连接过都没有出现过这种问题。我想这不能算ADO的BUG,应该说还是它的
比BDE和ODBC强的地方才是。不过大家请体量我的心情,忙活了一天,正要上DFW问呢,结果搞
定了,就用打算问问题的分来出口鸟气。^_^
感谢大家关注我的问题,特别是I2346兄的解释,呵呵,不过有十二个人,100分除不尽啊
,只好按先来后到分分了,毕竟早起的鸟儿有BUG吃。

 
多人接受答案了。
 
后退
顶部