1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| private: System::Void button1_Click_1(System::Object^ sender, System::EventArgs^ e) {
SQLHANDLE hEnv; // ODBC Environment handle
SQLHANDLE hDbc; // ODBC Connection handle
SQLHANDLE hStmt; // ODBC Statement handle
SQLRETURN status;
SQLSMALLINT i, MsgLen;
SQLWCHAR SqlState[6], Msg[SQL_MAX_MESSAGE_LENGTH];
SQLINTEGER NativeError;
status = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
status = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
status = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);
status = SQLConnect(hDbc,(SQLWCHAR *) "MONPC\SQLEXPRESS", 16, (SQLWCHAR *)"MONPC\MONLOGIN", 14, (SQLWCHAR *)"", 0);
i = 1;
status = SQLGetDiagRec(SQL_HANDLE_STMT, hStmt, i, SqlState, &NativeError, Msg, sizeof(Msg), &MsgLen);
status = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt);
status = SQLSetStmtAttr(hStmt, SQL_ATTR_CURSOR_TYPE, (SQLPOINTER) SQL_CURSOR_STATIC, 0);
status = SQLExecDirec t(hStmt, (SQLWCHAR*) "Select * from Amateurs", (SQLINTEGER) 22);
int rowcnt; // variable to hold row count
rowcnt = 0; // initialize row counter
while (true && rowcnt<100) // loop forever
{
status = (SQLRETURN)SQLFetch(hStmt); // fetch a row of data
if (status == SQL_NO_DATA_FOUND) break; // if No Data was returned then exit the loop
rowcnt++; // add 1 to the row counter
}
printf("There were %d rows of data returned by the SQL Statement.\r\n", rowcnt);
status = SQLCloseCursor(hStmt);
if (status == SQL_SUCCESS || status == SQL_SUCCESS_WITH_INFO) {
}
else {
printf("Error with SQLCloseCursor...\r\n");
}
status = SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
status = SQLDisconnect(hDbc);
status = SQLFreeHandle(SQL_HANDLE_DBC, hDbc);
status = SQLFreeHandle(SQL_HANDLE_ENV, hEnv);
} |
Partager