zoukankan      html  css  js  c++  java
  • SQLConnect_ref.cpp

    // SQLConnect_ref.cpp
    // compile with: odbc32.lib
    #include <windows.h>
    #include <sqlext.h>
    
    int main() {
        SQLHENV henv;
        SQLHDBC hdbc;
        SQLHSTMT hstmt;
        SQLRETURN retcode;
    
        SQLCHAR * OutConnStr = (SQLCHAR *)malloc(255);
        SQLSMALLINT * OutConnStrLen = (SQLSMALLINT *)malloc(255);
    
        // Allocate environment handle
        retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
    
        // Set the ODBC version environment attribute
        if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
            retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
    
            // Allocate connection handle
            if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
                retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
    
                // Set login timeout to 5 seconds
                if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
                    SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)5, 0);
    
                    // Connect to data source
                    retcode = SQLConnect(hdbc, (SQLWCHAR*) "NorthWind", SQL_NTS, (SQLWCHAR*)NULL, 0, NULL, 0);
    
                    // Allocate statement handle
                    if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
                        retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
    
                        // Process data
                        if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
                            SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
                        }
    
                        SQLDisconnect(hdbc);
                    }
    
                    SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
                }
            }
            SQLFreeHandle(SQL_HANDLE_ENV, henv);
        }
    }
  • 相关阅读:
    JSON Web令牌(JWT)
    CSRF跨站点请求伪造(Cross—Site Request Forgery)
    logging模块
    Django中使用Celery
    第一坑 先引入jQuery ./引入
    CSS 入门
    超大型文件传输方案 + socket + subprocess popen 远程执行系统命令
    MYSQL的执行计划 事务处理 和 跑路
    mysql 存储过程
    Django中CBV View的as_view()源码解析
  • 原文地址:https://www.cnblogs.com/jacen789/p/5531692.html
Copyright © 2011-2022 走看看