仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 772|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL编程:Access 中怎样利用 ADO 硌顾趸蛐薷 M...

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-16 22:46:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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的响亮理由。
蒙在股里 该用户已被删除
7#
发表于 2015-3-20 00:31:53 | 只看该作者
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-3-6 00:09:49 | 只看该作者
原来公司用过MYSQL自己也只是建个表写个SQL
若相依 该用户已被删除
5#
发表于 2015-2-18 02:08:55 | 只看该作者
这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。
精灵巫婆 该用户已被删除
地板
发表于 2015-2-6 18:22:31 | 只看该作者
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
萌萌妈妈 该用户已被删除
板凳
 楼主| 发表于 2015-1-31 07:16:10 | 只看该作者
是要和操作系统进行Socket通讯的场景。否则建议慎重!
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-22 14:41:15 | 只看该作者
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
飘灵儿 该用户已被删除
楼主
发表于 2015-1-18 16:50:57 | 只看该作者
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 11:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表