?? adoconn.cpp
字號:
// ADOConn.cpp: implementation of the ADOConn class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ADOConn.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
ADOConn::ADOConn()
{
}
ADOConn::~ADOConn()
{
}
// 初始化—連接數(shù)據(jù)庫
void ADOConn::OnInitADOConn()
{
// 初始化OLE/COM庫環(huán)境
::CoInitialize(NULL);
try
{
// 創(chuàng)建Connection對象
m_pConnection.CreateInstance("ADODB.Connection");
// 設(shè)置連接字符串,必須是BSTR型或者_(dá)bstr_t類型
_bstr_t strConnect = "Provider=SQLOLEDB; Server=ntserver;Database=Assets; uid=sa; pwd=sa;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 捕捉異常
catch(_com_error e)
{
// 顯示錯(cuò)誤信息
AfxMessageBox(e.Description());
}
}
// 執(zhí)行查詢
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
// 連接數(shù)據(jù)庫,如果Connection對象為空,則重新連接數(shù)據(jù)庫
if(m_pConnection==NULL)
OnInitADOConn();
// 創(chuàng)建記錄集對象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的記錄
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
// 捕捉異常
catch(_com_error e)
{
// 顯示錯(cuò)誤信息
AfxMessageBox(e.Description());
}
// 返回記錄集
return m_pRecordset;
}
// 執(zhí)行SQL語句,Insert Update _variant_t
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
// _variant_t RecordsAffected;
try
{
// 是否已經(jīng)連接數(shù)據(jù)庫
if(m_pConnection == NULL)
OnInitADOConn();
// Connection對象的Execute方法:(_bstr_t CommandText,
// VARIANT * RecordsAffected, long Options )
// 其中CommandText是命令字串,通常是SQL命令。
// 參數(shù)RecordsAffected是操作完成后所影響的行數(shù),
// 參數(shù)Options表示CommandText的類型:adCmdText-文本命令;adCmdTable-表名
// adCmdProc-存儲(chǔ)過程;adCmdUnknown-未知
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}
void ADOConn::ExitConnect()
{
// 關(guān)閉記錄集和連接
if (m_pRecordset != NULL)
m_pRecordset->Close();
m_pConnection->Close();
// 釋放環(huán)境
::CoUninitialize();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -