1.ODBC連接mysql
首先ODBC是什麼呢?
開放數據庫互連(Open Database Connectivity,ODBC)是微軟公司開放服務結構(WOSA,Windows Open Services Architecture)中有關數據庫的一個組成部分,它建立了一組規范,並提供了一組對數據庫訪問的標准API(應用程序編程接口)。這些API利用SQL來完成其大部分任務。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。
可以通過如下路徑找到ODBC:控制面板->管理工具->數據源(ODBC)
1.1 安裝mysql-odbc driver
這個driver將mysql數據庫與ODBC連接在一起。可以在mysql官網下載,但是需要注冊。尤其需要注意,如果使用的是vs2012及更低的vs版本,請下載32位的driver,否則VS將不能成功連接ODBC。原因是VS只有32位版本,原因參照-為什麼VS2010沒有64位版本。
1.2 ODBC連接mysql
打開ODBC。
在用戶DSN中點擊添加。
選擇mysql odbc unicode driver,完成,出現以下界面。
在Data Source Name中為數據源命名;Deccription為描述,可不填;TCP/IP Sever 填寫localhost;User填寫mysql用戶名,Password填寫mysql密碼。當以上均填寫正確時,Database就可以有mysql數據庫中的數據庫供你選擇了。而後點擊Test,顯示successful則成功。
然後回到用戶DSN界面可以看到自己的DSN了。
2.MFC程序連接ODBC
2.1 打開stdafx.h頭文件,添加如下語句
#include <odbcinst.h>
#include "afxdb.h"
這兩個頭文件定義了之後要用到的數據庫操作類。
2.2 打開數據庫
CDatabase db; CString sentence; sentence.Format("ODBC;DSN=Sunny;UID=%s;PWD=%s",MyPublicData.login_name,MyPublicData.login_pass); db.Open(NULL,FALSE,FALSE,sentence); if(!db.IsOpen ()) MessageBox(); CRecordset rs( &db ); rs.Open( CRecordset::forwardOnly, _T("SELECT * FROM login_info"));
其中,format中的DSN、UID、PWD分別對應已建ODBC中的Data Source Name、User、Password。sql語句自行定制。
以上代碼僅為打開數據庫的最簡單操作。
用sql語句操作啊
數據源配置好了嗎?
登錄名、密碼正確嗎?
數據庫服務器開啟的嗎?