void main(int argc, char ** argv) { SQLHANDLE henv; SQLHANDLE hdbc; SQLHANDLE hstmt; char username[256]; char password[256]; char datasource[256]; unsigned int i, j; char TableName[50]; strcpy(datasource, "SQLServer Express"); //strcpy(datasource, "Microsoft SQL Server"); strcpy(username, "test"); strcpy(password, "test"); strcpy(TableName, "EMPLOYEES_PERFTEST"); /* if (argc < 2) { fprintf (stderr, "Usage: ODBCBatchUpdates username/password@datasource\n\n"); exit(255); } */ /* if (getLoginInfo(argv[1], username, password, datasource) != SQL_SUCCESS) { fprintf (stderr, "Error: ' %s ' invalid login\n", argv[1]); fprintf (stderr, "Usage: ODBCBatchInserts username/password@datasource\n\n"); exit(255); } */ printf("ODBC BATCH UPDATE TEST\n\n"); InitODBCEnv(&henv); ODBCConnect(henv, &hdbc, username, password, datasource); InitODBCStmt(hdbc, &hstmt); printf("\nSETTING UP ENVIRONMENT\n"); printf("Dropping table: %s\n", TableName); DropTable(hstmt, TableName); printf("Creating table: %s\n", TableName); CreateTable(hstmt, TableName); printf("Filling table: %s\n", TableName); BatchInsert(hdbc, hstmt, TableName, 100, 5000); /* printf("\n\n"); printf ("Deleting contents of table"); ClearTable(hstmt, TableName); */ printf("\n\n"); PrintTableHeader(); for (i = 0; i < BatchSizeLen; i++) { for (j = 0; j < NumRecUpdatedLen; j++) { BatchUpdate(hdbc, hstmt, TableName, BatchSize[i], NumRecUpdated[j]); printf(" resetting test..."); ClearTable(hstmt, TableName); BatchInsert(hdbc, hstmt, TableName, 100, 5000); printf("done\n"); } printf ("\n"); } Terminate(henv, hdbc, hstmt); printf("ODBC BATCH UPDATE TEST COMPLETED.\n\n"); printf("===========================================================\n"); printf("Press ENTER to end program..."); getchar(); }
BOOL TSetupDlg::FillDBCombos (void) { TWaitCursor wc; LPTSTR szValue; TCHAR szText[256]; TODBCConn conn; //SQLLEN datalen; SQLLEN datalen; int rc; int iIndex; if (!m_USEUID.Checked ()) return TRUE; if (!ODBCConnect (conn)) return FALSE; /* Get current text */ szValue = m_DEFAULTDB.Text (); m_DEFAULTDB.Clear (); /* Add Items */ rc = SQLTables (conn.m_hStmt, (_SQLCHAR *) _T(SQL_ALL_CATALOGS), SQL_NTS, (_SQLCHAR *) _T(""), SQL_NTS, (_SQLCHAR *) _T(""), SQL_NTS, (_SQLCHAR *) _T(""), SQL_NTS); if (rc == SQL_SUCCESS) { while ((rc = SQLFetch (conn.m_hStmt)) == SQL_SUCCESS) { rc = SQLGetData (conn.m_hStmt, 1, _SQL_C_CHAR, szText, sizeof (szText), &datalen); if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) break; if (datalen > 0 && datalen < sizeof (szText)) { szText[datalen / sizeof (TCHAR)] = 0; m_DEFAULTDB.AddString (szText); } } } if (rc == SQL_ERROR) conn.ShowStmtError (m_hInstance, m_hWnd); /* Set old value */ m_DEFAULTDB.Text (szValue); iIndex = m_DEFAULTDB.FindExact (szValue); if (iIndex != CB_ERR) m_DEFAULTDB.CurSel (iIndex); /* Same trick, now for character set combo */ /* Get current text */ szValue = m_DEFAULTCS.Text (); m_DEFAULTCS.Clear (); /* Add Items */ rc = SQLExecDirect (conn.m_hStmt, (_SQLCHAR *) _T ("SELECT CS_NAME FROM DB.DBA.SYS_CHARSETS"), SQL_NTS); if (rc == SQL_SUCCESS) { while ((rc = SQLFetch (conn.m_hStmt)) == SQL_SUCCESS) { rc = SQLGetData (conn.m_hStmt, 1, _SQL_C_CHAR, szText, sizeof (szText), &datalen); if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) break; if (datalen > 0 && datalen < sizeof (szText)) { szText[datalen / sizeof (TCHAR)] = 0; m_DEFAULTCS.AddString (szText); } } } if (rc == SQL_ERROR) conn.ShowStmtError (m_hInstance, m_hWnd); /* Set old value */ m_DEFAULTCS.Text (szValue); iIndex = m_DEFAULTCS.FindExact (szValue); if (iIndex != CB_ERR) m_DEFAULTCS.CurSel (iIndex); return TRUE; }