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

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名

<
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 C 语言中,连接 SQL Server 数据库可以使用 Microsoft 提供的 ODBC API 接口。下面是一个简单的连接 SQL Server 数据库的示例代码: ``` #include <stdio.h> #include <stdlib.h> #include <sql.h> #include <sqlext.h> int main() { SQLHENV env; // 环境句柄 SQLHDBC dbc; // 连接句柄 SQLRETURN ret; // 返回值 // 初始化环境句柄 ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env); if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { printf("Failed to allocate environment handle\n"); return 1; } // 设置环境属性 ret = SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { printf("Failed to set environment attribute\n"); SQLFreeHandle(SQL_HANDLE_ENV, env); return 1; } // 分配连接句柄 ret = SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc); if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { printf("Failed to allocate connection handle\n"); SQLFreeHandle(SQL_HANDLE_ENV, env); return 1; } // 连接数据库 SQLCHAR* conn_str = "Driver={SQL Server};Server=localhost;Database=mydb;Uid=myusername;Pwd=mypassword;"; ret = SQLDriverConnect(dbc, NULL, conn_str, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE); if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { printf("Failed to connect to database\n"); SQLFreeHandle(SQL_HANDLE_DBC, dbc); SQLFreeHandle(SQL_HANDLE_ENV, env); return 1; } // 连接成功 printf("Connected to database successfully\n"); // 断开连接 SQLDisconnect(dbc); // 释放连接句柄和环境句柄 SQLFreeHandle(SQL_HANDLE_DBC, dbc); SQLFreeHandle(SQL_HANDLE_ENV, env); return 0; } ``` 需要注意的是,连接字符串 `conn_str` 中需要填写正确的 SQL Server 服务器、数据库、用户名和密码等信息。另外,连接成功后可以使用 ODBC API 提供的函数执行 SQL 查询语句等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值