- #include<windows.h> 
- #include<iostream> 
- #include<string> 
- #include<sql.h> 
- #include<sqlext.h> 
- using namespace std; 
- int main() 
- { 
-   HENV hEnv; 
-   HDBC hDbc; 
-   RETCODE rc; 
-   int iOut; 
-   char strOut[256]; 
-   char szDSN[256] = "driver={Microsoft Access Driver (*.mdb)};dbq=[c:\\db1.mdb];"; 
-    
-   //dsn samples: 
-   //"driver={Microsoft Access Driver (*.mdb)};dbq=[f:\\db1.mdb];" 
-   //"driver={SQL Server};pwd={password there};Server={server name};Database={dbname there}" 
-   //driver names for different databases: 
-   //{SQL Server} 
-   //{Microsoft ODBC for Oracle} 
-   //{Oracle in oracle9} 
-   //{Microsoft Access Driver (*.mdb)} 
-   //{MySQL ODBC 3.51 Driver} 
-    
-   
-   char* szSql = "select * from table1"; 
-   rc = SQLAllocEnv(&hEnv); 
-   rc = SQLAllocConnect(hEnv, &hDbc); 
-   
-   rc = SQLDriverConnect(hDbc, NULL, (unsigned char*)szDSN,  
-       SQL_NTS, (unsigned char*)strOut,  
-       255, (SQLSMALLINT*)&iOut, SQL_DRIVER_NOPROMPT); 
-   { 
-     int ival; 
-     char chval[128]; 
-     int ret1; 
-     int ret2; 
-     HSTMT hStmt; 
-     rc = SQLAllocStmt(hDbc,&hStmt); 
-     rc = SQLPrepare(hStmt,(unsigned char*)szSql, SQL_NTS);//1 
-     //rc = SQLBindCol(hStmt, tab_column, tr_type, tr_value, tr_len, len_or_ind); 
-     rc = SQLBindCol(hStmt, 1, SQL_C_ULONG, &ival, 4, (SQLINTEGER*)& ret1); 
-     rc = SQLBindCol(hStmt, 2, SQL_C_CHAR, chval, 128, (SQLINTEGER*)&ret2); 
-     rc = SQLExecute(hStmt); //2 
-      
-     //if you have queries like drop/create/many update...  
-     //instead of //1 //2 and //3 you could use 
-     //rc=SQLExecDirectA(hStmt,(unsigned char*)szSql,SQL_NTS); 
-      
-     cout<< ">table:"<< endl; 
-     while(1) //3 
-     { 
-       rc = SQLFetch(hStmt); 
-       if(rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO)break; 
-       cout<< "{"<< ival<<"}{"<< chval<< "}"<< endl; 
-     } 
-     rc=SQLFreeStmt(hStmt, SQL_DROP); 
-   } 
-   rc = SQLDisconnect(hDbc); 
-   rc = SQLFreeEnv(hEnv); 
-   return 0; 
- }