// 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_SELECT_LIST_SIZE 256 #define MAX_ITEM_BUFFER_SIZE 2048 extern "C" { #ifdef HAVE_OCI_H #include #else #include #include #include #endif #include #define NULL_TERMINATED_STRING 5 #define PARSE_DEFER 1 #define PARSE_V7_LNG 2 } struct describe { sb4 dbsize; sb2 dbtype; sb1 buf[MAX_ITEM_BUFFER_SIZE]; sb4 buflen; sb4 dsize; sb2 precision; sb2 scale; sb2 nullok; }; Lda_Def lda; Cda_Def cda; ub4 hda[256/sizeof(ub4)]; sword ncols; describe desc[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]; int row; int main(int argc, char **argv) { if (argc<7) { printf("usage: ora7test 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 env; env.setValue("ORACLE_SID",sid); env.setValue("TWO_TASK",sid); // init the timer time_t starttime=time(NULL); printf("oratest running, please wait...\n"); clock(); for (int count=0; count