• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            面對現實,超越自己
            逆水行舟,不進則退
            posts - 269,comments - 32,trackbacks - 0
            1、安裝mysql-5.0.22-win32mysql-connector-odbc-5.1.12-win32.msi
                然后:開始菜單->設置->控制面板->管理工具->數據源(ODBC)->系統DSN->添加->選擇MySQL ODBC 5.1 Driver

            2、首先導入ADO類型庫,您的環境中msado15.dll不一定在這個目錄下,請按實際情況修改。或者把msado15.dll這個文件拷貝到你的工程目錄下,直接#import "msado15.dll" \ no_namespace \rename ("EOF", "adoEOF")包含進來。
            在stdafx.h加入如下代碼:
            #include <afxdb.h>        // MFC Automation classes
            #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")

            3、代碼示例:

            .h文件:
            /************************************************************************
            *Copyright:
            *FileName:ADOConn.h
            *
            *Author:wanghaiguang
            *Date:2013-03-07
            *Description:ADO Operate MySql DataBase
            ***********************************************************************
            */

            #pragma once

            class CADOConn
            {
            public:
                CADOConn(void);
                ~CADOConn(void);

            public:
                //添加一個指向Connection對象的指針:
                _ConnectionPtr m_pConnection;
                //添加一個指向Recordset對象的指針:
                _RecordsetPtr m_pRecordset;
                // 定義方法
            public:
                // 初始化—連接數據庫
                void OnInitADOConn();
                // 執行查詢
                _RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
                // 執行SQL語句,Insert Update _variant_t
                BOOL ExecuteSQL(_bstr_t bstrSQL);
                void ExitConnect();
            };

            .cpp文件:
            #include "StdAfx.h"
            #include "ADOConn.h"

            CADOConn::CADOConn(void)
            {
            }

            CADOConn::~CADOConn(void)
            {
            }

            /************************************************************************
            *Function   : OnInitADOConn
            *Description: Init DataBase Connect
            *param      : bconString[in] ()
            *return     : void
            ***********************************************************************
            */
            void  CADOConn::OnInitADOConn()
            {
                // 初始化OLE/COM庫環境 
                ::CoInitialize(NULL);
                HRESULT hr;
                  
                try
                {
                     // 創建Connection對象,可以通過配置文件獲取連接信息
                     hr = m_pConnection.CreateInstance("ADODB.Connection");
                     if(SUCCEEDED(hr))
                     {
                         m_pConnection->ConnectionTimeout=600;//設置連接超時時間
                         m_pConnection->CommandTimeout=120;//設置執行命令超時時間
                    
                         m_pConnection->Open("DSN=MySqlTest;Server= localhost;Database=school","root","sa",adModeUnknown);
                     }
                } 
                // 捕捉異常
                catch(_com_error e)
                {
                    // 顯示錯誤信息
                    AfxMessageBox(e.Description());
                }
            }

            /************************************************************************
            *Function   : GetRecordSet
            *Description: Select Data
            *param      : bstrSQL[in] SQL
            *return     : _RecordsetPtr
            ***********************************************************************
            */
            _RecordsetPtr&  CADOConn::GetRecordSet(_bstr_t bstrSQL)
            {
                try
                {
                    // 連接數據庫,如果Connection對象為空,則重新連接數據庫
                    if(m_pConnection==NULL)
                        OnInitADOConn();
                    // 創建記錄集對象
                    m_pRecordset.CreateInstance(__uuidof(Recordset));
                    // 取得表中的記錄
                    m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                }
                // 捕捉異常
                catch(_com_error e)
                {
                    // 顯示錯誤信息
                    AfxMessageBox(e.Description());
                }
                // 返回記錄集
                return m_pRecordset;
            }

            /************************************************************************
            *Function   : ExecuteSQL
            *Description: Exec SQL For Insert Update _variant_t
            *param      : bstrSQL[in] SQL
            *return     : BOOL
            ***********************************************************************
            */
            BOOL CADOConn::ExecuteSQL(_bstr_t bstrSQL)
            {
                // _variant_t RecordsAffected;
                try
                {
                    // 是否已經連接數據庫
                    if(m_pConnection == NULL)
                            OnInitADOConn();
                    // Connection對象的Execute方法:(_bstr_t CommandText, 
                    
            // VARIANT * RecordsAffected, long Options ) 
                    
            // 其中CommandText是命令字串,通常是SQL命令。
                    
            // 參數RecordsAffected是操作完成后所影響的行數, 
                    
            // 參數Options表示CommandText的類型:adCmdText-文本命令;adCmdTable-表名
                    
            // adCmdProc-存儲過程;adCmdUnknown-未知
                    m_pConnection->Execute(bstrSQL,NULL,adCmdText);
                    return true;
                }
                catch(_com_error e)
                {
                    AfxMessageBox(e.Description());
                    return false;
                }
            }

            /************************************************************************
            *Function   : ExitConnect
            *Description: Exit Connect DataBase
            *param      : 
            *return     : void
            ***********************************************************************
            */
            void CADOConn::ExitConnect()
            {
                // 關閉記錄集和連接
                if (m_pRecordset != NULL)
                {
                    m_pRecordset->Close();
                    //m_pRecordset->Release();
                }
                m_pConnection->Close();
                //m_pConnection->Release();
                
            // 釋放環境
                ::CoUninitialize();
            }

            其他連接數據庫:

            BOOL ConnectMySqlFun1()
            {
                CoInitialize(NULL); //初始化Com組件
                conPtr.CreateInstance(__uuidof(Connection)); //Connection用于與數據庫服務器的鏈接另一種方式
                /******************連接數據庫********************/
                try
                {
                    // MySqlTest為數據源名 localhost表示本地 root表示用戶名 sa表示密碼
                    conPtr->Open("DSN=MySqlTest;server=localhost;database=school;","root","sa",adModeUnknown);///連接MySql數據庫(測試成功)
                }
                catch(_com_error e) //捕捉異常
                {
                    printf("Connect Error : %s", e.Description());
                    return FALSE;
                }

                return TRUE;
            }

            BOOL ConnectMySqlFun2()
            {
                CoInitialize(NULL); //初始化Com組件
                try
                {
                    //創建連接對象實例
                    conPtr.CreateInstance("ADODB.Connection");
                    //設置連接字符串
                    
            //mdb------------------------------------------------
                    CString strConnect="DSN=MySqlTest";
                    //使用Open方法連接數據庫
                    conPtr->Open((_bstr_t)strConnect,"root","sa",adModeUnknown);
                }
                catch(_com_error e)
                {
                    printf("Connect Error : %s", e.Description());
                    return FALSE;
                }
                return TRUE;
            }

            操作MySql數據庫:
                CADOConn m_ADO;
                m_ADO.OnInitADOConn();
                    
                //設置SELECT語句
                _bstr_t vSQL, vInserSQL;
                vSQL = "select name from teacher";
                //設置INSERT語句
                vInserSQL = "insert into teacher values(27, 'hai', '哈爾濱六中', '1998-05-05')";
                ///執行INSERT語句
                if (m_ADO.ExecuteSQL(vInserSQL))
                {
                    printf("Insert Data Successful!!!");
                }

                //執行SELETE語句
                _RecordsetPtr m_pRecordset;
                m_pRecordset = m_ADO.GetRecordSet(vSQL);

                CString name0;
                //返回各列的值
                while (!m_pRecordset->adoEOF)
                {
                    name0 = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("name");
                    //CString name=(CString)recordPtr->GetCollect(_variant_t("name")).bstrVal;
                    
            //int no=recordPtr->GetCollect(_variant_t("stuno")).intVal;
                    printf("name : %s\n", name0);
                    m_pRecordset->MoveNext();
                }
                //斷開與數據庫的連接
                m_ADO.ExitConnect();

            參考鏈接:http://www.shnenglu.com/current/archive/2009/07/24/91069.html
            posted on 2013-03-07 15:30 王海光 閱讀(4916) 評論(0)  編輯 收藏 引用 所屬分類: DataBase
            成人久久久观看免费毛片| 久久精品人人槡人妻人人玩AV | AAA级久久久精品无码片| 99国产精品久久| 久久久久久午夜成人影院| 国产精品美女久久久久av爽| 久久夜色精品国产亚洲| 欧美牲交A欧牲交aⅴ久久 | 中文国产成人精品久久不卡| 久久久久无码精品国产| 午夜天堂精品久久久久| 久久青青草原亚洲av无码app| 亚洲AV日韩精品久久久久久| 欧美一区二区久久精品| 亚洲国产精品久久久天堂 | 国产毛片久久久久久国产毛片 | 情人伊人久久综合亚洲| 久久久99精品成人片中文字幕| 久久久久人妻一区精品果冻| 久久只有这里有精品4| 伊人色综合九久久天天蜜桃| 亚洲精品无码久久千人斩| 国产精品青草久久久久福利99| 韩国三级中文字幕hd久久精品 | 亚洲国产精品一区二区三区久久| 国内精品久久久久久不卡影院| 思思久久精品在热线热| 欧美激情精品久久久久| 一本一道久久综合狠狠老| 久久99国产精品久久久| 久久久久人妻一区精品色 | 国产精久久一区二区三区| 欧美大香线蕉线伊人久久| 热久久最新网站获取| 久久精品夜色噜噜亚洲A∨| 精品人妻久久久久久888| 久久这里都是精品| 久久综合视频网站| 久久久艹| 久久国产欧美日韩精品免费| 久久99亚洲综合精品首页|