#include <iostream>
#if defined(_WIN16) || defined(_WIN32) || defined(_WIN64) #include <windows.h> #endif #include <sqlext.h>
using namespace std;
int main() { SQLHENV serverhenv; SQLHDBC serverhdbc; SQLHSTMT serverhstmt; SQLRETURN ret;
SQLCHAR dname[45], dno[10];
SQLLEN length;
ret = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&serverhenv);
ret = SQLSetEnvAttr(serverhenv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0); if(!SQL_SUCCEEDED(ret)) { cout<<"AllocEnvHandle error!"<<endl; return 0; }
ret = SQLAllocHandle(SQL_HANDLE_DBC,serverhenv,&serverhdbc); if(!SQL_SUCCEEDED(ret)) { cout<<"AllocDbcHandle error!"<<endl; return 0; }
ret = SQLConnect(serverhdbc,(SQLCHAR*)"company",SQL_NTS, NULL, SQL_NTS, NULL, SQL_NTS); if(!SQL_SUCCEEDED(ret)) { cout<<"SQL_Connect error!"<<endl; return 0; }
ret = SQLAllocHandle(SQL_HANDLE_STMT,serverhdbc,&serverhstmt);
SQLUBIGINT id; SQLINTEGER salary; ret = SQLExecDirect(serverhstmt,(SQLCHAR*)"use test;", SQL_NTS); ret = SQLExecDirect(serverhstmt, (SQLCHAR*)"select * from incid;", SQL_NTS); if(ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO){ SQLBindCol(serverhstmt,1, SQL_C_UBIGINT, (void*)&id,sizeof(id), &length); SQLBindCol(serverhstmt,2, SQL_C_SLONG, (void*)&salary,sizeof(salary), &length); cout << "id\t\tsalary\n"; while(SQL_NO_DATA != SQLFetch(serverhstmt)) { cout << id << "\t\t" << salary << endl; } } else { cout << "ERROR!\n"; }
ret = SQLExecDirect(serverhstmt,(SQLCHAR*)"select insert_sth(23333333);", SQL_NTS); if(ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO){ SQLBindCol(serverhstmt,1, SQL_C_UBIGINT, (void*)&id, sizeof(id), &length); SQLFetch(serverhstmt); cout << "The new id: " << id << endl; } else { cout << "Error\n"; }
ret=SQLFreeHandle(SQL_HANDLE_STMT,serverhstmt); if(SQL_SUCCESS!=ret && SQL_SUCCESS_WITH_INFO != ret) cout<<"free hstmt error!"<<endl; ret=SQLDisconnect(serverhdbc); if(SQL_SUCCESS!=ret&&SQL_SUCCESS_WITH_INFO!=ret) cout<<"disconnected error!"<<endl; ret=SQLFreeHandle(SQL_HANDLE_DBC,serverhdbc); if(SQL_SUCCESS!=ret&&SQL_SUCCESS_WITH_INFO!=ret) cout<<"free hdbc error!"<<endl; ret=SQLFreeHandle(SQL_HANDLE_ENV,serverhenv); if(SQL_SUCCESS!=ret&&SQL_SUCCESS_WITH_INFO!=ret) cout<<"free henv error!"<<endl;
cout << "done" << endl;
return 0; }
|