您的位置:首页 > 编程语言 > C语言/C++

ODBC-C语言连接数据库(SQL Server 2000)(下)

2014-02-02 16:25 393 查看
1.SQLAllocHandle创建odbc句柄

SQLRETURN SQLAllocHandle(

SQLSMALLINT HandleType,//HandleType的取值可以为SQL_HANDLE_ENV(申请环境句柄)、SQL_HANDLE_DBC(申请数据库连接句柄)、 SQL_HANDLE_STMT(申请SQL语句句柄)

SQLHANDLE InputHandle,//输入句柄

SQLHANDLE* OutputHandlePtr//输出句柄,即第一个参数指定的需要申请的句柄

);

创建环境句柄后务必调用:SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER)//将odbc设置成为版本3,否则某些odbc api函数不能被支持。

2.ODBC API 函数的返回值

返回值定义:SQLRETURN

成功是返回值:SQL_SUCCESS、SQL_SUCCESS_WITH_INFO(表明执行成功但带有一定错误信息)

失败时返回值:SQL_ERROR

3.SQLConnect连接数据库

SQLRETURN SQLConnect(

SQLHDBC hdbc,//数据库连接句柄

SQLCHAR* ServerName,//为ODBC的DSN名

SQLSMALLINT length_ServerName,//ServerName数据的长度

SQLCHAR* UserName,//数据库用户名

SQLSMALLINT length_UserName,//UserName数据的长度

SQLCHAR* PassWord,//数据库用户密码

SQLSMALLINT length_PassWord//PassWord数据的长度

);

关于以上三个参数的长度可以直接指定,也可以定为SQL_NTS表明参数是以NULL字符结尾

附:示例代码

#include<stdio.h>
#include<windows.h>
#include<sql.h>
#include<sqlext.h>
#include<sqltypes.h>

int main(){

SQLRETURN ret;
SQLHENV henv;//SQLHANDLE henv
SQLHDBC hdbc;//SQLHANDLE hdbc
SQLHSTMT hstmt;//SQLHANDLE hstmt

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,&hdbc);//申请数据库连接句柄
ret=SQLConnect(hdbc,(SQLCHAR*)"phonesql",SQL_NTS,(SQLCHAR*)"sa",SQL_NTS,(SQLCHAR*)"112358",SQL_NTS);//连接数据库
ret=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);//申请SQL语句句柄
if(ret==SQL_SUCCESS || ret==SQL_SUCCESS_WITH_INFO)
printf("success!\n");
else printf("error!\n");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: