ODBC 连接数据库 SQL server 2008

时间:2022-03-14 20:45:11

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


SQLHENVhenv = SQL_NULL_HENV;
SQLHDBChdbc1 = SQL_NULL_HDBC;
SQLHSTMThstmt1 = SQL_NULL_HSTMT;


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

RETCODE ret;

SQLCHARname[M];
SQLINTEGERnameLen;
SQLINTEGERage;
SQLINTEGERageLen;


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