// Copyright (c) 2000-2001 David Muse // See the file COPYING for more information #include "../../config.h" #include #include #include #include #include #ifdef RUDIMENTS_NAMESPACE using namespace rudiments; #endif #define FETCH_AT_ONCE 10 #define MAX_ITEM_BUFFER_SIZE 2048 #define MAX_SELECT_LIST_SIZE 256 extern "C" { #include } struct describe { OCIParam *paramd; sb4 dbsize; sb2 dbtype; text *buf; sb4 buflen; }; sword ncols; describe desc[MAX_SELECT_LIST_SIZE]; OCIDefine *def[MAX_SELECT_LIST_SIZE]; ub1 def_buf[MAX_SELECT_LIST_SIZE] [FETCH_AT_ONCE][MAX_ITEM_BUFFER_SIZE]; sb2 def_indp[MAX_SELECT_LIST_SIZE][FETCH_AT_ONCE]; ub2 def_col_retlen[MAX_SELECT_LIST_SIZE][FETCH_AT_ONCE]; ub2 def_col_retcode[MAX_SELECT_LIST_SIZE][FETCH_AT_ONCE]; OCIEnv *env; OCIServer *srv; OCIError *err; OCISvcCtx *svc; OCISession *session; OCITrans *trans; OCIStmt *stmt; int fetchatonce=FETCH_AT_ONCE; int main(int argc, char **argv) { if (argc<7) { printf("usage: ora8test user password sid query iterations queriesperiteration\n"); exit(0); } char *user=argv[1]; char *password=argv[2]; char *sid=argv[3]; char *query=argv[4]; int iterations=atoi(argv[5]); int queriesperiteration=atoi(argv[6]); environment envr; envr.setValue("ORACLE_SID",sid); envr.setValue("TWO_TASK",sid); // init the timer time_t starttime=time(NULL); printf("oratest running, please wait...\n"); clock(); for (int count=0; count