这是我的代码连接到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;