1. 程式人生 > >VS與MySQL通過ADO方式連線

VS與MySQL通過ADO方式連線

1.下載好MySQL之後,安裝開發員的版本,用命令列在資料庫test下建立表st並插入了兩條記錄,然後OBDC新增使用者、系統DSN 驅動程式是MySQL OBDC 5.3 ANSI Driver


2.獲取連線字串用的方法是下面連結中講的方法

連線字串是:

Provider=MSDASQL.1;Persist SecurityInfo=False;Extended Properties="Driver=MySQL ODBC 5.3 ANSIDriver;SERVER=localhost;UID=root;DATABASE=test;PORT=3306"

3.在VS2010中連線到資料庫  我連線到了test 資料庫,其中有一個表st,表內有兩條內容。(資料庫已拷貝在工程目錄下)



4.在VS新增類ADOConn 在新增三個函式進行初始化、退出、獲取記錄集,其中初始化時使用剛剛得到的連線字串。程式碼如下。

void ADOConn::OnInitADOConn(void)
	{
	::CoInitialize(NULL);
	try
	{
	m_pConnection.CreateInstance("ADODB.Connection");  
	//連線字串
	_bstr_t strConnect="Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=Driver=MySQL ODBC 5.3 ANSI Driver;SERVER=localhost;UID=root;DATABASE=test;PORT=3306";
	m_pConnection->Open(strConnect,"root","liuxinyuan",adModeUnknown);
	}
	catch(_com_error &e)
	{
	AfxMessageBox(e.Description());
	}
	}

	void ADOConn::ExitConnect(void)
	{
	::CoUninitialize();
	//關閉記錄集和連線
	if(m_pRecordset!=NULL)
	m_pRecordset->Close();
	m_pConnection->Close();
	//釋放環境

	}
	_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
	{
	//TODO: insert return statement here
	try
	{
	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;
	}

5.由於我的本是64位系統所以還需要進行設定。(1)工程st->右鍵屬性 平臺——新建——X64。(2)字符集——多位元組字符集