天天看點

ODBC 連接配接資料庫 SQL server 2008

1、打開【控制台】-> 【系統和安全】 -> 【管理工具】-> 【資料源(ODBC)】 

ODBC 連接配接資料庫 SQL server 2008

2、輕按兩下【資料源(ODBC)】-> 選中【系統DSN】

ODBC 連接配接資料庫 SQL server 2008

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

ODBC 連接配接資料庫 SQL server 2008

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

ODBC 連接配接資料庫 SQL server 2008

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

ODBC 連接配接資料庫 SQL server 2008

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

ODBC 連接配接資料庫 SQL server 2008

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

ODBC 連接配接資料庫 SQL server 2008

6、上一步完成之後進入如下界面,【更改預設資料庫】一欄選擇要操作的資料庫名稱,點選【下一步】

ODBC 連接配接資料庫 SQL server 2008

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

ODBC 連接配接資料庫 SQL server 2008

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

ODBC 連接配接資料庫 SQL server 2008

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成功連接配接資料庫!!!

ODBC 連接配接資料庫 SQL server 2008