我无法使用Dev C ++连接到Microsoft Access

时间:2012-03-11 21:56:38

标签: c++ ms-access dev-c++

这是我的代码连接到MS Access,但它无法正常工作,我也找不到放置文件地址的位置。有人可以帮我修复我的代码吗?

#include <iostream>
using namespace std;
#include <windows.h>
#include <sqlext.h>
#include <stdio.h>

int main(int argc, char*argv[]) {
    HENV hEnv = NULL;
    // Env Handle from SQLAllocEnv()
    HDBC hDBC = NULL;
    // Connection handle
    HSTMT hStmt = NULL;
    // Statement handle
    UCHAR szDSN[SQL_MAX_DSN_LENGTH] = "mpj8";
    // Data Source Name buffer
    UCHAR* szUID = NULL;
    // User ID buffer
    UCHAR* szPasswd = NULL;
    // Password buffer
    UCHAR szModel[128]; 
    // Model buffer 
    SDWORD cbModel; 
    // Model buffer bytes recieved 
    UCHAR szSqlStr[250]= "Select * From bank"; 
    // SQL string 
    RETCODE retcode; 
    // Return code
    // Allocate memory for ODBC Environment handle  
    SQLAllocEnv (&hEnv);
    // Allocate memory for the connection handle
    SQLAllocConnect (hEnv, &hDBC);
    // Connect to the data source "db97" using userid and password.
    retcode = SQLConnect (hDBC, szDSN, SQL_NTS, szUID, SQL_NTS, szPasswd, SQL_NTS); 

    if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
        // Allocate memory for the statement handle
        retcode = SQLAllocStmt (hDBC, &hStmt);
        // Prepare the SQL statement by assigning it to the statement handle
        retcode = SQLPrepare (hStmt, szSqlStr, sizeof (szSqlStr));
        // Execute the SQL statement handle
        retcode = SQLExecute (hStmt);
        // Project only column 1 which is the models
        SQLBindCol (hStmt, 1, SQL_C_CHAR, szModel, sizeof(szModel), &cbModel);
        // Get row of data from the result set defined above in the statement
        retcode = SQLFetch (hStmt);

        while (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { 
            printf(\t%s\n,szModel); 
            // Print row (model) 
            retcode = SQLFetch (hStmt);
            // Fetch next row from result set
        }

        // Free the allocated statement handle
        SQLFreeStmt (hStmt, SQL_DROP);
        // Disconnect from datasource
        SQLDisconnect (hDBC);
    }

    // Free the allocated connection handle
    SQLFreeConnect (hDBC);
    // Free the allocated ODBC environment handle     
    SQLFreeEnv (hEnv);

    return 0;

0 个答案:

没有答案