ACCESSÊý¾Ý¿â´æ´¢´óÅúÁ¿²É¼¯ÐÅÏ¢µÄÎÊÌâ
ÓÉÓÚ¹¤×÷ÐèÒª£¬Ê¹ÓÃACCESSÊý¾Ý¿â´æ´¢¸Û¿ÚÖÜΧAISÉ豸½ÓÊÕµ½µÄ´¬²°Êý¾Ý¡£ÓÉÓÚÔÚÈ«¹úºÜ¶à¸Û¿ÚÓвɼ¯µã£¬Òò´Ë£¬Êý¾ÝÁ¿ºÜ´ó£¬Ã¿Èý·ÖÖÓ´æ´¢Ò»´ÎÊý¾ÝµÄ»°£¬ÄÇôһ´Î½«ÓÐ2000¶àеĴ¬Î»Êý¾Ý¡£ÕâЩÊý¾ÝÈë¿âºó£¬Êý¾Ý¿âÎļþ´óС½«ÐÂÔö1Mµ½2M×óÓÒ¡£¸ù¾ÝÕâ¸öƵÂÊ£¬Ò»¸öСʱÊý¾Ý¿âÎļþ½«Ôö¼Ó40M£¬Ò»Ìì¾ÍÊÇ960M¡£
ΪÁËÌá¸ßÊý¾Ý¿âЧÂÊ£¬ÎÒ¶ÔÊý¾Ý¿âÖд洢µÄ´¬²°Êý¾Ý½øÐж¨Ê±É¾³ý£¬×î¶à±£Áô30ÍòÌõ¼Ç¼¡£µ«ÊÇACCESSÖÐÖ´ÐÐdeleteºó£¬²¢Ã»ÓÐÔÚ¿Õ¼äÉϼõÉÙ£¬¶øÖ»ÊǼõÉÙÁ˱íÖеÄÊý¾ÝÁ¿£¬ÕâÑù£¬¾Í´ï²»µ½Êý¾Ý¿âÎļþ±äСµÄÒªÇó¡£
ΪÁ˽â¾öÕâ¸öÎÊÌ⣬´ÓÍøÉÏÕÒµ½ÁËͨ¹ýд´úÂëʵÏÖÊý¾Ý¿âÎļþѹËõµÄ´úÂ롣ͨ¹ýѹËõ¿ÉÒÔÊÍ·ÅdeleteºóÕ¼ÓõĿռ䡣
ʵ¼ÊµÄ´úÂëÈçÏ£º
============================================
BOOL CPetrelProView::CompactDatabase()
{
WriteLog("===¿ªÊ¼Êý¾Ý¿âѹËõ===","COMPDB");
//::CoInitialize(NULL);
CString sDBFilePathName = GetModulePath() + "ShipSurvey.mdb";//Êý¾Ý¿âÎļþ
CString sDstDBFilePathName = GetModulePath() + "ShipSurvey_back.mdb";//ÁÙʱÎļþ
try
{
::DeleteFile(sDstDBFilePathName);//ɾ³ýÒÑÓеÄÁÙʱÎļþ
CFile::Rename(sDBFilePathName,sDstDBFilePathName);//½«µ±Ç°¿âÎļþ¸ÄÃûΪÁÙʱÎļþ
}
catch(...)
{
WriteLog("Îļþ¸ÄÃûʧ°Ü¡£","COMPDB");
return FALSE;
}
IJetEnginePtr jet(__uuidof(JetEngine));
BOOL bOK = TRUE;
try
{
//ѹËõÁÙʱÎļþΪµ±Ç°Îļþ
CString sSrc;
sSrc.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=",sDstDBFilePathName);
CString sDst;
sDst.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Password=",sDBFilePathName);
long lResult = jet->CompactDatabase(_bstr_t(sSrc),_bstr_t(sDst));
jet.Release();
//::CoUninitialize();
if(lResult == S_OK)
{
WriteLog("Êý¾Ý¿âѹËõÍê³É¡£","COMPDB");
WIN32_FILE_ATTR
Ïà¹ØÎĵµ£º
aspÁ¬½Óaccess,³öÏÖ0x80004005,δָ¶¨µÄ´íÎó
aspÀ´Á¬½ÓaccessÊý¾Ý¿â
±¾µØ²âÊÔ·¢ÏÖ,¾²Ì¬Ò³¿ÉÒÔ´ò¿ª.
ºÍÊý¾Ý¿â½¨Á¢Á´½ÓµÄ´úÂëconn.open connstr Ðгö´í,µ«ÊÇÒÔǰ²âÊÔʪ¿ÉÒÔͨ¹ýµÄ.
ÔÚÍøÉÏÕÒÁËÕÒ½â¾ö°ì·¨,ÀýÈ磺 ¸øÓû§¼ÓȨÏÞ,¸ü¸ÄiisÉèÖÃ.µ«ÊÇ»¹ÊDz»ÐÐ.
¼ÌÐøÕÒ£¬ÕÒµ½Ò»ÆªÎÄÕ£¬ËµÊÇÒªÐÞ¸Äc:\windows\temp ȨÏ޵ġ£
......
Ò»¡¢ADO¼ò½é
ADO(Active Data Object£¬»î¶¯Êý¾Ý¶ÔÏó)ʵ¼ÊÉÏÊÇÒ»ÖÖ»ùÓÚCOM(×é¼þ¶ÔÏóÄ£ÐÍ)ÖеÄ×Ô¶¯»¯½Ó¿Ú(IDispatch)¼¼Êõ£¬²¢ÒÔOLE DB(¶ÔÏóÁ¬½ÓºÍÏâÈëµÄÊý¾Ý¿â)Ϊ»ù´¡£¬¾¹ýOLE DB¾«Ðİü×°ºóµÄÊý¾Ý¿â·ÃÎʼ¼Êõ£¬ÀûÓÃËü¿ÉÒÔ¿ìËٵĴ´½¨Êý¾Ý¿âÓ¦ÓóÌÐò¡£
ADOÌṩÁËÒ»×é·Ç³£¼òµ¥£¬½«Ò»°ãͨÓõÄÊý¾Ý·ÃÎÊϸ½Ú½øÐзâ×°µÄ¶ÔÏó¡£ÓÉÓ ......
1¡¢VSS¿Í»§¶Ë´ò¿ª¹¤³ÌʱÌáʾ Access to file"\\***\rights.dat" denied
¸ÃÌáʾÊÇָûÓÐÍøÂç·ÃÎʵÄȨÏÞ£¬Óû§ÒªÔÚ¹²ÏíÎļþ¼ÐÓпÉдµÄȨÏ޲ſÉÒÔ¡£ÎÒÃÇÔÚÉèÖù²ÏíÎļþµÄʱºòÓ¦¸ÃÔÊÐíдÈë¡£
2¡¢ÎªVSSÉèÖû·¾³±äÁ¿
ĬÈÏÇé¿öÏÂÎÒÃÇÿ´Î´ò¿ªVSS¿Í»§¶ËÌî³äµÄÓû§Ãû¶¼Êǵ±Ç°ÏµÍ³µÇ½µÄÓû§£¬ÕâÑùʹÓÃÆðÀ´ºÜ²»·½±ã¡£Î ......
£¨Ò»£©°ÑÎļþÄÚÈÝдÈëAccessÊý¾Ý¿âµÄOLE¶ÔÏó×Ö¶ÎÖУº
if (File.Exists(txtBrow.Text) != false) // Îı¾¿òtxtBrowÖÐÄÚÈÝΪÎļþ·¾¶¼°ÎļþÃû
{
//»ñÈ¡Îļþºó׺
FileInfo p = new FileInfo(txtBrow.Text.Trim());
F_str_Type = ......
ÔÚaccessÖбíÖÐÊý¾Ýµ¼³öΪÎı¾Îļþµ½MySQLµÄÎÊÌ⣿
µ¼³öÎı¾Îļþʱºò£¬¿ÉÒÔÑ¡Ôñ×ֶηָô·û£¬À´°ÑÿһÁиô¿ª ºÍ Îı¾Ê¶±ð·û£¬À´°ÑcharÐÍÊý¾ÝÀ¨ÆðÀ´
ÎÒÏÖÔÚÓÓ£¬”×÷Ϊ×ֶηָô·û£¬²»Ê¹ÓÃÎı¾Ê¶±ð·û
Éú³ÉµÄÎı¾ÎļþÈçÏÂ
1£¬ÕÅÈý£¬ÄУ¬£¬Öйú ÉϺ££¬80501206
2£¬ÍõÎ壬Ů£¬Öйú ±±¾© ......