c++連接數據庫代碼


 萬事開頭難,任何一種新技術對於初學者來說最重要的還是“入門”,掌握其要點。讓我們來看看ADO數據庫開發的基本流程吧!
 
  (1)初始化COM庫,引入ADO庫定義文件
  (2)用Connection對象連接數據庫
  (3)利用建立好的連接,通過Connection、Command對象執行SQL命令,或利用Recordset對象取得結果記錄集進行查詢、處理。
  (4)使用完畢后關閉連接釋放對象。
 
  准備工作:
  為了大家都能測試本文提供的例子,我們采用Access數據庫,您也可以直接在我們提供的示例代碼中找到這個test.mdb。
  下面我們將詳細介紹上述步驟並給出相關代碼......

我也是剛開始學習c++連接數據庫,一點一點的來吧,貼上第一個程序的源碼,僅供參考。


//c++ ADO連接DB2數據庫

#include "stdafx.h"
#include <iostream>
#include <iomanip>
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
using namespace std;

int main()
{
     //初始化OLE/COM庫環境
     ::CoInitialize(NULL);
     try
     {
         _ConnectionPtr pConn("ADODB.Connection");
         _RecordsetPtr m_pRecordset("ADODB.Recordset");
     //連接字符串,此處為DB2的連接字符串,其它數據庫的百度一下就知道
     _bstr_t strConnect="Provider=IBMDADB2;Database=RIDA;Hostname=127.0.0.1;

     Protocol=TCPIP;Port=50000; Uid=administrator;Pwd=123456789;";
     //步驟1--打開連接
     pConn->Open(strConnect,"","",adModeUnknown);
     //步驟2--創建命令
     //步驟3--執行命令
     m_pRecordset=pConn->Execute("SELECT * FROM ADMINISTRATOR.USERS",NULL,adCmdText);
     //步驟4--操作數據

    //操作數據可以選擇其他的刪除、修給、插入等這里只是讀出數據庫中表中的數據
    _variant_t id,name;
    cout<<"編號       姓名 ";
    cout<<"\n----------\n";
    while (!m_pRecordset->EndOfFile)
    {
        id = m_pRecordset->GetCollect(_variant_t((long)0));

        name = m_pRecordset->GetCollect(_variant_t((long)1));

         //給字段編號或者是字段名

         //id = m_pRecordset->GetCollect("USERS_ID");

         //name = m_pRecordset->GetCollect("USERS_NAME");

        
        if (id.vt != VT_NULL && name.vt != VT_NULL)
        {
              cout.setf(ios::left);
              cout<<setw(14)<<(char*)(_bstr_t)id;
              cout<<setw(14) <<(char*)(_bstr_t)name;
              cout.unsetf(ios::left);
              cout<<endl;
         }
         //移到下一條記錄
         m_pRecordset->MoveNext();
    }
    // 關閉記錄集
    m_pRecordset->Close();
 }

 // 捕捉異常
 catch(_com_error e)

{
      // 顯示錯誤信息
      cerr<<"\nERROR:"<<(char*)e.Description();
 }
 ::CoUninitialize();
 return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM