´Ó¹¦Äܼòµ¥µÄÊý¾Ý¿â(ÈçJet Engine)µ½¸´ÔӵĴóÐÍÊý¾Ý¿âϵͳ(Èçoracle)£¬VC++6.0¶¼ÌṩÁËһЩ±à³Ì½Ó¿Ú¡£±¾ÎÄÖ÷Òª½éÉÜÒÔÏÂÎåÖÖ:
1.ODBC API£»
2.MFC ODBCÀࣻ
3.MFC DAOÀࣻ(Êý¾Ý·ÃÎʶÔÏó)
4.MFCµÄOLE/DB£»
5.ActiveXÊý¾Ý¶ÔÏó(ADO)¡£
1.¿ª·ÅÊý¾Ý¿âÁ¬½Ó(ODBC API)£º
ÌṩÁËÒ»¸öͨÓõıà³Ì½Ó¿Ú£¬ÔÊÐí³ÌÐòÓë¶àÖÖ²»Í¬µÄÊý¾Ý¿âÁ¬½Ó¡£ËüΪOracle£¬ SQL Server£¬MS ExcelµÈ¶¼ÌṩÁËÇý¶¯³ÌÐò£¬Ê¹µÃÓû§¿ÉÒÔʹÓÃSQLÓï¾ä¶ÔÊý¾Ý¿â½øÐÐÖ±½ÓµÄµ×²ã¹¦ÄܲÙ×÷¡£ÔÚʹÓÃODBC APIʱ£¬Óû§ÐëÒýÈëµÄÍ·ÎļþΪ"sql.h"£¬"sqlext.h"£¬"sqltypes.h"¡£ÓÃODBC API´´½¨Êý¾Ý¿âÓ¦ÓóÌÐò×ñÑÒ»¶¨µÄ»ù±¾²½Ö裺
µÚÒ»²½ÊÇ·ÖÅäODBC»·¾³£¬Ê¹Ò»Ð©ÄÚ²¿½á¹¹³õʼ»¯¡£Íê³ÉÕâÒ»²½£¬Ðë·ÖÅäÒ»¸öSQLHENVÀàÐ͵ıäÁ¿ÔÚODBC»·¾³ÖÐ×ö¾ä±úʹÓá£
µÚ¶þ²½ÊÇΪ½«ÒªÊ¹ÓõÄÿһ¸öÊý¾ÝÔ´·ÖÅäÒ»¸öÁ¬½Ó¾ä±ú£¬Óɺ¯ÊýSQLALLocHandle()Íê³É¡£
µÚÈý²½ÊÇʹÓÃSQLConnect()°ÑÁ¬½Ó¾ä±úÓëÊý¾Ý¿âÁ¬½Ó£¬¿ÉÒÔÏÈͨ¹ýSQLSetConnectAttr()ÉèÖÃÁ¬½ÓÊôÐÔ¡£
È»ºó¾Í¿ÉÒÔ½øÐÐSQLÓï¾äµÄ²Ù×÷£¬ÏÞÓÚƪ·ù£¬Ïà¹ØµÄº¯Êý¾Í²»¾ßÌå½éÉÜÁË£¬¶ÁÕß¿ÉÒԲο¼Ïà¹ØÊé¼®¡£
²Ù×÷Íê³Éºó£¬Óû§È¡»ØÏàÓ¦µÄ½á¹û£¬¾Í¿ÉÒÔÈ¡ÏûÓëÊý¾Ý¿âµÄÁ¬½Ó¡£
×îºóÐèÒªÊÍ·ÅODBC»·¾³¡£
ODBC APIµÄÌصãÊǹ¦ÄÜÇ¿´ó·á¸»£¬ÌṩÁËÒì²½²Ù×÷£¬ÊÂÎñ´¦ÀíµÈ¸ß¼¶¹¦ÄÜ£¬µ«ÏàÓ¦µÄ±à³Ì¸´ÔÓ£¬¹¤×÷Á¿´ó¡£
2.MFC ODBCÀࣺ
MFC1.5ºóµÄ°æ±¾ÀïÒýÈë·â×°ÁËODBC¹¦ÄܵÄÀࡣͨ¹ýÕâЩÀàÌṩÓëODBCµÄ½Ó¿Ú£¬Ê¹µÃÓû§¿ÉÒÔ²»Ðë´¦ÀíODBC APIÖеķ±ÔÓ´¦Àí¾Í¿ÉÒÔ½øÐÐÊý¾Ý¿â²Ù×÷¡£Ö÷ÒªµÄMFC ODBCÀàÈçÏ¡£
CDatabaseÀà:Ò»¸öCDatabase¶ÔÏó±íʾһ¸öµ½Êý¾ÝÔ´µÄÁ¬½Ó£¬Í¨¹ýËü¿ÉÒÔ²Ù×÷Êý¾ÝÔ´¡£Ó¦ÓóÌÐò¿ÉʹÓöà¸öCDatabase¶ÔÏ󣺹¹ÔìÒ»¸ö¶ÔÏó²¢µ÷ÓÃOpenEx()³ÉÔ±º¯Êý´ò¿ªÒ»¸öÁ¬½Ó¡£½Ó׏¹ÔìCRecordSet¶ÔÏóÒÔ²Ù×÷Á¬½ÓµÄÊý¾ÝÔ´£¬²¢ÏòCDatabase¶ÔÏ󴫵ݼǼ¼¯¹¹Ôì³ÌÐòÖ¸Õë¡£Íê³ÉʹÓúóÓÃClose()³ÉÔ±º¯ÊýÏú»ÙCDatabase¶ÔÏó¡£Ò»°ãÇé¿öϲ¢²»ÐèÒªÖ±½ÓʹÓÃCDatabase¶ÔÏó£¬ÒòΪCRecordSet¶ÔÏó¿ÉÒÔʵÏÖ´ó¶àÊýµÄ¹¦ÄÜ¡£µ«ÊÇÔÚ½øÐÐÊÂÎñ´¦Àíʱ£¬CDatabase¾ÍÆ𵽹ؼü×÷Óá£ÊÂÎñ(Transaction)Ö¸µÄÊǽ«Ò»ÏµÁжÔÊý¾ÝÔ´µÄ¸üзÅÔÚÒ»Æð£¬Í¬Ê±Ìá½»»òÒ»¸öÒ²²»Ìá½»£¬ÎªµÄÊÇÈ·±£¶àÓû§¶ÔÊý¾ÝԴͬʱ²Ù×÷ʱµÄÊý¾ÝÕýÈ·ÐÔ¡£
CRecordSetÀࣺһ¸öCRecordSet¶ÔÏó´ú±íÒ»¸ö´ÓÊý¾ÝÔ´Ñ¡ÔñµÄÒ»×é¼Ç¼µÄ¼¯ºÏ-¼Ç¼¼¯¡£¼Ç¼¼¯ÓÐÁ½ÖÖÐÎʽ£ºsnapshotºÍdynaset¡£Ç°Õß±íʾÊý¾ÝµÄ¾²Ì¬ÊÓͼ£¬ºóÕß±íʾ¼Ç¼¼¯ÓëÆäËûÓû§¶ÔÊý¾Ý¿âµÄ¸üб£³Öͬ²½¡£Í¨¹ýCRecordSet¶ÔÏó£¬Óû§¿ÉÒÔ¶ÔÊý¾Ý¿âÖеļǼ½øÐи÷ÖÖ²Ù×÷¡£
CRecordViewÀࣺCRecordView¶ÔÏóÊÇÔÚ¿Õ¼äÖÐÏÔʾÊý¾Ý¿â¼Ç¼µÄÊÓͼ¡£ÕâÖÖÊÓͼÊÇÒ»ÖÖÖ±½ÓÁ¬µ½Ò»¸öCRecordSet¶ÔÏóµÄ¸ñʽÊÓͼ£¬Ëü´ÓÒ»¸ö¶Ô»°¿òÄ£°å×ÊÔ´´´½¨£¬²¢½«CRecordSet¶ÔÏóµÄ×Ö¶ÎÏÔʾÔÚ¶Ô»°¿òÄ£°åµÄ¿Ø¼þÀï¡£¶ÔÏóÀûÓÃDDXºÍRFX»úÖÆ£¬Ê¹¸ñʽÉϵĿؼþºÍ¼Ç¼¼¯µÄ×Ö¶ÎÖ®¼äÊý¾ÝÒƶ¯×Ô¶¯»¯£¬Ò²¾ÍÊÇ˵£¬Óû§ÉõÖÁ²»Òª±àдһÐдúÂë¾Í¿ÉÒÔʵÏÖ¼òµ¥µÄÊý¾Ý¿â¼Ç¼²é¿´³ÌÐò¡£
CDBExceptionÀࣺÓÉCexceptionÀàÅÉÉú£¬ÒÔÈý¸ö¼Ì³ÐµÄ³ÉÔ±±äÁ¿·´Ó³¶ÔÊý¾Ý¿â²Ù×÷ʱµÄÒì³£:
m_nRetCode£ºÒÔODBC·µ»Ø´úÂë(SQL_RETURN)µÄÐÎʽ±íÃ÷Ôì³ÉÒì³£µÄÔÒò¡£
m_strError£º×Ö·û´®£¬ÃèÊöÔì³ÉÅ׳öÒì³£µÄ´íÎóÔÒò¡£
m_strStateNativeOrigin£º×Ö·û´®£¬ÓÃÒÔÃèÊöÒÔODBC´íÎó´úÂë±íʾµÄÒì³£´íÎó¡£
MFCÊý¾Ý¿âÀà³ÉÔ±º¯Êý¶¼ÄÜÅ׳öCDBExceptionÀàÐ͵ÄÒì³££¬ËùÒÔÔÚ´úÂë¶ÔÊý¾Ý¿â½øÐвÙ×÷ºó¼à²âÒì³£ÊÇÕýÈ·×ö·¨¡£
MFC ODBCÀàÔÚʵ¼Ê¿ª·¢ÖÐÓ¦ÓÃ×î¹ã£¬ÒòΪËü¹¦Äܷḻ£¬²Ù×÷Ïà¶Ô¼ò±ã¡£
3.MFC DAO(Êý¾Ý·ÃÎʶÔÏó)±à³Ì£º
DAOÓÃÓÚºÍ΢ÈíµÄAccessÊý¾Ý¿â½Ó¿Ú¡£ÔÚÊý¾Ý¿âÓ¦ÓóÌÐòÈç¹ûÖ»ÐèÓëAccessÊý¾Ý¿â½Ó¿Úʱ£¬Ê¹ÓÃDAO±à³Ì½Ï·½±ã¡£ÆäÖ÷ÒªÀàÈçÏ¡£
CDaoWorkspace£ºCDaoWorkspace¶ÔÏó¿ÉÒÔÈÃÒ»¸öÓû§¹ÜÀí´ÓµÇ½µ½À뿪Æڼ䣬ָ¶¨µÄÃÜÂë±£»¤µÄÊý¾Ý¿â»á»°È«¹ý³Ì¡£´ó¶àÊýÇé¿öϲ»Òª¶à¸ö¹¤×÷ÇøÒ²²»Òª´´½¨Ã÷È·µÄ¹¤×÷Çø¶ÔÏó¡£ÒòΪÔÚ´ò¿ªÊý¾Ý¿âºÍ¼Ç¼¼¯¶ÔÏóʱ£¬ËüÃÇ¿ÉÒÔʹÓÃDAOȱʡ¹¤×÷Çø¡£
CDaoDatabase£º´ú±íÒ»¸öÁ¬½Ó£¬ÀàËÆÉÏÊöCDatabaseÀà¡£
CDaoRecordSet£ºÓÃÀ´Ñ¡Ôñ¼Ç¼¼¯²¢²Ù×÷£¬ÀàËÆÉÏÊöCRecordSetÀà¡£
CDaoRecordView£ºÀàËÆÉÏÊöCRecordViewÀà¡£
CDaoException£ºÀàËÆÉÏÊöCDBExceptionÀà¡£
CDaoTableDef£º±íʾ»ù±¾±í»ò¸½¼Ó±íµÄ¶¨Ò塣ÿ¸öDAOÊý¾Ý¿â¶ÔÏó°üÀ¨Ò»¸ö³ÆΪTableDefµÄÊÕ¼¯£¬°üº¬ËùÓд洢µÄDAO±í¶¨Òå¶ÔÏó¡£CDaoTableDef¶ÔÏó¿ÉÒÔÓÃÀ´¿ØÖÆ±í¶¨Òå¡£
CDaoQueryDef£ºCDaoQueryDef¶ÔÏó±íʾÁËÒ»¸ö²éѯ¶¨Òå(querydef)¡£
CDaoFieldExchange£ºÖ§³ÖÊý¾Ý¿âÀàʹÓõÄDAO×ֶν»»»(DFX)Àý³Ì¡£Ò²¿É´¦ÀíÊÂÎñ£¬ÀàËÆMFC ODBCÀà¡£
MFC DAO½öÓÃÀ´Ö§³ÖAccessÊý¾Ý¿â£¬Ó¦Ó÷¶Î§Ïà¶Ô¹Ì¶¨¡£
4.OLE DB£º
OLE DBÔÚÊý¾ÝÌṩ³ÌÐòºÍÓû§Ö®¼äÌṩÁËÁé»îµÄ×é¼þ¶ÔÏóÄ£ÐÍ(COM)½Ó¿Ú£¬ÕâÖÖÁé»îÐÔÓÐʱ»áʹµÃ²Ù×÷¸´ÔÓ»¯¡£OLE DB¿ò¼Ü¶¨ÒåÁËÓ¦ÓõÄÈý¸ö»ù±¾Àà¡£
Êý¾ÝÌṩ³ÌÐòData Provider£ºÓµÓÐ×Ô¼ºµÄÊý¾Ý²¢ÒÔ±í¸ñÐÎʽÏÔʾÊý¾ÝµÄÓ¦ÓóÌÐò¡£ÌṩOLE DBµÄÐм¯COM½Ó¿Ú£¬ÆÚÏÔʾ·¶Î§¿ÉÒÔ´Óµ¥Ò»Êý¾Ý±í¸ñµÄ¼òµ¥ÌṩÕßÖªµÀ¸ü¸´Ôӵķֲ¼Ê½Êý¾Ý¿âϵͳ¡£
ʹÓÃÕßConsumers£ºÊ¹ÓÃOLE DB½Ó¿Ú¶Ô´æ´¢ÔÚÊý¾ÝÌṩ³ÌÐòÖеÄÊý¾Ý½øÐпØÖƵÄÓ¦ÓóÌÐò¡£Óû§Ó¦ÓóÌÐò¹éΪʹÓÃÀà¡£
·þÎñÌṩ³ÌÐòService Provider£ºÊÇÊý¾ÝÌṩ³ÌÐòºÍʹÓÃÕßµÄ×éºÏ¡£·þÎñÌṩ³ÌÐòûÓÐ×Ô¼ºµÄÊý¾Ý£¬µ«Ê¹ÓÃOLE DBʹÓÃÕß½Ó¿ÚÀ´·ÃÎÊ´æ´¢ÔÚÊý¾ÝÌṩ³ÌÐòÖеÄÊý¾Ý¡£È»ºó£¬·þÎñÌṩ³ÌÐòͨ¹ý´ò¿ªÊý¾ÝÌṩ³ÌÐò½Ó¿ÚʹµÃÊý¾Ý¶ÔʹÓÃÕßÓÐЧ¡£·þÎñÌṩ³ÌÐò³£ÓÃÓÚÏòÓ¦ÓóÌÐòÌṩ¸ß²ã´Î·þÎñ£¬±ÈÈç¸ß¼¶·Ö²¼Ê½²éѯ¡£
OLE DB±à³Ìʱ£¬Óû§Ê¹ÓÃ×é¼þ¶ÔÏ󿪷¢Ó¦ÓóÌÐò¡£ÕâЩ×é¼þÓУº
ö¾ÙÆ÷£ºÓÃÓÚÁгö¿ÉÓõÄÊý¾ÝÔ´£»
Êý¾ÝÔ´£º´ú±íµ¥¶ÀµÄÊý¾ÝºÍ·þÎñÌṩ³ÌÐò£¬ÓÃÓÚ´´½¨¶Ô»°£»
¶Ô»°£ºÓÃÓÚ´´½¨ÊÂÎñºÍÃüÁ
ÊÂÎñ£ºÓÃÓÚ½«¶à¸ö²Ù×÷¹é²¢Îªµ¥Ò»ÊÂÎñ´¦Àí£»
ÃüÁÓÃÓÚÏòÊý¾ÝÔ´·¢ËÍÎı¾ÃüÁî(SQL)£¬·µ»ØÐм¯£»
´íÎó£ºÓÃÓÚ»ñµÃ´íÎóÐÅÏ¢¡£
5.ActiveXÊý¾Ý¶ÔÏó(ADO)£ºÊÇ΢ÈíÌṩµÄÃæÏò¶ÔÏóµÄ½Ó¿Ú£¬ÓëOLE DBÀàËÆ£¬µ«½Ó¿Ú¸ü¼òµ¥£¬¾ßÓиü¹ã·ºµÄÌØÕ÷Êý×éºÍ¸ü¸ß³Ì¶ÈµÄÁé»îÐÔ¡£ADO»ùÓÚCOM,Ìṩ±à³ÌÓïÑÔ¿ÉÀûÓõĶÔÏ󣬳ýÁËÃæÏòVC++£¬»¹ÌṩÃæÏòÆäËû¸÷ÖÖ¿ª·¢¹¤¾ßµÄÓ¦Óã¬ÈçVB£¬VJµÈ¡£ADOÔÚ·þÎñÆ÷Ó¦Ó÷½Ãæ·Ç³£ÓÐÓã¬ÌرðÊǶÔÓÚ¶¯Ì¬·þÎñÆ÷Ò³ÃæASP(Active Server Page)¡£
ADO¶ÔÏó½á¹¹ÀàËÆÓÚOLE DB£¬µ«²¢²»ÒÀ¿¿¶ÔÏó²ã´Î¡£´ó¶àÊýÇé¿öÏ£¬Óû§Ö»ÐèÒª´´½¨²¢Ö»Ê¹ÓÃÐèÒª´¦ÀíµÄ¶ÔÏó¡£ÏÂÃæµÄ¶ÔÏóÀà×é³ÉÁËADO½Ó¿Ú¡£
Connection£ºÓÃÓÚ±íʾÓëÊý¾Ý¿âµÄÁ¬½Ó£¬ÒÔ¼°´¦ÀíһЩÃüÁîºÍÊÂÎñ¡£
Command£ºÓÃÓÚ´¦Àí´«Ë͸øÊý¾ÝÔ´µÄÃüÁî¡£
Recordset£ºÓÃÓÚ´¦ÀíÊý¾ÝµÄ±í¸ñ¼¯£¬°üÀ¨»ñÈ¡ºÍÐÞ¸ÄÊý¾Ý¡£
Field£ºÓÃÓÚ±íʾ¼Ç¼¼¯ÖеÄÁÐÐÅÏ¢£¬°üÀ¨ÁÐÖµºÍÆäËûÐÅÏ¢¡£
Parameter£ºÓÃÓÚ¶Ô´«Ë͸øÊý¾ÝÔ´µÄÃüÁîÖ®¼äÀ´»Ø´«ËÍÊý¾Ý¡£
Property£ºÓÃÓë²Ù×÷ÔÚADOÖÐʹÓõÄÆäËû¶ÔÏóµÄÏêϸÊôÐÔ¡£
Error£ºÓÃÓÚ»ñµÃ¿ÉÄÜ·¢ÉúµÄ´íÎóµÄÏêϸÐÅÏ¢¡£
ÔÚVC++ʹÓÃADOÐèÒª½øÐÐCOM²Ù×÷£¬Ïêϸ·½·¨Ôڴ˾Ͳ»×¸ÊöÁË¡£
ÔÚµ±½ñÁ÷Ðеķֲ¼Ê½¿ª·¢»·¾³Ï£¬VC++6.0ÔÚÊý¾Ý¿â¿ª·¢·½ÃæÓнÏÇ¿µÄÓÅÊÆ£¬Ñ§»áÔÚ²»Í¬µÄ³¡ºÏÑ¡Óò»Í¬µÄ¼¼Êõ£¬¶Ô¿ª·¢ÈËÔ±À´ËµÊDZØÒªµÄ¼¼Êõ¡£