|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
任何规模的组织都可能受益于外包服务,并在一个标准化和优化的平台上统一其数据库管理任务。基于其本身的特性,DBaaS提供了敏捷和高效的数据库服务,它可以支持多变的需求。假如您在Access数据库、Access项目中删除数据或工具,大概会发生碎片并招致磁盘空间利用效力的下降。同时,数据库文件的巨细并未减小,而是不休的增年夜,直至您的硬盘没有空间。有无好的处置办法呢?实在,在Access中能够对数据库举行紧缩优化以提拔Access数据库和Access项目标功能,如许的紧缩处置的本色是复制该文件,偏重新构造文件在磁盘上的存储体例。可是,在Access项目中举行如许的紧缩不会影响到数据库工具(比方表或视图),由于它们是存储在MicrosoftSQLServer数据库中而不是在Access项目自己中。一样,如许的紧缩也不会影响到Access项目中的主动编号。在Access数据库中,假如已从表的开端删除纪录,紧缩该数据库是就会从头设置主动编号值。增加的下一个纪录的主动编号值将会比表中没有删除的最初纪录的主动编号值年夜一。
上面先容怎样在VB顶用一个CompactJetDatabase历程完成对Access数据库文件的紧缩处置,在这个过程当中有一个可选参数,就是在紧缩前你是不是必要把原本的数据库文件备份光临时目次(True或False)。我用此举措使21.6MB的数据库紧缩到仅仅300KB。
‘这些代码可放在模块中,在其他窗体也利用
PublicDeclareFunctionGetTempPathLib"kernel32"Alias_
"GetTempPathA"(ByValnBufferLengthAsLong,ByVallpBufferAsString)AsLong
PublicConstMAX_PATH=260
PublicSubCompactJetDatabase(LocationAsString,OptionalBackupOriginalAsBoolean=True)
OnErrorGoToCompactErr
DimstrBackupFileAsString
DimstrTempFileAsString
‘反省数据库文件是不是存在
IfLen(Dir(Location))Then
‘假如必要备份就实行备份
IfBackupOriginal=TrueThen
strBackupFile=GetTemporaryPath&"backup.mdb"
IfLen(Dir(strBackupFile))ThenKillstrBackupFile
FileCopyLocation,strBackupFile
EndIf
‘创立一时文件名
strTempFile=GetTemporaryPath&"temp.mdb"
IfLen(Dir(strTempFile))ThenKillstrTempFile
‘经由过程DBEngine紧缩数据库文件
DBEngine.CompactDatabaseLocation,strTempFile
‘删除本来的数据库文件
KillLocation
‘拷贝方才紧缩过一时数据库文件至本来地位
FileCopystrTempFile,Location
‘删除一时文件
KillstrTempFile
Else
EndIf
CompactErr:
ExitSub
EndSub
PublicFunctionGetTemporaryPath()
DimstrFolderAsString
DimlngResultAsLong
strFolder=String(MAX_PATH,0)
lngResult=GetTempPath(MAX_PATH,strFolder)
IflngResult0Then
GetTemporaryPath=Left(strFolder,InStr(strFolder,Chr(0))-1)
Else
GetTemporaryPath=""
EndIf
EndFunction
今后您在利用Access数据库时能够实验举行如许的紧缩,您应当会发明我说的没有错。需要处理因此带来的更多的支持工作,这有可能会带来成本上的提高。在这种情况下,一些MySQL学习教程发行商可能倾向于选择别的开源数据库,例如遵循BSD授权的PostgreSQL。 |
|