C中对SQL Server的操作

1 打开
  1.     ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &ANYenv);
  2.     if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO )
  3.     {
  4.         LogFnV("ER","DB接続失敗:ENV取得失敗");
  5.         return FALSE;
  6.     }
  7.     ret = SQLSetEnvAttr(ANYenv, SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
  8.     if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO )
  9.     {
  10.         SQLFreeHandle(SQL_HANDLE_ENV, ANYenv);
  11.         LogFnV("ER","DB接続失敗:ATTR設定失敗");
  12.         return FALSE;
  13.     }
  14.     ret = SQLAllocHandle(SQL_HANDLE_DBC, ANYenv, &ANYdbc);
  15.     if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO )
  16.     {
  17.         SQLFreeHandle(SQL_HANDLE_ENV, ANYenv);
  18.         LogFnV("ER","DB接続失敗:DBC取得失敗");
  19.         return FALSE;
  20.     }
  21.     ret = SQLConnect(ANYdbc, (SQLCHAR*) DBDsn, SQL_NTS,
  22.                              (SQLCHAR*) DBUid, SQL_NTS,
  23.                              (SQLCHAR*) DBPwd, SQL_NTS);
  24.     if( ret==SQL_SUCCESS || ret==SQL_SUCCESS_WITH_INFO )
  25.     {
  26.         //test connection
  27.     }
  28.     else 
  29.     {
  30.         SQLFreeHandle(SQL_HANDLE_DBC, ANYdbc);
  31.         SQLFreeHandle(SQL_HANDLE_ENV, ANYenv);
  32.         LogFnV("ER","DB接続失敗:接続エラー");
  33.         return FALSE;
  34.     }
 
2 操作,访问
  1.     SQLRETURN ret;
  2.     SQLHSTMT stmt;
  3.     ret = SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt1);
  4.     if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO )
  5.     {
  6.         LogFnV("ER","DB接続失敗:STMT取得に失敗");
  7.         return SQL_NG;
  8.     }
  9.     ret = SQLExecDirect(stmt1,(SQLCHAR*)sql,SQL_NTS);
  10.     if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO && ret!=SQL_NO_DATA )
  11.     {
  12.         SQLFreeHandle(SQL_HANDLE_STMT, stmt);
  13.         LogFnV("ER",sql);
  14.         return SQL_NG;
  15.     }
  16.     ret = SQLEndTran(SQL_HANDLE_DBC,dbc,SQL_COMMIT);
  17.     if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO )
  18.     {
  19.         SQLFreeHandle(SQL_HANDLE_STMT, stmt);
  20.         LogFnV("ER",sql);
  21.         return SQL_NG;
  22.     }
  23.     SQLFreeHandle(SQL_HANDLE_STMT, stmt);
  24.     return SQL_OK;
3  关闭
  1.     SQLFreeHandle(SQL_HANDLE_DBC, ANYdbc);
  2.     SQLFreeHandle(SQL_HANDLE_ENV, ANYenv);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值