如何压缩有system database的access 2000数据库 (50分)

  • 主题发起人 主题发起人 mycwcgr_bak
  • 开始时间 开始时间
M

mycwcgr_bak

Unregistered / Unconfirmed
GUEST, unregistred user!
下面我从网上看到的压缩accesss 2000数据库的方法,我的数据库E:/database.mdb
是一个英文access 2000数据库,并且它使用一个名称为ACCESS_CW.MDW
的system database,我用此方法压缩时,总是出现"多步OLE DB 操作产生错误。。。",
请问是为什么?


var
jt:TJetEngine;
pnstr:string;
sourcedatabase:WideString;
targatdatabase:WideString;

begin
sourcedatabase:='Provider=Microsoft.Jet.OLEDB.4.0;'+
'Password=123;User ID=aa;'+
'Data Source=E:/database.mdb;'+
'Persist Security Info=True;'+
'Jet OLEDB:System database=E:/ACCESS_CW.MDW';
targatdatabase:='Provider=Microsoft.Jet.OLEDB.4.0;'+
'Password=123;User ID=aa;'+
'Data Source=E:/newdatabase.mdb;'+
'Persist Security Info=True;'+
'Jet OLEDB:System database=E:/ACCESS_CW.MDW';
jt:=TjetEngine.Create(self);
jt.CompactDatabase(sourcedatabase, targatdatabase);
jt.free;
end;
 
呵呵,这个比较容易解决,把SourceDataBase和TargatDataBase中的
'Jet OLEDB:System database=E:/ACCESS_CW.MDW'这一句删掉就可以了,
还有就是最好把USER ID设为Admin,因为在普通的机器上一般都有这个帐号的。
我一直都是这么做的。
 
为什么要删除'Jet OLEDB:System database=E:/ACCESS_CW.MDW'这一句
要知道,没有这一句测试连接都不会通过
 
如何在程序中判断Microsoft.Jet.OLEDB.4.0 的引擎是否已经安装了?
 
mycwcgr_bak:
问的好。
 
检验注册表中是否有
HKEY_CLASSES_ROOT/Microsoft.Jet.OLEDB.4.0
或者
HEKY_LOCAL_MACHINE/SOFTWARE/Classes/Microsoft.Jet.OLEDB.4.0
 
老大,你先试试好吗?
 
TO::杜宝
我试过将targatdatabase字符串中的'Persist Security Info=True;'+
'Jet OLEDB:System database=E:/ACCESS_CW.MDW';
去掉就行了,但是sourcedatabase字符串中的不能去!

我想知道其中的的所认然
 
TJetEngine哪里来的?
 
可惜压缩过的Access没有密码了
 
to mycwcgr_bak :
个人的看法:Access的安全设置分两个层次,一个文件层的,
就是Access中的“设置数据库密码”功能了。另一个就是你设置
帐号权限了。
这时候,打开一个*.mdb文件就得两个密码,一个是文件密码,
另一个是帐号密码。体现在LinkString中,文件密码就是DataBase
Password 而帐号密码就是Password了。

压缩的时候,JetEngine自动用Admin的帐号登录,这时候,它
只需要一个文件密码,但如果你指定的*.mdw,这时候访问数据库
就得要帐号密码了。如果你的*.mdw中没有Admin这个帐号的话,它
就会报错。所以我建议你不要删除Admin这个帐号.。

在Access中也是这种情况,如果你能打开*.mdb,你就可以压缩
数据库,不管你有没有表的权限。而打开*.mdb,只要有文件密码就
行了。
也就是说,不管你的LinkString如何指定,系统都是用Admin这个
帐号来做压缩的,你只要指这数据库文件密码就行了,不用指定系统
库的。 我想楼上的说压缩后没有了密码也就是这种情况,你的LinkString
本身就没有含DataBase Password。
 
多人接受答案了。
 
To :杜宝
“Access的安全设置分两个层次,一个文件层的,
就是Access中的“设置数据库密码”功能了。另一个就是你设置
帐号权限了。”
请问Access的哪一个层次的安全设置的安全性高一些,网上不少破解
口令的程序似乎都是真对数据库密码的,是不是帐号权限的安全性高
 
后退
顶部