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();

}
示例#2
0
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;
}