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字符结尾
附:示例代码
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; }
相关文章推荐
- ODBC-C语言连接数据库(SQL Server 2000)(上)
- ODBC-C语言操作数据库(SQL Server 2000)(上)
- ODBC-C语言操作数据库(SQL Server 2000)(下)
- JDBC连接数据库SQL Server 2000和SQL Server 2005
- vs2010无法配置连接sql server 2000数据库的解决办法
- sql server 2005怎么连接sql server 2000数据库
- Java 实现连接sql server 2000(JDBC数据库访问例子)-2
- 数据库连接测试程序(SQL Server 2000 Driver for JDBC Service Pack 3 安装测试)
- SQL Server 2008连接局域网内的SQL Server 2000数据库
- jsp连接Sql Server 2000数据库
- c#连接sql server 2000数据库
- Java 实现连接sql server 2000(JDBC数据库访问例子)
- c语言连接数据库方法odbc方法
- Java 实现连接sql server 2000(JDBC数据库访问例子)
- JAVA通过JdbcOdbc连接sql server 2000数据库
- Java中SQL Server 2000数据库的连接(连接测试)
- VB连接SQL SERVER 数据库时ODBC设置
- Java 实现连接sql server 2000(JDBC数据库访问例子)
- JSP连接SQL SERVER 2000 数据库方法
- 数据库连接测试程序(SQL Server 2000 Driver for JDBC Service Pack 3 安装测试)