又黄又www的网站_青青草.com_在线亚洲美日韩_九九九国产视频_√天堂8资源中文在线_一区二区三区免费网站_久久久久国产一区二区三区_人妻激情偷乱视频一区二区三区_一本到在线视频

C技巧:VC訪問數(shù)據(jù)庫技術(shù)的方法實例

發(fā)布時間:2011-08-29 共1頁

  最常用的數(shù)據(jù)庫訪問技術(shù)有如下幾種
  1.ODBC——開放數(shù)據(jù)庫互聯(lián)
  ODBC為使用不同的關(guān)系數(shù)據(jù)庫提供了一個統(tǒng)一的程序設(shè)計接口。在安裝不同的數(shù)據(jù)庫后,需要創(chuàng)建ODBC數(shù)據(jù)源,
  2.DAO——數(shù)據(jù)訪問對象
  3.RDO——遠(yuǎn)程數(shù)據(jù)對象
  4.OLE DB——對象連接與嵌入數(shù)據(jù)庫
  5.ADO——ActiveX數(shù)據(jù)對象
  這里我說明我使用的兩種方法:ODBC和ADO。
  1.ODBC
  在安裝數(shù)據(jù)庫首先要創(chuàng)建ODBC數(shù)據(jù)源,使用CDatabase和CRecordset兩個MFC的類與數(shù)據(jù)庫建立連接,訪問數(shù)據(jù)庫。
  1.1條件
  包含頭文件:#include <afxdb.h>
  聲明成員變量:CDatabase m_dbPostGre;
  1.2連接數(shù)據(jù)庫
  int nRetVal;
  nRetVal = m_dbPostGre.OpenEx( _T( "DSN=PostgreSQL30W;UID=PostGre;PWD=PostGre" ),
  CDatabase::openReadOnly | CDatabase::noOdbcDialog );
  if ( nRetVal )
  {
  AfxMessageBox( _T( "連接數(shù)據(jù)庫成功!" ) );
  }
  1.3訪問數(shù)據(jù)
  CRecordset recordset( &m_dbPostGre );
  CString strSQL = _T( "select * from product" );
  recordset.Open( CRecordset::forwardOnly, strSQL, CRecordset::readOnly );
  CDBVariant var;
  while ( !recordset.IsEOF() )
  {
  TAG_PRODUCTINFO tagProductInfo;
  // ID
  recordset.GetFieldValue( _T( "ID" ), var );
  tagProductInfo.nProductID = var.m_iVal;
  // Name
  recordset.GetFieldValue( _T( "Name" ), tagProductInfo.strProductName );
  m_vecProductInfo.push_back( tagProductInfo );
  recordset.MoveNext();
  }
  recordset.Close();
  2.ADO技術(shù)
  ActiveX Data Object, ActiveX數(shù)據(jù)對象。
  ADO建立在OLE DB之上,采用ADO技術(shù)訪問數(shù)據(jù)庫的話,實際的調(diào)用過程是:ADO客戶程序通過ADO再訪問OLE DB提供的程序,這樣訪問速度就要慢一些。
  如果某個關(guān)系型數(shù)據(jù)庫沒有OLE DB的提供程序,那么可以利用ODBC的OLE DB提供程序去訪問ODBC,然后利用ODBC再去訪問支持ODBC的數(shù)據(jù)庫。
  2.1條件
  l 頭文件和動態(tài)庫的加載
  #include <comdef.h>
  #include <atlbase.h>
  #pragma warning(disable:4146)
  #import "C:\Program Files\Common Files\System\ado\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")
  #pragma warning(default:4146)
  using namespace ADODB;
  l COM組件的加載
  if ( CoInitialize( NULL ) != 0 )
  {
  AfxMessageBox( _T( "初始化Com庫失敗!" ) );
  return FALSE;
  }
  l 變量的聲明
  _ConnectionPtr m_pConnection;
  2.2連接數(shù)據(jù)庫
  m_pConnection.CreateInstance( __uuidof(Connection) );
  m_pConnection->ConnectionString = _T( "DSN=PostgreSQL30W;UID=PostGre;PWD=PostGre" );
  HRESULT hr = m_pConnection->Open( _T(""), _T(""), _T(""), adConnectUnspecified );
  if ( SUCCEEDED( hr ) )
  {
  AfxMessageBox( _T( "連接數(shù)據(jù)庫成功!" ) );
  }
  2.3訪問數(shù)據(jù)庫
  _CommandPtr pCommand(__uuidof(Command));
  _RecordsetPtr pRecordset( __uuidof(Recordset) );
  CString strSQL = _T( "select * from \"pg_getProductInfo\"()" );
  try
  {
  pCommand->ActiveConnection=m_pConnection;
  pCommand->CommandText=_bstr_t(strSQL);
  pRecordset=pCommand->Execute(NULL,NULL,adCmdText);
  }
  catch (_com_error & e)
  {
  AfxMessageBox(e.Description());
  return ;
  }
  _variant_t var;
  int nRecordNum = pRecordset->GetRecordCount();
  while( !pRecordset->GetadoEOF() )
  {
  TAG_PRODUCTINFO tagProductInfo;
  // ID
  var = pRecordset->GetCollect( _T( "ID" ) );
  tagProductInfo.nProductID= var.intVal;
  // Name
  var = pRecordset->GetCollect( _T( "Name" ) );
  tagProductInfo.strProductName = (char*)_bstr_t(var);
  m_vecProductInfo.push_back( tagProductInfo );
  pRecordset->MoveNext();
  }
  pRecordset->Close();
  pRecordset.Release();
  總結(jié):
  現(xiàn)在DAO和RDO這兩種技術(shù)已經(jīng)很少使用了,OLE DB和ADO這兩種是比較新的技術(shù),OLE DB的功能非常強(qiáng),但是他對自動化的支持不是很好。為了更好地支持自動化,微軟在OLE DB的基礎(chǔ)上開發(fā)了ADO,便于像VBScript這樣的腳本語言,以及VB,Delphi這樣的語言都可以很方便的使用ADO去訪問數(shù)據(jù)庫。
  上面兩種技術(shù)對于不同的關(guān)系數(shù)據(jù)庫,使用方法都是一樣的,不同的就是數(shù)據(jù)源,名稱,密碼以及SQL語句的調(diào)用方式。
  舉個例子:以調(diào)用存儲過程為例
  SQLServer2000的調(diào)用方法是”{CALL sp_addMember( ’%s’, ’%s’, %d )}”,如果不帶參數(shù),則沒有小括號,如果帶參數(shù),字符串的參數(shù)需要加單引號。
  PostGre的調(diào)用方法是” _T( "select \"pg_modifyOneProduct\"( %d, ’%s’ )"”,“\“是轉(zhuǎn)義字符,因為在PostGre定義存儲過程時,如果存儲過程名稱加上了雙引號,那么在調(diào)用的時候,就一定要加上雙引號,SQL中應(yīng)該就是這么規(guī)定的。還有一個存儲過程如果是想返回表中所有記錄,那么在調(diào)用存儲過程的時候就要使用Selece * from 存儲過程名。

百分百考試網(wǎng) 考試寶典

立即免費試用
久久成人免费网| 国产精品日韩欧美一区二区三区 | 国产精品一区二区久激情瑜伽| 啊啊啊一区二区| 菠萝菠萝蜜在线观看| 日韩精品极品在线观看| 在线观看黄网站免费继续| 久久精品视频免费观看| japanese在线视频| 日本精品600av| 欧美亚洲日本一区| 日本免费色视频| 免费在线观看视频| 一区二区三区四区不卡视频| 久操免费在线视频| 最新亚洲激情| 18禁免费无码无遮挡不卡网站| 欧美一级在线| 成人免费视频网站| 在线你懂的视频| 91久久国产综合久久91精品网站| 黄色网址在线免费| 久久久久久久有限公司| 免费人成黄页在线观看忧物| 色视频成人在线观看免| 中文字幕精品无码一区二区| 精品日韩在线| 免费日韩av电影| 97香蕉久久| 性做久久久久久免费观看| 亚洲自拍偷拍一区二区| 91亚洲国产| 久久综合色视频| 91精品国产乱码久久久竹菊| 久热精品在线视频| 天堂8在线视频| 久久久国产精品麻豆| 亚洲va在线va天堂va偷拍| 日韩中文字幕无砖| 日韩福利视频| xx欧美xxx| 精品国产乱码久久久久| 99精品美女视频在线观看热舞| 中文字幕一区二区三区四区五区 | 日本一区二区不卡| 亚洲a成人v| 这里只有久久精品| 成人av电影在线观看| 天天躁日日躁aaaa视频| 极品中文字幕一区| 美女网站色免费| 欧美日韩中文一区二区| 精品嫩模一区二区三区| 四虎成人精品永久免费av九九| 日韩一级片一区二区| 亚洲+小说+欧美+激情+另类| 波多野结衣 作品| 欧美激情综合五月色丁香 | 久久av秘一区二区三区| jizz亚洲女人高潮大叫| 欧美视频在线免费播放| 色噜噜狠狠成人网p站| 日韩欧美国产精品一区二区三区| 亚洲va欧美va在线观看| 99精品视频免费全部在线| 中文字幕第四页| 日韩av在线播放资源| 在线观看网站免费入口在线观看国内| 夜夜添无码一区二区三区| 国产精品亚洲专一区二区三区 | 欧美成人sm免费视频| av网站大全在线| 久久久久免费看黄a片app| 国产精品sss在线观看av| 日本日本19xxxⅹhd乱影响| 亚洲图片久久| 5566av亚洲| 免费视频观看成人| 久久这里只有精品23| 一区二区三区在线观看免费| 国产一区二区在线免费播放| 久久99精品久久只有精品| 免费观看国产视频| 美女999久久久精品视频| 性xxxxfjsxxxxx欧美| 亚洲欧美一区二区原创| 久久久久久久高潮| 风流老熟女一区二区三区| 日韩美女在线观看一区| 亚洲精一区二区三区| 综合图区欧美| 国产伦理一区二区三区| 欧洲激情视频| 蜜桃色永久入口| 性高潮久久久久久久久| 伊人色综合久久天天人手人婷| 麻豆影视国产在线观看| 在线免费观看a级片| 综合欧美国产视频二区| 图片区亚洲欧美小说区| 日韩欧美一区二区三区视频| 美女视频久久| 精品福利在线看| 国产精品久久久久一区二区国产 | 久久精品一区二区三区不卡免费视频| 日韩欧美大片| av片免费观看| 亚洲电影av在线| 国产精品一区二区三区www| 丰满圆润老女人hd| 欧美区一区二区三区| 在线看三级电影| 国产美女www| 国产精品久久久久久久久久直播 | 国产日韩欧美麻豆| caopeng在线| 国产成人精品片| 国产福利久久精品| 亚洲最大色网站| 欧美一性一交| 黄色片免费大全| 99久久免费看精品国产一区| 国产做受高潮69| 久久久国产综合精品女国产盗摄| 四虎在线免费观看| 亚洲一区二区三区四区精品| 国产一区二区三区直播精品电影 | 欧美成人午夜免费视在线看片| 在线观看免费国产成人软件| 在线看无码的免费网站| 日本福利一区二区| 日韩午夜黄色| 91超碰在线| √天堂资源中文www| 无码人妻一区二区三区在线| 欧美一级片久久久久久久| 国产精品美女久久久久久久网站| 少妇精品导航| 国产黄在线看| 国产福利视频导航| 无限资源日本好片| 欧美激情a在线| 亚洲国产综合色| 你懂的国产精品| 久操视频在线| 中文字幕少妇| 国产免费无码一区二区视频| 国产又大又长又粗又黄| 性欧美xxxx| 欧美高清视频不卡网| 国产激情一区二区三区| 综合色一区二区| 九九九伊在人线综合| 久久综合亚洲色hezyo国产| 日韩动漫在线观看| 国产精品私房写真福利视频| 成人在线视频国产| 天天干天天操av| 国产超碰在线播放| 日本sm极度另类视频| 亚洲大片一区二区三区| 伊人75在线| 国产日韩精品一区二区| 亚洲电影一区二区三区| 欧美日韩色图| 国产一级大片| 国产97在线亚洲| 午夜久久tv| 96sao在线精品免费视频| 手机看片福利在线观看| 日本成人一级片| 美日韩丰满少妇在线观看| 日韩精品在线观看免费| 久久人人爽人人人人片| 扒开jk护士狂揉免费| avove在线播放| 999福利视频| 国产中文字幕视频在线观看| 一级做a爰片久久| 国产精品一区二区三区成人| 日本午夜在线亚洲.国产| 国产欧美日韩高清| 亚洲高清一二三区| 欧美日韩国产经典色站一区二区三区| 日韩欧美在线观看| 在线成人直播| 日韩伦理在线一区| 顶级网黄在线播放| 蜜桃视频网站在线| 国模大尺度视频一区二区| 在线不卡亚洲| 在线亚洲自拍| 婷婷国产精品| 91精品国产自产精品男人的天堂| 国产亚洲一区| 另类小说综合欧美亚洲| youjizz久久| 色先锋久久影院av| 日韩片欧美片| 免费日韩av|