Access������--
ËùÊô·ÖÀࣺ ϵͳÓÅ»¯ ×÷Õߣº ºú³¯êÍ ¸üÐÂÈÕÆÚ£º2003-10-6 11:11:06 ÔĶÁ´ÎÊý£º303

Êý¾Ý¿âÓ¦ÓóÌÐòÐè×¢ÒâµÄÎÊÌâ


×ܵÄÀ´Ëµ£¬Ìá¸ßÓ¦ÓóÌÐòÐÔÄܵÄ×îºÃµÄ·½·¨ÊÇ·¢ÏÖÓ¦ÓõÄÆ¿¾¶Ö®ËùÔÚ£¬ºÍÊý¾Ý¿â½øÐн»»¥µÄÐÔÄÜÎÞÒÉÊǾö¶¨Ó¦ÓóÌÐòÐÔÄܵÄÖØÒª»·½ÚÖ®Ò»¡£ÒòΪADOÊǵ±Ç°×îеĻùÓÚ×é¼þµÄÊý¾Ý¿â±à³ÌµÄ½Ó¿Ú£¬ÕâÀïÎÒÃÇÖ÷ÒªÌÖÂÛÓÃADO±à³ÌËùÐèҪעÒâµÄÎÊÌ⣬ÒòΪADOÊÇÒ»¸öºÍ±à³ÌÓïÑÔÎ޹صÄCOM×é¼þϵͳ£¬ËùÒÔÕâÀïÌÖÂÛµÄÒªµãÊÊÓÃÓÚËùÓеıà³ÌÓïÑԺͱà³Ì»·¾³£¬±ÈÈ磺VB¡¢VBScript¡¢VC¡¢JavaµÈµÈ¡£

¡¡¡¡ÏÔʽµÄ¶¨Òå¶ÔÏó±äÁ¿µÄÀàÐÍ£º

¡¡¡¡Êµ¼ÊÉÏ£¬ÕâÌõ×¼Ôò²»½öÊÊÓÃÓÚADO±à³Ì£¬Ò²ÊÊÓÃÓÚÆäËûµÄCOM¶ÔÏóÏà¹ØµÄ±à³Ì£¬ÒòΪÈç¹ûÒ»¿ªÊ¼¾Í¶¨Òå±äÁ¿ÀàÐ͵Ļ°£¬±àÒëÆ÷ÔÚ±àÒëµÄʱºò¾Í¿ÉÒÔÖªµÀ±äÁ¿µÄÀàÐÍ£¬±àÒëÆ÷ʵ¼ÊÉϾͲÉÓÃvtableÆ«ÒƵķ½Ê½À´µÃµ½¾ßÌåµÄCOM¶ÔÏó°üº¬µÄ·½·¨µÄµØÖ·£¨ÕâÒ»µãºÍC++ÖеÄÐ麯ÊýµÄµØÖ·µÄ»ñÈ¡ÀàËÆ£©£¬µ«Èç¹ûÒ»¿ªÊ¼²»Ö¸¶¨±äÁ¿ÀàÐ͵Ļ°£¬±ÈÈç¼òµ¥µÄ²ÉÓÃÈçϵÄÓï¾ä£º

¡¡¡¡DIM myCon as Object

¡¡¡¡¡¡»òÕßÊÇ

¡¡¡¡DIM myCon

ÄÇô±àÒëÆ÷ÔÚ±àÒëµÄʱºò¾Í²»Äܵõ½±äÁ¿µÄÀàÐÍ£¬¶øÖ»ÄÜÔÚÔËÐеÄʱºò¶¯Ì¬µÄµÃµ½·½·¨µÄÐÅÏ¢£¨Í¨¹ýʹÓýӿÚIDispatchµÄ·½·¨InvokeÀ´ÊµÏֵģ©£¬ÕâÑùΪÁ˵õ½·½·¨µÄµØÖ·ºÍÏà¹ØµÄ±äÁ¿Çé¿ö¾ÍÐèÒªÔÚÄÚ²¿½øÐÐÁ½´Îµ÷Óã¬ÎÞÒɾÍʹËٶȽµµÍ¡£

¡¡¡¡µ±ä¯ÀÀ¼Ç¼µÄʱºò£¬°ó¶¨Áе½¾ßÌåµÄ×ֶζÔÏóÉÏÈ¥

¡¡¡¡Õâ¸öÒâ˼¾ÍÊÇ˵ÔÚÒ»¿ªÊ¼µÄʱºòÎÒÃǾͽ¨Á¢¶Ô×ֶζÔÏóµÄÒýÓ㬱ÜÃâÔÚÿ´ÎµÃµ½¼Ç¼µÄʱºòÐèÒªÔÚRcordset::FieldsÖнøÐвéÕÒ¶øÔö¼ÓϵͳµÄ¿ªÏú¡£

¡¡¡¡±ÈÈç¿ÉÒÔ²ÉÓÃÈçϵÄʾÀý´úÂëÐÎʽ£º

¡¡¡¡Private Sub TblBrowse_Click()

¡¡¡¡¡¡Dim fld1 As ADODB.Field

¡¡¡¡¡¡Dim fld2 As ADODB.Field

¡¡¡¡¡¡Dim rs As ADODB.Recordset

¡¡¡¡¡¡set rs=g_cn.execute(...) g_cnΪȫ¾Öadodb.connection¶ÔÏó

¡¡¡¡¡¡Set fld1 = rs.Fields("id") Êý¾Ý±íµÄ×Ö¶Î

¡¡¡¡¡¡Set fld2 = rs.Fields("name") Êý¾Ý±íµÄ×Ö¶Î
¡¡¡¡¡¡If rs.BOF = False Then

¡¡¡¡¡¡¡¡While rs.BOF = False

¡¡¡¡¡¡¡¡¡¡Debug.Print fld1.Value

¡¡¡¡¡¡¡¡¡¡Debug.Print fld2.Value

¡¡¡¡¡¡¡¡¡¡rs.MoveNext

¡¡¡¡¡¡¡¡Wend

¡¡¡¡¡¡End If

¡¡¡¡¡¡rs.Close

¡¡¡¡End Sub

¡¡¡¡¾¡Á¿²ÉÓÃSQLÓï¾äºÍ´æ´¢¹ý³Ì½øÐÐÊý¾Ý¸üÐÂ

¡¡¡¡¾¡¹Ü²ÉÓÃRecordset¶ÔÏóÀ´¸üÐÂÊý¾ÝÊǷdz£·½±ãµÄ£¬µ«ÊÇËüµÄ¿ªÏúÒ²¸ü´ó£¬ËùÒÔÈç¹û¿ÉÄܵĻ°£¬¾ÍÒª²ÉÓÃSQLÓï¾äÀ´¸üÐÂÊý¾Ý¡£Ê¹Óô洢¹ý³Ì¶ø²»Êǵ¥Ò»µÄSQLÓï¾äÀ´»ñÈ¡ÐÅÏ¢¡£ÒòΪ´æ´¢¹ý³ÌÊÇÔÚ·þÎñÆ÷¶ËÖ´Ðеģ¬Ö»°Ñ½á¹û·µ»Øµ½¿Í»§¶Ë£¬ÕâÑùÒ»·½Ãæ¿ÉÒÔ½µµÍÍøÂç½øÐÐÊý¾Ý½»»¥µÄ¿ªÏú£¬ÁíÒ»·½Ãæʹϵͳ¸ü¼ÓÈÝÒ×ά»¤£¬²¢ÇÒ±£³ÖÊý¾ÝµÄÒ»ÖÂÐÔ¡£¶øÈç¹ûʹÓÃrecordsetÀ´µÃµ½½á¹ûµÄ»°£¬Í¨¹ýÊý¾ÝÔ´¶ÔÏ󷵻صIJéѯ¼¯²»½ö°üº¬ÁËÊý¾Ý£¬¶øÇÒÒ²°üº¬ÁËÔªÊý¾Ý£¨metadata£©,ÔÚÓÐЩʱºòÔªÊý¾Ý¿ÉÄܱÈÊý¾Ý±¾Éí»¹Òª´ó£¬ÕâÑùϵͳµÄ¿ªÏúÎÞÒÉÒ²Ôö¼ÓÁ˲»ÉÙ¡£

¡¡¡¡Èç¹û±ØÐëҪʹÓÃÓαêµÄ»°£¬×îºÃʹÓü¯ºÏµÄ·½·¨¶Ôµ¥ÌõµÄSELECTÓï¾ä½øÐвÙ×÷

Recordset::get_CollectºÍRecordset::put_Collect·½·¨ÊÇRecordset ¶ÔÏóµÄ¿ì½Ý·½Ê½£¬¿ÉÒÔʹÄã¿ìËٵĵõ½Ò»¸ö×ֶεÄÖµ¶ø²»ÐèÒª»ñµÃ¹ØÓÚÒ»¸ö×ֶεÄÒýÓ᣿ÉÒԲο¼ÈçϵÄʾÀý´úÂ룺

¡¡¡¡Sub Collect()

¡¡¡¡¡¡Dim rs As New Recordset

¡¡¡¡¡¡rs.ActiveConnection = "¡­"

¡¡¡¡¡¡rs.Source = "Ò»ÌõSQL²éѯÓï¾ä"

¡¡¡¡¡¡rs.Open

¡¡¡¡¡¡Debug.Print rs.Collect(0), rs.Collect(1), rs.Collect(2)

¡¡¡¡¡¡Debug.Print rs!au_id, rs!au_fname, rs!au_lname

¡¡¡¡End Sub

Ö»²éѯÄãËùÐèÒªµÄÊý¾Ý

¡¡¡¡¾¡¹ÜºÜ¶à¿ª·¢ÈËÔ±¶¼Ï°¹ß²ÉÓÃ"SELECT * FROM TBL"µÄģʽ½øÐвéѯ£¬µ«ÊÇΪÁËÌá¸ßϵͳµÄЧÂÊ£¬Èç¹ûÄãÖ»ÐèÒªÆäÖÐij¼¸¸ö×ֶεÄÖµµÄ»°£¬×îºÃ°ÑÕ⼸¸ö×Ö¶ÎÖ±½Óд³öÀ´£¬Í¬Ê±ÐèÒªÏÞ¶¨·µ»Ø¼Ç¼¼¯µÄ·¶Î§£¨Í¨¹ýWHERE×Ó¾ä½øÐÐÏÞ¶¨£©

¡¡¡¡ÕýÈ·Ñ¡ÔñÓαêµÄλÖá¢ÀàÐͺÍËø·½Ê½

¡¡¡¡Èç¹ûÄãÖ»ÐèÒª°´Ë³Ðò¶ÁÈ¡¼Ç¼²¢ÇÒ²»ÐèÒª¹ö¶¯ºÍ¸üмǼµÄ»°£¬Ê¹Ó÷þÎñÆ÷¶ËÓα꣨adUseServer£©¡¢½öÏòÇ°Óαê(adOpenForwardOnly)ºÍ¶ÁËø(adLockReadOnly)¿ÉÒÔʹÄã»ñµÃ×îºÃµÄÐÔÄÜ¡£Èç¹ûÄãÐèÒª¹ö¶¯¼Ç¼µÄ»°£¬²ÉÓÿͻ§¶ËÓα꣨adUseServer£©»á±È²ÉÓ÷þÎñÆ÷¶ËÓαêËùµÃµ½µÄÐÔÄÜÒªºÃ£¬ADOϵͳĬÈÏÊDzÉÓ÷þÎñÆ÷¶ËÓαêÀàÐ͵ġ£µ±È»Èç¹ûÊý¾Ý¼¯ºÏÏ൱´óµÄ»°£¬²ÉÓ÷þÎñÆ÷¶ËÓαêµÄÐÔÄÜ»áºÃһЩ¡£Í¬Ê±ÐèҪעÒâµÄ»°£¬Èç¹û²ÉÓÿͻ§¶ËÓαêµÄ»°£¬×îºÃÖ»²ÉÓöÁ¼ÓËø£¨adLockReadOnly£©µÄËøÀàÐÍ,ÒòΪÈç¹ûÄãÐèÒª¸üÐÂÊý¾ÝµÄ»°£¬¿Í»§¶ËÓαêÒýÇæÐèÒªµÃµ½¶îÍâµÄÐÅÏ¢£¨ÔªÊý¾Ý£©£¬¶øÕâ¸öÐÅÏ¢µÄ»ñÈ¡ÊǷdz£°º¹óµÄ¡£

¡¡¡¡µ÷Õû¼Ç¼¼¯¶ÔÏó£¨Recordset£©CacheSizeµÄÊôÐÔ

¡¡¡¡ADOʹÓüǼ¼¯¶ÔÏóµÄCacheSizeµÄÊôÐÔÀ´¾ö¶¨ÌáÈ¡ºÍ»º´æµÄ¼Ç¼µÄÊýÄ¿£¬µ±ÄãÔÚ»º´æµÄ·¶Î§ÄÚä¯ÀÀÊý¾ÝµÄ»°£¬ADO¾ÍÖ»´Ó»º´æÖÐÌáÈ¡Êý¾Ý¡£µ±ÄãÒªä¯ÀÀµÄÊý¾Ý³¬³ö»º´æµÄ·¶Î§µÄʱºò£¬ADO¾ÍÊÍ·Å»º´æ£¬ÌáÈ¡ÏÂһЩ¼Ç¼£¨ÌáÈ¡µÄÊýĿΪCacheSizeµÄ´óС£©¡£Äã±ØÐë¸ù¾ÝÄã¾ßÌåµÄÓ¦ÓóÌÐòµÄÇé¿öÀ´É趨CacheSizeµÄ´óС±£Ö¤ÄãµÃµ½×îºÃµÄÐÔÄÜ¡£

¡¡¡¡×Ô¼º¶¨Òåcommand¶ÔÏóµÄ²ÎÊý

¡¡¡¡ÔÚÐí¶àÊý¾ÝÔ´ÖУ¬µÃµ½²ÎÊýÐÅÏ¢ºÍÖ´ÐÐÃüÁîµÄ´ú¼Û¼¸ºõÊÇÒ»ÑùµÄ£¬ËùÒÔÈç¹û¿ÉÄܵĻ°£¬ÄãÒª×Ô¼ºÔÚ³ÌÐòÖж¨ÒåºÃcommand²ÎÊý(Ò²¾ÍÊÇ˵Ҫ¶¨ÒåºÃ²ÎÊýµÄÃû³Æ¡¢ÀàÐͺͷ½ÏòÐÅÏ¢),¶ø±ÜÃâ´ÓÊý¾ÝÌṩÕߣ¨Provider£©ÄÇÀï»ñÈ¡ÐÅÏ¢.

¡¡¡¡Ê¹ÓÃԭʼµÄOLE DBÌṩÕß

¡¡¡¡MDAC¶ÔÐí¶àÊý¾ÝÔ´ÌṩÁËԭʼµÄÊý¾ÝÌṩÕߣ¬±ÈÈçSQL Server,OracleºÍACCESSÊý¾Ý¿â£¬ÕâÑùÄã²»ÐèÒªÔÙͨ¹ýODBCÀ´»ñÈ¡Êý¾Ý£¨Ò²¾ÍÊÇ˵²»ÐèÒªÔÙͨ¹ýODBCÇý¶¯ÕâÒ»²ã£©£¬ÕâÑùµÄºÃ´¦ÊÇÄãÄܸü¿ìµÄµÃµ½Êý¾Ý£¬²¢ÇÒ½µµÍ´ÅÅ̺ÍÄÚ´æµÄ¿ªÏú¡£

¡¡¡¡Èç¹ûʹÓÿͻ§¶ËÓαêµÄ»°£¬¶Ï¿ªconnectionÁ¬½Ó

¡¡¡¡ADOÓÐÒ»¸öÌØÕ÷Êǵ±Ê¹Óÿͻ§¶ËÓαê²Ù×÷Recordset¼Ç¼¼¯µÄʱºò£¬²»ÐèÒªºÍ·þÎñÆ÷½øÐÐÁªÏµ¡£Äã¿ÉÒÔ³ä·ÖÀûÓÃÕâ¸öÌØÕ÷½µµÍ·þÎñÆ÷¶ËµÄ¿ªÏú£¨·þÎñÆ÷¾Í²»ÐèҪά»¤ÕâЩÁ¬½ÓÁË£©£¬µ±Äã²Ù×÷Íê¼Ç¼¼¯ÐèÒª¸üеĻ°£¬¿ÉÒÔÖØкÍÊý¾Ý¿â½øÐÐÁ¬½ÓÀ´¸üÐÂÊý¾Ý¡£ÎªÁË´´½¨Ò»¸ö¿ÉÒԶϿªÁ¬½ÓµÄ¼Ç¼¼¯£¬ÄãͬʱҲÐèҪʹÓþ²Ì¬Óαê(adOpenStatic)ºÍÅú´¦ÀíµÄ¼ÓËøģʽ£¨adLockBatchOptimistic£©¡£ÏÂÃæµÄʾÀýÊÇÓÃVCдµÄ£º

¡­¡­

¡¡¡¡pRs.CreateInstance(__uuid(Recordset));

¡¡¡¡pRs->CursorLoction=adUseClient;

¡¡¡¡pRs->Open(strCmdText,strConnection,adOpenStatic,adLockBatchOptimistic,adCmdText);

¡¡¡¡pRs->PutRefActiveConnection(NULL);

¡¡¡¡file://ÕâÀï¿ÉÒԶԼǼ¼¯¶ÔÏópRs½øÐвÙ×÷

¡¡¡¡pRs->PutRefAxctiveConnection(pCon); file://ÖØкÍÊý¾Ý¿â½¨Á¢Á¬½Ó

¡¡¡¡pRs->UpdateBatch(adAffectAll); file://ÅúÁ¿¸üÐÂÊý¾Ý

ÐèҪעÒâµÄÊÇ£¬µ±ÄãÖ´ÐÐÅúÁ¿¸üеĻ°£¬Äã±ØÐë×Ô¼º´¦ÀíÊý¾Ý³åÍ»ÎÊÌ⣬ÒòΪµ±Äã¸üÐÂÊý¾ÝµÄʱºò£¬ÆäËûÈË¿ÉÄÜÒ²ÕýÔÚ¶Ô¸ÃÊý¾Ý½øÐвÙ×÷¡£

¡¡¡¡Èç¹û²»ÐèÒª·µ»Ø¼Ç¼µÄ»°£¬Ê¹ÓÃadExecuteNoRecordsÑ¡Ïî

¡¡¡¡ADO 2.0°üÀ¨Ò»¸öеÄÖ´ÐÐÑ¡Ïî³ÆΪadExecuteNoRecords£¬µ±Ê¹ÓøÃÑ¡ÏîµÄʱºò£¬ADO¾Í²»»á´´½¨¼Ç¼¼¯¶ÔÏ󣬲»ÉèÖÃÈκÎÓαêÊôÐÔ¡£Êý¾ÝÌṩÕßÒòΪ²»ÐèÒªÈÏÖ¤Ðм¯ºÏµÄÊôÐÔ¶øʹÐÔÄܵõ½ÓÅ»¯¡£¾ßÌåµÄÀý×ÓÈçÏ£º

¡¡¡¡con.Execute "insert into tbl values(fv1, fv2) ", , adExecuteNoRecords

¶Ô½öÓÐÒ»ÌõµÄÖ´ÐÐÓï¾ä²ÉÓÃConnection::ExecuteµÄ·½·¨±ÈʹÓÃRecordset::Open»òÕßÊÇCommand::ExecuteµÄЧ¹ûÒªºÃ£¬ÒòΪADO²»±£ÁôÈκÎÃüÁî״̬µÄÐÅÏ¢£¬Òò´ËÖ´ÐÐÐÔÄܾÍÓÐËù¸Ä½ø¡£

¡¡¡¡Ê¹ÓÃsession/connection»º³å³Ø

¡¡¡¡ÎÒÃÇÖªµÀ£¬Êý¾Ý¿âµÄ´ò¿ªºÍ¹Ø±ÕÊǺÜÏûºÄϵͳ×ÊÔ´µÄ¡£Òò´Ë£¬Á¬½Ó³Ø¶Ô»ùÓÚ¶à²ãµÄÓ¦ÓõÄÐÔÄÜÓкܴóµÄÌá¸ß£¬µ±ÄãʹÓÃMDACµÄʱºò£¬¿ª·¢ÈËÔ±±¾Éí²¢²»ÐèÒª¿¼ÂǶÔÊý¾Ý¿âÁ¬½ÓµÄ»º´æ£¬MDAC»á×Ô¶¯´¦ÀíËü¡£Á¬½Ó³ØÔÚÁ½¸ö²ã´ÎÉÏÌṩ֧³Ö£¬OLE DB sessionsºÍODBCÁ¬½Ó¡£Èç¹ûÄãʹÓÃADOµÄ»°£¬ÄãµÄÊý¾Ý¿âÁ¬½Ó»á×Ô¶¯±»OLE DB session»º³å³ØËù»º´æ¡£Èç¹ûʹÓÃODBCµÄ»°£¬ÔÚODBCÊý¾ÝÔ´¹ÜÀíÖÐеÄÁ¬½Ó»º³å³ØÑ¡Ïî¿ÉÒÔÈÃÄã¶ÔODBC»º³å½øÐÐÉèÖã¬È»ºóODBCÇý¶¯³ÌÐò»áΪÄã×öʣϵÄÊÂÇé¡£


--------------------------------------------------------------------------------
Ïà¹ØÎÄÕÂ

Êý¾Ý¿âÉè¼ÆÖеÄÃô½Ý·½·¨ 2004-2-9 11:19:16
´óÐÍÊý¾Ý¿âÉè¼ÆÔ­Ôò 2003-12-15 12:49:18
ERwin--¼ò»¯µÄÊý¾Ý¿âÉè¼Æ¹¤¾ß 2003-12-15 12:41:40
Microsoft AccessÃØÃÜ¡¢¼¼ÇɺÍÏÝÚå 2003-10-17 19:58:04
ÈçºÎÕï¶Ï/ÐÞ¸´Ëð»µµÄ Jet 4.0 Êý¾Ý¿â 2003-10-14 8:31:26
ÓÅ»¯Microsoft AccessÌá¸ßËÙ¶È 2003-10-6 10:31:55


ϵͳÓÅ»¯
¿Ø¼þʹÓÃ
Êý¾Ý¿âÉè¼Æ
Êý¾Ý¿âÁ¬½Ó
ϵͳ°²È«
OLE×Ô¶¯»¯
³£¼ûÎÊÌâ
ʵÓôúÂë
ÊôÐÔÏê½â
ÍøÂçÏà¹Ø
ʵÓÃAPI
¾­Ñé·ÖÏí
¾«Ñ¡½Ì³Ì
×Ö·û´¦Àí
ADPÏà¹Ø



ÎÄÕÂËÑË÷



ÖÆ×÷ά»¤£ºÀîÑ°»¶     Mail:[email protected]

¹ØÓÚ±¾Õ¾ -- ÍøÕ¾·þÎñ -- °æȨÌõ¿î -- ÁªÏµ·½·¨ -- ÍøÕ¾°ïÖú
Access°®ºÃÕß°æȨËùÓÐ Copyright 2003-2005 All Rights Reserved δ¾­Ðí¿É²»µÃµÁÁ´