´´½¨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(...)
Ïà¹ØÎÊ´ð£º
accessÊý¾Ý¿â£¬Ö±½ÓʹÓà select ×Ö¶Î from ±í ¶ÁÈ¡Êý¾Ý
È»ºóÔÚÒ³ÃæÖÐʹÓÃRepeaterÀ´ÏÔʾ
ÕâÕűíÓÐ2000ÌõÊý¾Ý£¬ËùÒÔÒ³Ãæ´ò¿ªµÄºÜÂý
Çë½Ì¸÷λÅóÓÑ£¬ÓÐûÓа취½â¾ö£¬Ìá¸ßµãËÙ¶È£¡
Ò»´ÎÈ«²¿¶ÁÍê ......
ÕâÁ½Ììѧϰ¡¶Delphi¼¼Êõ·½°¸±¦µä¡·Ò»ÊéÖеÚÈýÕ¹ØÓÚÓû§µÇ¼·½°¸µÄÀý×Ó£¬ÀûÓõÄÊÇSQl ServerÊý¾Ý¿âʵÏÖÓû§µÇ¼£¬±àÒëÔËÐж¼Ã»ÎÊÌ⣬¸ÃʵÏֵŦÄÜÒ²¶¼ÊµÏֵĺܺ㬵«ÊÇÆæ¹ÖµÄÊÇ£¬·´¸´ÔËÐÐÒ»¶Îʱ¼äºó£¬ÓÐʱÔڹرÕÕû¸ö ......
DbgridÁ¬½Óaccess ÏÔʾÊý¾ÝʱÍ϶¯¹ö¶¯ÌõËÀ»ú£¿Ôõô½â¾ö°¡£¿
»úÆ÷Ì«²îÁ˰ɣ¿
ÊDz»ÊÇÄãÊý¾ÝÁ¿Ì«´óÁ˰¡
ÄãÊý¾ÝÉÙһЩ¿´¿´»¹ËÀ»úÂð£¿
Êý¾ÝºÜÉÙ°¡ ¾ÍÒ»Ò³¡£
ÎÒÔÚBCB6ÏÂ×ö¹ý²»ÉÙ DBGRID+ACCESS £¬´ÓÀ´Ã»ÓÐÓöµ½ ......
ÔÚMSSQLÖУ¬ÎÒÃÇ¿ÉÒÔÒ»´Î²éѯ¶à¸öÊý¾Ý±í²¢¼ÓÈëµ½Êý¾Ý¼¯ÖУ¬ÖмäÖ»ÐèÓ÷ֺŸô¿ª£®È磺
£¢select * from A;select * from B;select * from C£¢,Ìî³äÊý¾Ý¼¯ºóÔÚDSÖоÍÓÐÁËÈýÕÅ±í£®
µ«ÔÚÓÃͬÑùµÄÓï¾ä·ÃÎÊACCESSÊý¾ ......
m_PriceÊÇfloatÐÍ
m_MonthÊÇctimeÐÍ
ÆäËüÊÇcstringÐÍ
´íÎóÌáʾ£ºµ¯³ö´íÎó¶Ô»°¿ò£¬×××.exe£Ó¦ÓóÌÐò´íÎ󣬡¡¡¡¡¡¸ÃÄÚ´æ²»ÄÜΪ"read"
¸ßÊÖ¼±¾È¡«¡«¡«¡«µ½µ×Ó¦¸ÃÈçºÎд
......