vs2008创建mysql数据库_求教VS2008 C++连接MySQL数据库
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
源文件:
#pragma once
#ifndef __ADOConn_cpp__
#define __AODCOnn_cpp__
#include "ADOConn.h"
#include
using namespace std;
ADOConn::ADOConn()
{
}
ADOConn::~ADOConn()
{
}
// 初始化—連接數(shù)據(jù)庫
void ADOConn::createLine()
{
// 初始化OLE/COM庫環(huán)境
::CoInitialize(NULL);
try
{
// 創(chuàng)建Connection對象
m_pConnection.CreateInstance("ADODB.Connection");
// 設(shè)置連接字符串,必須是BSTR型或者_bstr_t類型
_bstr_t strConnect = "Provider=SQL Server Native Client 11.0; Server=127.0.0.1;Database=stock2; uid=zzh; pwd=liuyi7181314;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 捕捉異常
catch(_com_error e)
{
cout << "數(shù)據(jù)庫連接失敗!";
cout << e.Description();
//printf("%s\n",e.ErrorMessage());
}
}
// 執(zhí)行查詢
_RecordsetPtr& ADOConn::GetRecordSet(char* SQL)
{
_bstr_t bstrSQL(SQL);
try
{
// 連接數(shù)據(jù)庫,如果Connection對象為空,則重新連接數(shù)據(jù)庫
if(m_pConnection==NULL)
createLine();
// 創(chuàng)建記錄集對象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的記錄
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
// 捕捉異常
catch(_com_error e)
{
// 顯示錯誤信息
printf("查詢失敗:");
cout << e.Description();
cout << ":" << SQL <
}
// 返回記錄集
return m_pRecordset;
}
// 執(zhí)行SQL語句,Insert Update _variant_t
BOOL ADOConn::ExecuteSQL(char* SQL)
{
_bstr_t bstrSQL(SQL);
// _variant_t RecordsAffected;
try
{
// 是否已經(jīng)連接數(shù)據(jù)庫
if(m_pConnection == NULL)
createLine();
// Connection對象的Execute方法:(_bstr_t CommandText,
// VARIANT * RecordsAffected, long Options )
// 其中CommandText是命令字串,通常是SQL命令。
// 參數(shù)RecordsAffected是操作完成后所影響的行數(shù),
// 參數(shù)Options表示CommandText的類型:adCmdText-文本命令;adCmdTable-表名
// adCmdProc-存儲過程;adCmdUnknown-未知
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
printf("執(zhí)行失敗:");
cout << e.Description();
cout << ":" << SQL <
return false;
}
}
void ADOConn::Close()
{
// 關(guān)閉記錄集和連接
if (m_pRecordset != NULL)
m_pRecordset->Close();
m_pConnection->Close();
// 釋放環(huán)境
::CoUninitialize();
}
//格式轉(zhuǎn)換
char* ADOConn::VariantToChar(_variant_t& var)
{
char strValue[200];
_bstr_t bst_t;
switch(var.vt)
{
case VT_EMPTY:
strcpy_s(strValue,"\0");
break;
case 3:
case VT_INT:
sprintf_s(strValue,"%d",var.intVal);
break;
case VT_R4:
sprintf_s(strValue,"%f",var.fltVal);
break;
case VT_R8:
sprintf_s(strValue,"%lf",var.dblVal);
case VT_BSTR:
bst_t = var;
sprintf_s(strValue,"%s",(const char* )bst_t);
break;
case VT_BOOL:
sprintf_s(strValue,"%d",var.boolVal);
break;
default:
strcpy_s(strValue,"\0");
break;
}
return strValue;
}
#endif
總結(jié)
以上是生活随笔為你收集整理的vs2008创建mysql数据库_求教VS2008 C++连接MySQL数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tkinter使用MySQL存数据_我无
- 下一篇: java cookie的有效期_Java