|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
无疑希望员工得到系统、有深度的培训,显然MySQL在这一点上还做得很不够。access|ado|紧缩
Access中怎样利用ADO硌顾趸蛐薷MSAccess文件?
专题地点:http://access911.net/index.asp?board=4&recordid=71FAB71E
成绩:
Access中怎样利用ADO硌顾趸蛐薷MicrosoftAccess文件?
回覆:
之前利用DAO时,Microsoft有供应CompactDatabaseMethod硌顾MicrosoftAccess文件,RepairDatabaseMethod硇薷此鸹档MicrosoftAccess文件,。但是自从ADO出来以后,仿佛忘了供应绝对的紧缩及修复MicrosoftAccess文件的功效。
如今Microsoft发明了这个成绩了,也供应懂得决办法,不外有版本上的限定!限定申明以下:
ActiveXDataObjects(ADO),version2.1
MicrosoftOLEDBProviderforJet,version4.0
这是Microsoft提出的ADO的延长功效:MicrosoftJetOLEDBProviderandReplicationObjects(JRO)
这个功效在JETOLEDBProviderversion4.0(Msjetoledb40.dll)及JROversion2.1(Msjro.dll)中第一次被提出!
这些需要的DLL文件在您安b了MDAC2.1以后就有了,您能够在以下的网页中下载MDAC的最新版本!
UniversalDataAccessWebSite
鄙人载之前先到VBE界面中反省一下,【援用】中的MicrosoftJetandReplicationObjectsX.Xlibrary假如已是2.1以上的版本,您就能够不必下载了!
在您安b了MDAC2.1或以上的版本以后,您就能够利用ADO来紧缩或修复MicrosoftAccess文件,上面的步骤告知您怎样利用CompactDatabaseMethod来紧缩MicrosoftAccess文件:
1、新建一个新表单,选择VBE中【援用】。
2、到场MicrosoftJetandReplicationObjectsX.Xlibrary,个中(X.X年夜于或即是2.1)。
3、在得当的中央到场以下的程序代码,记得要修正datasource的热菁澳康匚募穆肪叮
DimjroAsjro.JetEngine
Setjro=Newjro.JetEngine
jro.CompactDatabase"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=d:
wind2.mdb",_来历文件
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=d:abbc2.mdb;JetOLEDB:EngineType=4"目标文件
在DAO3.60以后,RepairDatabaseMethod已没法利用了,以上的程序代码显现了ADOCompactDatabaseMethod的用法,而它也代替了DAO3.5时的RepairDatabasemethod!
附注:
1、呈现毛病提醒(不克不及实行这项操纵;在低版本的数据库中该版本的特征不成用。)是由于版本号与你的数据库格局不符,请看上面的对比表
引擎版本号
JetOLEDB:EngineType->Jetx.xFormatMDBFiles
1->JET10
2->JET11
3->JET2X
4->JET3X
5->JET4X
2、其他的紧缩修单数据库的工具和办法:
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;240434
固然偶然能够乐成地翻开某些破坏的数据库,但因为索引或表行已破坏,因而数据会见速率要慢良多。能够运转MicrosoftAccess开辟情况中的“修复和紧缩数据库”有用程序来修复破坏的数据库。编程时,您可使用JetandReplicationObjects(JRO)的CompactDatabase办法、JetOLEDB供应程序的IJetCompact::Compact办法,或DataAccessObjects(DAO)的CDaoDatabase::CompactDatabase办法,来完成此目标。
办法二:
Delphi代码(未考证)
//usesComObj,ActiveX
const
SConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=%s;
+JetOLEDB:DatabasePassword=%s;;
functionGetTempPathFileName():string;
var
SPath,SFile:array[0..254]ofchar;
begin
GetTempPath(254,SPath);
GetTempFileName(SPath,~SM,0,SFile);
result:=SFile;
DeleteFile(result);
end;
functionCompactDatabase(AFileName,APassWord:string):boolean;
//紧缩与修单数据库,掩盖源文件
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject(JRO.JetEngine);
vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
format(SConnectionString,[STempFileName,APassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
办法三:
VC请参考:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;230496
http://support.microsoft.com/?id=230501
下面我将描述五个不使用MySQL的响亮理由。 |
|