void do_10_pack () { int n; long start = get_msec_count (), duration; ta_enter (&ten_pack_ta); for (n = 0; n < 10; n++) { new_order (); #ifndef NO_ONLY payment (); #endif } #ifndef NO_ONLY ta_enter (&delivery_ta); if (strstr (dbms, "Virtuoso") || strstr (dbms, "SOAP")) { for (n = 1; n <= 10; n++) delivery_1 (local_w_id, n); } else { delivery_1 (local_w_id, 0); } ta_leave (&delivery_ta); slevel (); ostat (); #endif ta_leave (&ten_pack_ta); duration = get_msec_count () - start; #if defined(GUI) log (1, "-- %ld tpmC\n", 600000 / duration); #else printf ("-- %ld tpmC\n\n", 600000 / duration); fflush (stdout); #endif }
void delivery () { int n; ta_enter (&delivery_ta); if (strstr (dbms, "Virtuoso")) { for (n = 1; n <= 10; n++) delivery_1 (local_w_id, n); } else { delivery_1 (local_w_id, 0); } ta_leave (&delivery_ta); }
void t1_lines (t1_window_t * tw, int l1, int l2, int batch_sz) { char head [100]; timer_account_t ins_ta; int ctype = SQL_CURSOR_DYNAMIC; int inx, n; int rno = l1; char * text = T1_BASE_TEXT; sprintf (head, "ins %d into T1", batch_sz); ta_init (&ins_ta, head); QUIET; t1_window (tw, "CR1", hdbc1, text, ctype, 00, batch_sz, SQL_CONCUR_READ_ONLY, NULL); tw_fetch (tw, SQL_FETCH_NEXT, 0); inx = 0; for (rno = l1; rno < l2; rno++) { tw->tw_set[inx].t1_row_no = inx; tw->tw_set[inx].t1_row_no = rno; sprintf (tw->tw_set[inx].t1_string1, "%d", rno % 300); sprintf (tw->tw_set[inx].t1_string2, "%d", 300 - (rno % 300)); tw->tw_set[inx].t1_fi2 = 11; strcpy (tw->tw_set[inx].t1_fs1, "ins"); TW_DEFAULT_LEN (tw->tw_set[inx]); inx++; if (inx == batch_sz) { ta_enter (&ins_ta); tw_set_pos (tw, 0, SQL_ADD); ta_leave (&ins_ta); inx = 0; } } for (n = 0; n < inx; n++) tw_set_pos (tw, n + 1, SQL_ADD); tw_close (tw); QUIET_OFF; ta_print_out (stdout, &ins_ta); }
int main(int argc, char** argv) { char buffer[BUFSIZE]; char result[BUFSIZE]; char *dsn = getenv("DSN"); char *uid = getenv("UID"); char *pwd = getenv("PWD"); if (SQL_SUCCESS != (rc = SQLAllocEnv (&henv))) { odbc_error (); return -1; } if (SQL_SUCCESS != (rc = SQLAllocConnect (henv, &hdbc))) { odbc_error (); return -1; } if (SQL_SUCCESS != (rc = SQLConnect (hdbc, dsn ? dsn : "1111", SQL_NTS, uid ? uid : "dba", SQL_NTS, pwd ? pwd : "dba", SQL_NTS))) { odbc_error (); return -1; } if (SQL_SUCCESS != (rc = SQLAllocStmt (hdbc, &hstmt))) { odbc_error (); return -1; } while (NULL != fgets (buffer, BUFSIZE, stdin)) { if (SQL_SUCCESS != (rc = SQLBindParameter (hstmt, 3, SQL_PARAM_OUTPUT, SQL_C_CHAR, SQL_CHAR, sizeof (result), 0, result, sizeof (result), NULL))) { odbc_error (); break; } if (0 == strncmp ("chdir", buffer, 5)) { if (SQL_SUCCESS != (rc = SQLSetParam (hstmt, 1, SQL_C_CHAR, SQL_CHAR, 0, 0, replace_newline (buffer + 6), NULL))) { odbc_error (); break; } if (SQL_SUCCESS != (rc = SQLSetParam (hstmt, 2, SQL_C_CHAR, SQL_CHAR, 0, 0, "", NULL))) { odbc_error (); break; } if (SQL_SUCCESS != (rc = SQLExecDirect (hstmt, "XSLT_CHDIR (?, ?, ?)", SQL_NTS))) { odbc_error (); break; } /*change directory:*/ printf ("%s\n", result); fflush (stdout); } else if (0 == strncmp ("stylesheet", buffer, 10)) { /*load stylesheet: */ if (SQL_SUCCESS != (rc = SQLSetParam (hstmt, 1, SQL_C_CHAR, SQL_CHAR, 0, 0, replace_newline (&buffer[11]), NULL))) { odbc_error (); break; } if (SQL_SUCCESS != (rc = SQLSetParam (hstmt, 2, SQL_C_CHAR, SQL_CHAR, 0, 0, "", NULL))) { odbc_error (); break; } if (SQL_SUCCESS != (rc = SQLExecDirect (hstmt, "XSLT_STYLESHEET (?, ?, ?)", SQL_NTS))) { odbc_error (); break; } printf ("%s\n", result); fflush (stdout); } else if (0 == strncmp ("input", buffer, 5)) { if (SQL_SUCCESS != (rc = SQLSetParam (hstmt, 1, SQL_C_CHAR, SQL_CHAR, 0, 0, replace_newline (&buffer[6]), NULL))) { odbc_error (); break; } if (SQL_SUCCESS != (rc = SQLSetParam (hstmt, 2, SQL_C_CHAR, SQL_CHAR, 0, 0, "", NULL))) { odbc_error (); break; } if (SQL_SUCCESS != (rc = SQLExecDirect (hstmt, "XSLT_INPUT (?, ?, ?)", SQL_NTS))) { odbc_error (); break; } printf ("%s\n", result); fflush (stdout); } else if (0 == strncmp ("transform", buffer, 9)) { short iter = 1; char * c = buffer+10; char *filename; timer_account_t ta; /* get output filename */ while (*c != '\n' && *c != '\0' && *c != ' ') { c++; } if (*c == ' ') { *c = 0; c++; filename = buffer + 10; } /* get # of iterations */ iter = atoi(c); if (iter <= 0) iter = 1; /* printf ("file: %s iter : %d buffer %s\n", filename, iter, buffer); */ ta_init (&ta, "test"); ta_enter (&ta); if (SQL_SUCCESS != (rc = SQLSetParam (hstmt, 1, SQL_C_CHAR, SQL_CHAR, 0, 0, filename, NULL))) { odbc_error (); break; } if (SQL_SUCCESS != (rc = SQLSetParam (hstmt, 2, SQL_C_SHORT, SQL_INTEGER, 0, 0, &iter, NULL))) { odbc_error (); break; } if (SQL_SUCCESS != (rc = SQLExecDirect (hstmt, "XSLT_TRANSFORM (?, ?, ?)", SQL_NTS))) { odbc_error (); break; } ta_leave (&ta); printf ("OK wallclock: %06ld ms; cpuclock: %06ld'\n", ta.ta_total, ta.ta_total); fflush (stdout); } else if (0 == strncmp ("terminate", buffer, 9)) { printf ("OK\n"); break; } if (SQL_SUCCESS != (rc = SQLFreeStmt (hstmt, SQL_CLOSE))) { odbc_error (); return -1; } if (SQL_SUCCESS != (rc = SQLFreeStmt (hstmt, SQL_RESET_PARAMS))) { odbc_error (); return -1; } } if (SQL_SUCCESS != (rc = SQLFreeStmt (hstmt, SQL_DROP))) return -1; if (SQL_SUCCESS != (rc = SQLDisconnect (hdbc))) return -1; if (SQL_SUCCESS != (rc = SQLFreeConnect (hdbc))) return -1; if (SQL_SUCCESS != (rc = SQLFreeEnv (henv))) return -1; return 0; }