´´½¨ACCESSÎļþµ÷ÓÃOLEFUNCTIONʱ²úÉú´íÎó£¬ÔÚÏßÇóÖú
ÎÒÔÚCBÁ·´´½¨ACCESSÎļþ£¬
²ÉÓõÄÏÂÁдúÂë,ÎÒרÃÅÏÈ×ö¸öС³ÌÐò²âÊÔ£¬Ò»ÇÐÕý³£¡£
È»ºóÔÚ¼ÓÔØµ½1¸öÈí¼þÖУ¬
´«ÈëµÄ±äÁ¿MDB_PathNameÒ²ÊÇÕýÈ·µÄ¡£
µ«ÔÚÖ´ÐÐ
mdb.OleFunction("Create",DataSource);
³ö´í!
Project app.exe raised exception class EAccessViolation with message
'Access violation at address 0055da57 . Read of address 00000800'
C/C++ code:
bool CreateAccess(AnsiString MDB_PathName)
{
/*
´´½¨Ö¸¶¨Ãû³ÆµÄmdbÊý¾Ý¿â£¬³É¹¦·µ»Øtrue
MDB_PathNameΪmdbÎļþËùÔڵķ¾¶ºÍÎļþÃû
ÓÉÓÚҪʹÓÃVariantÐͱäÁ¿£¬Òò´ËÒª#include <ComObj.hpp>
*/
bool seccess = false;
if(FileExists(MDB_PathName))//Èç¹ûMDBÎļþÒÑ´æÔÚ£¬Ôòɾ³ý£¬·ñÔò»á³ö´í
{
if(MessageBox(0, AnsiString(MDB_PathName+"ÒÑ´æÔÚ,È·¶¨É¾³ýÎļþ¼ÌÐø,È¡ÏûÍ˳ö").c_str()
,"ɾ³ýÒÑ´æÔÚÎļþ£¿"
, MB_OKCANCEL + MB_ICONQUESTION + MB_DEFBUTTON2) == IDCANCEL)
return false;
DeleteFile(MDB_PathName);
}
WideString DataSource="Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + MDB_PathName;
try
{
Variant mdb = CreateOleObject("ADOX.Catalog");
try
{
mdb.OleFunction("Create",DataSource);
seccess = true;
}
__finally
{
mdb = Unassigned;
}
}
catch(...)
Ïà¹ØÎÊ´ð£º
ÕâÁ½Ììѧϰ¡¶Delphi¼¼Êõ·½°¸±¦µä¡·Ò»ÊéÖеÚÈýÕ¹ØÓÚÓû§µÇ¼·½°¸µÄÀý×Ó£¬ÀûÓõÄÊÇSQl ServerÊý¾Ý¿âʵÏÖÓû§µÇ¼£¬±àÒëÔËÐж¼Ã»ÎÊÌ⣬¸ÃʵÏֵŦÄÜÒ²¶¼ÊµÏֵĺܺ㬵«ÊÇÆæ¹ÖµÄÊÇ£¬·´¸´ÔËÐÐÒ»¶Îʱ¼äºó£¬ÓÐʱÔڹرÕÕû¸ö ......
DbgridÁ¬½Óaccess ÏÔʾÊý¾ÝʱÍ϶¯¹ö¶¯ÌõËÀ»ú£¿Ôõô½â¾ö°¡£¿
»úÆ÷Ì«²îÁ˰ɣ¿
ÊDz»ÊÇÄãÊý¾ÝÁ¿Ì«´óÁ˰¡
ÄãÊý¾ÝÉÙһЩ¿´¿´»¹ËÀ»úÂð£¿
Êý¾ÝºÜÉÙ°¡ ¾ÍÒ»Ò³¡£
ÎÒÔÚBCB6ÏÂ×ö¹ý²»ÉÙ DBGRID+ACCESS £¬´ÓÀ´Ã»ÓÐÓöµ½ ......
¸÷λ´óϺ£¬Ð¡µÜÓõÄÊÇADOÁ¬½ÓACCESSÊý¾Ý¿â£¬ÓÃDBGridÏÔʾ²éѯµÄÊý¾Ý£¬ÎÒ×öµÄÊǸöÊý¾Ý²É¼¯ÏµÍ³£¬¸ù¾Ý²»Í¬µÄµØÖ·°ÑÊý¾Ý·ÅÔÚACCESSÊý¾Ý¿âÖв»Í¬µÄ±íÀïÃæ£¬ÏÖÔÚÎÒÏë²éѯijһ¶Îʱ¼äÄÚËùÓбíÄÚµÄÊý¾Ý£¬²¢ÇÒÔÚDBGridÖÐÏÔʾ³ ......
Çë¸÷λָµãÏ£º³ÌÐò´úÂëÈçÏÂmingchen = "C:\Îļþ·¾¶\"
cat = New ADOX.Catalog
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & min ......
m_PriceÊÇfloatÐÍ
m_MonthÊÇctimeÐÍ
ÆäËüÊÇcstringÐÍ
´íÎóÌáʾ£ºµ¯³ö´íÎó¶Ô»°¿ò£¬×××.exe£Ó¦ÓóÌÐò´íÎ󣬡¡¡¡¡¡¸ÃÄÚ´æ²»ÄÜΪ"read"
¸ßÊÖ¼±¾È¡«¡«¡«¡«µ½µ×Ó¦¸ÃÈçºÎд
......