日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

ADO 在C/C++中的基本使用

發布時間:2023/12/18 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ADO 在C/C++中的基本使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、什么是ADO

Microsoft ActiveX 數據對象(ADO)允許客戶端應用程序通過 OLE DB 提供程序訪問和處理來自各種源的數據。 它的主要優點是易于使用、高速、低內存開銷和較小的磁盤空間。 ADO 支持用于生成客戶端/服務器和基于 Web 的應用程序的關鍵功能。

2、ADO基礎知識

ADO為開發人員提供了一個功能強大的邏輯對象模型,可通過OLE DB 系統接口一編程的方式訪問、編輯和更新各種數據源中的數據。ADO最常見的用法是查詢關系數據庫中的一個或多個表,檢索并顯示應用程序中的結果,并可能讓用戶進行更改并保存對數據所做的更改。
大多數使用ADO的應用程序都主要涉及四個操作:獲取數據、檢查數據、編輯數據、更新數據。

3、如何在C/C++中引用ADO

最新版本的ADO打包為msado15.dll。默認情況下,將在installDir中安裝這些苦,其中installDir中安裝這些苦,其中installDirinstallDir表示計算機上安裝了ADO的庫,必須在應用程序項目中顯示的引用它們。
若要在 Visual C++ 應用程序中使用最新版本的 ADO,請#import使用以下指令:

#import "msado15.dll" no_namespace rename("EOF", "EndOfFile") //重命名EOF以免與其他命名空間沖突 //或者#import"C:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF") //重命名EOF以免與其他命名空間沖突 /*剛剛引入的時候,可能會報錯。無法打開源文件 xxx\debug\masdo15.tls直接生成,會自動生成相應的文件 */

ADO的基本使用

int main() {//COM組件必須先初始化HRESULT hr = CoInitialize(NULL);assert(SUCCEEDED(hr));//ADO的三個基本對象_ConnectionPtr pConn; //連接對象_CommandPtr pCmd;//命令對象_RecordsetPtr pRec;//記錄集對象//實例化對象pConn.CreateInstance(__uuidof(Connection));pCmd.CreateInstance(__uuidof(Command));pRec.CreateInstance(__uuidof(Recordset));//使用連接對象,連接到數據 //獲取配置文件路徑CString strPath;//得到當前模塊的路徑GetModuleFileName(NULL, strPath.GetBuffer(MAX_PATH), MAX_PATH);strPath.ReleaseBuffer();strPath = strPath.Left(strPath.ReverseFind('\\'));strPath.Format(TEXT("File Name=%s\\sql.udl"), strPath);//xx.udl(Universal Data Link)是通用數據連接文件,使用通用數據鏈接 (UDL) 文件來保存連接字符串。sql.udl保存了連接數據庫的信息,自行百度 xx.udl的使用try{pConn->ConnectionString = _bstr_t(strPath);//與下面這條語句等效。修改為自己需要操作的數據的信息。Data Source=192.168.1.4可指定端口//Data Source=192.168.1.4:1433//pConn->ConnectionString ="Provider=SQLOLEDB.1;Password=xxxx;Persist Security Info=True;User ID=sa;Initial Catalog=QPAccountsDB;Data Source=192.168.1.4";//建立連接。pConn->Open("", "", "", adConnectUnspecified);CString strSql = "update AccountsInfo set NickName='測試10011' where UserID = 1";_variant_t RefreshNum; //執行SQL語句,若果沒有返回值,可用這個,否則需要用到_RecordsetPtr pRecpConn->Execute(_bstr_t(strSql), &RefreshNum, adCmdText);printf("影響行數: %d\n", RefreshNum.lVal);}catch (_com_error e){printf("連接數據庫錯誤:%s\n", (char *)(e.Description()));} //執行select 或 存儲過程 操作 try{//判斷其連接狀態if (pConn != NULL || pConn->GetState() != adStateClosed){CString strSql = "select top 100 * from AccountsInfo";pRec->Open(_bstr_t(strSql), pConn.GetInterfacePtr(), adOpenKeyset, adLockOptimistic, adCmdText);//下面這兩條語句是執行存儲過程GSP_CU_QueryUserInfo(10)//GSP_CU_QueryUserInfo 是存儲過程名稱,10是存儲過程的需要的參數//CString strSql = "GSP_CU_QueryUserInfo(10)";//pRec->Open(_bstr_t(strSql), pConn.GetInterfacePtr(), adOpenKeyset, adLockOptimistic, adCmdStoredProc);//執行帶參數的SQL存儲過程//創建參數對象//_ParameterPtr Parameter = pCmd->CreateParameter("@UserID", adInteger, adParamInput, sizeof(WORD), 11);//pCmd->Parameters->Append(Parameter);//把新建的參數對象添加到命令對象//pCmd->ActiveConnection = pConn; //這是命令對象關聯的連接對象//pCmd->CommandText = "GSP_CU_QueryUserInfo";//存儲過程名字//pCmd->CommandTimeout = 10;//超市時間//pCmd->CommandType = adCmdStoredProc;//命令類型是存儲過程//pRec->Open((IDispatch *)pCmd, vtMissing, adOpenKeyset, adLockOptimistic, adCmdStoredProc);}else{printf("連接數據庫錯誤!\n");}}catch (_com_error e){printf("連接數據庫錯誤:%s\n", (char *)(e.Description()));} //讀取記錄集里面的數據pRec->MoveFirst(); //移動到記錄集的開始位置while (!pRec->EndOfFile) //判斷是否到達尾部{//不管讀取什么類型的數據都可用_variant_t val = GetCollect("Name");//再轉換成相應的數據類型即可_variant_t UserID = pRec->GetCollect("UserID"); //數值_variant_t str = pRec->GetCollect("NickName");//字符串_variant_t date = pRec->GetCollect("LastLogonDate");//時間格式printf("UserID:%03d Name:%s date:\n", UserID.lVal,(char *)_bstr_t(str),(char *)_bstr_t(date));pRec->MoveNext(); //移動到下一條,否則會造成死循環}//釋放掉對象pConn.Release();pCmd.Release();pRec.Release();return 0; }

總結

以上是生活随笔為你收集整理的ADO 在C/C++中的基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。