ODBC 連接數據庫 SQL server 2008

1、打開【控制面板】-> 【系統和安全】 -> 【管理工具】-> 【數據源(ODBC)】 



2、雙擊【數據源(ODBC)】-> 選中【系統DSN】


3、單擊【添加】,會彈出如下對話框,選中【SQL server】->【完成】


4、彈出如下對話框,在【名稱】中填入數據源名稱 例如:我命名爲: LocalServer,在【服務器】中填入計算機名或者IP地址,我連接的是本機:ANGELNIU-PC(或者是59.73.212.67)

注:服務器名稱如果不知道的話,在打開數據庫的時候可以看見


5、單擊【下一步】 在【登錄ID】和【密碼】處需填入可以以“SQL server身份驗證”登錄到數據庫的登錄名 ,並具有一定的查詢權限,選擇及填入情況如下圖所示:

需要注意的一點是:檢查一下【客戶端配置】中是否選中了【動態端口】,如果選中了則取消,並在端口號中填入1433,否則會出現錯誤,具體原因不是很清楚。。。


6、上一步完成之後進入如下界面,【更改默認數據庫】一欄選擇要操作的數據庫名稱,點擊【下一步】


7、出現如下界面,不需要任何操作,點擊【完成】


8、在彈出的界面中單擊【測試數據源】,彈出如下界面,即表示連接成功,單擊確定,結束即可。



9、在Visual Studio 2010中新建一個項目,寫入如下代碼:

#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
#include <odbcss.h>
#define M 32


SQLHENV		henv = SQL_NULL_HENV;
SQLHDBC		hdbc1 = SQL_NULL_HDBC;
SQLHSTMT	hstmt1 = SQL_NULL_HSTMT;


int main()
{
	SQLCHAR DSN[]="LocalServer";
	SQLCHAR user[]="sa";
	SQLCHAR pwd[]="";

	RETCODE ret;

	SQLCHAR		name[M];
	SQLINTEGER	nameLen;
	SQLINTEGER	age;
	SQLINTEGER	ageLen;


	ret = SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);

	ret = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);

	ret = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc1);

	ret = SQLConnect(hdbc1,	DSN,SQL_NTS, user,SQL_NTS, pwd,SQL_NTS);
	if ( !SUCCEEDED(ret) ) {             //if ( (ret != SQL_SUCCESS) && (ret != SQL_SUCCESS_WITH_INFO) ) {
	   	 printf("Fail to connect !\n");
	}
	else {
	   	 printf("Connection OK !\n");
	}


	ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc1, &hstmt1);
	ret = SQLPrepare(hstmt1, (UCHAR*)"SELECT Sname,Sage FROM Student", SQL_NTS);
	ret = SQLExecute(hstmt1);
	// Previous two statements can be replaced with the following one:
	// ret = SQLExecDirect(hstmt1, (UCHAR*)"SELECT Sname,Sage FROM Student", SQL_NTS);

	ret = SQLBindCol(hstmt1, 1, SQL_C_CHAR, name, M, &nameLen);
	ret = SQLBindCol(hstmt1, 2, SQL_C_LONG, &age, 0, &ageLen);

	while ( ( ret = SQLFetch(hstmt1) ) != SQL_NO_DATA )
		printf("%s, %d\n", name,age);


	SQLFreeHandle(SQL_HANDLE_STMT, hstmt1);
	SQLDisconnect(hdbc1);
	SQLFreeHandle(SQL_HANDLE_DBC, hdbc1);
	SQLFreeHandle(SQL_HANDLE_ENV, henv);
    system("pause");
	return(0);
}

10、執行代碼。顯示如下界面,ODBC成功連接數據庫!!!






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章