c++使用Sql Server文件--打开与关闭

目录

sql操作类的基本情况

头文件使用

Sql数据库的打开

Sql数据库的关闭


sql操作类的基本情况

        我个人在实现C++操作sql server时,是通过编写sql操作类作为工具来实现的。其中的数据成员如下代码所示:

class man_sql
{
    public:
    protected:
        SQLHENV env;        //环境句柄
        SQLHDBC dbc;        //连接句柄
        SQLHSTMT stmt;      //语句句柄
        SQLRETURN ret;      //结果返回位置
    private:
};

        接下来在这个系列文章中,我们将向这个操作类中增加一部分函数,来充实该操作类的功能。实现对“c++操作Sql Server”这一功能的封装。

头文件使用

        在用c++操作sql数据库时,我们通常需要用到的两个头文件为: (在后续的文章中,将不再赘述这一问题。)

#include <windows.h>
#include <sqlext.h>

Sql数据库的打开:

        参数说明:const string&userid:SQL SERVER 使用用户名
                          const string &passward:SQL SERVER 密码
                          const string &databasename:要访问的数据库名

bool man_sql::sql_connect(const string &userid, const string &passward,
                            const string &databasename)
{
    /*申请环境句柄 */
    SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
    SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0);
    /** 申请数据库连接句柄 */
    SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);

    /*连接到数据库*/
    string a="DRIVER={SQL Server};SERVER=(local);DATABASE=\0";
    a+=databasename+";UID="+userid+";PWD="+passward+";";
    size_t converted=0;
    wchar_t *w;
    w=(wchar_t *)malloc((a.size()+1)*sizeof(wchar_t));
    mbstowcs_s(&converted, w, a.size()+1, a.c_str(), _TRUNCATE);
    SQLDriverConnectW(dbc, NULL, w, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);
    /*数据库连接成功则返回1,连接失败则返回0*/
    if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt))
        return 0;
    else    return 1;
}

Sql数据库的关闭:

void man_sql::sql_close()
{
    SQLFreeHandle(SQL_HANDLE_STMT, stmt);
    SQLDisconnect(dbc);
    SQLFreeHandle(SQL_HANDLE_DBC, dbc);
    SQLFreeHandle(SQL_HANDLE_ENV, env);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值