1 打开
2 操作,访问
3 关闭
- ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &ANYenv);
- if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO )
- {
- LogFnV("ER","DB接続失敗:ENV取得失敗");
- return FALSE;
- }
- ret = SQLSetEnvAttr(ANYenv, SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
- if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO )
- {
- SQLFreeHandle(SQL_HANDLE_ENV, ANYenv);
- LogFnV("ER","DB接続失敗:ATTR設定失敗");
- return FALSE;
- }
- ret = SQLAllocHandle(SQL_HANDLE_DBC, ANYenv, &ANYdbc);
- if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO )
- {
- SQLFreeHandle(SQL_HANDLE_ENV, ANYenv);
- LogFnV("ER","DB接続失敗:DBC取得失敗");
- return FALSE;
- }
- ret = SQLConnect(ANYdbc, (SQLCHAR*) DBDsn, SQL_NTS,
- (SQLCHAR*) DBUid, SQL_NTS,
- (SQLCHAR*) DBPwd, SQL_NTS);
- if( ret==SQL_SUCCESS || ret==SQL_SUCCESS_WITH_INFO )
- {
- //test connection
- }
- else
- {
- SQLFreeHandle(SQL_HANDLE_DBC, ANYdbc);
- SQLFreeHandle(SQL_HANDLE_ENV, ANYenv);
- LogFnV("ER","DB接続失敗:接続エラー");
- return FALSE;
- }
2 操作,访问
- SQLRETURN ret;
- SQLHSTMT stmt;
- ret = SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt1);
- if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO )
- {
- LogFnV("ER","DB接続失敗:STMT取得に失敗");
- return SQL_NG;
- }
- ret = SQLExecDirect(stmt1,(SQLCHAR*)sql,SQL_NTS);
- if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO && ret!=SQL_NO_DATA )
- {
- SQLFreeHandle(SQL_HANDLE_STMT, stmt);
- LogFnV("ER",sql);
- return SQL_NG;
- }
- ret = SQLEndTran(SQL_HANDLE_DBC,dbc,SQL_COMMIT);
- if( ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO )
- {
- SQLFreeHandle(SQL_HANDLE_STMT, stmt);
- LogFnV("ER",sql);
- return SQL_NG;
- }
- SQLFreeHandle(SQL_HANDLE_STMT, stmt);
- return SQL_OK;
- SQLFreeHandle(SQL_HANDLE_DBC, ANYdbc);
- SQLFreeHandle(SQL_HANDLE_ENV, ANYenv);