熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

網絡游戲服務器端編程:在VC中使用ADO[2]

2013-11-13 12:35:14  來源: SQL語言 
    ——此文章摘自《網絡游戲服務器端編程》定價 特價 詳細>>http://tracklinktechcn/?m_id=dangdang&a_id=A&l=&l_type= width= height= border= nosave>

    //使用__RecordsetPtr執行SQL語句  
    __RecordsetPtr MySet;   
    MySetCreateInstance(__uuidof(Recordset));
    MySet-〉Open(
                    SELECT * FROM some__table  
                    MyDbGetInterfacePtr()
                    adOpenDynamic
                    adLockOptimisticadCmdText);

    現在已經有了一個數據連接和一個記錄集接下來就可以使用數據了從以下代碼可以看到使用ADO的__RecordsetPtr接口就不需要像DAO那樣頻繁地使用大而復雜的數據結構VARIANT並強制轉換各種數據類型了這也是ADO的優點之一假定程序有一個名稱為m__List的ListBox控件下面一段代碼用__RecordsetPtr接口獲取記錄集數據並填充這個ListBox控件
    __variant__t Holder
    try
    {
        while(!MySet-〉adoEOF)   
        {
            Holder = MySet-〉GetCollect(FIELD__);
            if(Holdervt!=VT__NULL)  
                 m__ListAddString((char)__bstr__t(Holder));
           MySet-〉MoveNext();
        }
    }   
    catch(__com__error e)   
    {
        CString Error = e-〉ErrorMessage();  
        AfxMessageBox(e-〉ErrorMessage());  
    }
    catch()   { MessageBox(ADO發生錯誤!);} 

    必須始終在代碼中用try和catch來捕獲ADO錯誤否則ADO錯誤會使應用程序崩潰當ADO發生運行錯誤時(如數據庫不存在)OLE DB數據提供者將自動創建一個__com__error對象並將有關錯誤信息填充到這個對象的成員變量

    ()類型轉換

    由於COM對象是跨平台的它使用了一種通用的方法來處理各種類型的數據因此CString類和COM對象是不兼容的需要一組API來轉換COM對象和 C++類型的數據__vatiant__t和__bstr__t就是這樣兩種對象它們提供了通用的方法轉換COM對象和C++類型的數據

right>[http://developcsaicn/dbms/htm>]  []  


From:http://tw.wingwit.com/Article/program/SQL/201311/16186.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.