亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? oracle_db8.c

?? oracle數(shù)據(jù)庫(kù)tpcc(在線事務(wù)處理能力)測(cè)試的源碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/***************************
oracle_db8.c
***************************/
/*+ file: oracle_db8.c based on Oracle file tpccpl.c */
/*+================================================================
=+
| Copyright (c) 1994 Oracle Corp, Redwood Shores, CA
|
| OPEN SYSTEMS PERFORMANCE GROUP
|
| All Rights Reserved
|
+==================================================================
+
| DESCRIPTION
| TPC-C transactions in PL/SQL.
+=================================================================-
*/
/*+****************************************************************
**********
*
*
* COPYRIGHT (c) 1998 BY
*
* DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS.
*
* ALL RIGHTS RESERVED.
*
*
*
* THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED *
* ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE *
* INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER *
* COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY *
* OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY *
* TRANSFERRED.
*
*
*
* THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE *
* AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT *
* CORPORATION.
*
*
*
* DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS *
* SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
*
*
*
*
*
*******************************************************************
*********/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/timeb.h>
#include <asm/atomic.h>
#include <linux/spinlock.h>
#include <oci.h>
#include <ocidfn.h>
#include <ociapr.h>
#define ORACLE_DB_C
#include <tpccerr.h>
#include <tpccstruct.h>
#include <oracle_db8.h>
#include <tpccapi.h>
#include <tpcc.h>
#define DEADLOCKRETRIES 6
static int bTpccExit; /* exit delivery disconnect loop as dll exiting. */
static spinlock_t ErrorLogCriticalSection;
char szErrorLogName[256];
char szOraLogName[256];
char szOraErrorLogName[256];
/* prototypes */
int ORAReadRegistrySettings(void);
void vgetdate (unsigned char *oradt) ;
void cvtdmy (unsigned char *oradt, char *outdate);
void cvtdmyhms (unsigned char *oradt, char *outdate);
FILE *vopen(char *fnam, char *mode)
{
   FILE *fd;
   #ifdef DEBUG
       TPCCErr("tkvuopen() fnam: %s, mode: %s\n", fnam, mode);
   #endif
   fd = fopen((char *)fnam,(char *)mode);
   if (!fd)
   {
      TPCCErr(" fopen on %s failed %d\n",fnam,fd); /* exit(-1); */
   }
   return(fd);
}
int sqlfile(char *fnam, text *linebuf)
{
   FILE *fd;
   int nulpt = 0;
   #ifdef DEBUG
       TPCCErr("sqlfile() fnam: %s, linebuf: %#x\n", fnam, linebuf);
   #endif
   fd = vopen(fnam,"r");
   if(NULLP == fd)
   {
      return(ERR_DB_ERROR);
   }
   while (fgets((char *)linebuf+nulpt, SQL_BUF_SIZE,fd))
   {
      nulpt = strlen((char *)linebuf);
   }
   return(nulpt);
}
int getfile(char *filename, text *filebuf)
{
   text parsbuf[SQL_BUF_SIZE];
   strcpy(parsbuf, szTpccLogPath);
   strcat(parsbuf, filename);
   return(sqlfile(parsbuf, filebuf));
}
int TPCCStartupDB()
{
   #ifdef DEBUG_TPCCSTARTUPDB
       _ASSERT(FALSE);
   #endif
   spin_lock_init(&ErrorLogCriticalSection);
   return ERR_DB_SUCCESS;
}
int TPCCShutdownDB(void)
{
   bTpccExit = TRUE; /* Add Oracle specific code */
   return ERR_DB_SUCCESS;
}
int ocierror(char *fname, int lineno, OraContext *p, sword status)
{
   text errbuf[512];
   text tempbuf[512];
   sb4 errcode;
   OCIError *errhp;
   errhp = p->errhp;
   switch (status){
      case OCI_SUCCESS:
           return RECOVERR;
           break;
      case OCI_SUCCESS_WITH_INFO:
           sprintf(errbuf, "Module %s Line %d\r\n", fname, lineno);
           strcat(errbuf, "Error - OCI_SUCCESS_WITH_INFO\r\n");
           break;
      case OCI_NEED_DATA:	
	   sprintf(errbuf, "Module %s Line %d\r\n", fname, lineno);
	   strcat(errbuf, "Error - OCI_NEED_DATA\r\n");
           break;
      case OCI_NO_DATA:
           sprintf(errbuf, "Module %s Line %d\r\n", fname, lineno);
           sprintf(errbuf, "Error - OCI_NO_DATA\r\n");
           break;
      case OCI_ERROR:
           (void) OCIErrorGet (errhp, (ub4) 1,(text *) NULL, &errcode, tempbuf,
                              (ub4) sizeof(errbuf),OCI_HTYPE_ERROR);
           switch(errcode){
		case NOT_SERIALIZABLE:
		/* if error is NOT_SERIALIZABLE return without writing anything*/
		     return errcode;
		case DEADLOCK:
		     TPCCErr("Warning Deadlock, being retried");
		     return RECOVERR;
		case SNAPSHOT_TOO_OLD:/* SNAPSHOT_TOO_OLD is considered recoverable */
		     TPCCErr("Error snapshot too old: %s", tempbuf);
		     return RECOVERR;
		default:/* else write a message *//* All else are irrecoverable */
		     TPCCErr("Module %s Line %d\r\nError - %s\r\n",fname, lineno, tempbuf);
		     return errcode;
		}
/* vmm313 TPCCDisconnectDB(p); */
/* vmm313 exit(1); */
	   break;
      case OCI_INVALID_HANDLE:
	   sprintf(errbuf, "Module %s Line %d\r\n", fname, lineno);
           strcat(errbuf, "Error - OCI_INVALID_HANDLE\r\n");
	   TPCCErr("%s", errbuf);
           TPCCDisconnectDB(p, NULL);
	   return IRRECERR;
/* terminate(-1); */
/* exit(-1); */
	   break;
      case OCI_STILL_EXECUTING:
	   sprintf(errbuf, "Module %s Line %d\r\n", fname, lineno);
	   strcat(errbuf, "Error - OCI_STILL_EXECUTE\r\n");
	   break;
      case OCI_CONTINUE:
	   sprintf(errbuf, "Module %s Line %d\r\n", fname, lineno);
	   strcat(errbuf, "Error - OCI_CONTINUE\r\n");
	   break;
      default:
	   break;
   }
   TPCCErr("%s", errbuf);
   return RECOVERR;
}
/* FUNCTION: int TPCCConnectDB(CallersContext *pCC, int iTermId,
int iSyncId,
* OraContext **dbproc, char *server, char *database, char *user,
* char *password, char *app, int *spid, long *pack_size)
*
* PURPOSE: This function opens the sql connection for use.
*
* ARGUMENTS: CallersContext *pCC passed in structure pointer from inetsrv.
* int iTermId terminal id of browser
* int iSyncId sync id of browser
* OraContext **dbproc pointer to returned OraContext
* char *server SQL server name
* char *database SQL server database
* char *user user name
* char *password user password
* char *app pointer to returned application array
* int *spid pointer to returned spid
* long *pack_size pointer to returned default pack size
*
* RETURNS: int 0 if successful
* 1 if an error occurs
*
* COMMENTS: None
*
*/
int TPCCConnectDB(OraContext **dbproc, pLoginData pLogin)
{
   #define SERIAL_TXT "alter session set isolation_level =serializable"
   #ifdef SQL_TRACE
      #define SQLTXT1 "alter session set sql_trace = true"
   #endif/* Add Oracle specific code */
   text stmbuf[100];
   OraContext *p;
   char userstr[256];
   *dbproc = (OraContext *) malloc(sizeof(OraContext)); 
   p = *dbproc;/* initialize flags to not initialized */
   p->new_init = 0;
   p->pay_init = 0;
   p->ord_init = 0;
   p->sto_init = 0;
   p->del_init = 0;
   sprintf(userstr,"%s/%s@%s",pLogin->szUser,pLogin->szPassword,pLogin->szServer);
   OCIEnvCreate(&(p->tpcenv), OCI_DEFAULT | OCI_OBJECT, NULL, NULL,NULL, NULL, (size_t) 0, NULL);
   OCIHandleAlloc((dvoid *)p->tpcenv, (dvoid **)&(p->tpcsrv),OCI_HTYPE_SERVER,0 , (dvoid **)0);
   OCIHandleAlloc((dvoid *)p->tpcenv, (dvoid **)&(p->errhp),OCI_HTYPE_ERROR,0 , (dvoid **)0);
   OCIHandleAlloc((dvoid *)p->tpcenv, (dvoid **)&(p->datecvterrhp),OCI_HTYPE_ERROR,0 , (dvoid **)0);
   OCIHandleAlloc((dvoid *)p->tpcenv, (dvoid **)&(p->tpcsvc),OCI_HTYPE_SVCCTX,0 , (dvoid **)0);
   if (RECOVERR != (OCIERROR(p, OCIServerAttach(p->tpcsrv, p->errhp,(text *)0,0, OCI_DEFAULT))))
   /* return IRRECERR; */
      return ERR_DB_ERROR;
      /*OCIERROR(p, OCIServerAttach(p->tpcsrv, p->errhp,userstr,
        strlen(userstr),OCI_DEFAULT));*/
      /*{
        return IRRECERR;
        }
      */
   OCIAttrSet((dvoid *)p->tpcsvc, OCI_HTYPE_SVCCTX, (dvoid *)p->tpcsrv,(ub4)0, OCI_ATTR_SERVER, p->errhp);
   OCIHandleAlloc((dvoid *)p->tpcenv, (dvoid **)&(p->tpcusr),OCI_HTYPE_SESSION,0 , (dvoid **)0);
   OCIAttrSet((dvoid *)p->tpcusr, OCI_HTYPE_SESSION, (dvoid *)pLogin->szUser,
              (ub4)strlen(pLogin->szUser),OCI_ATTR_USERNAME, p->errhp);
   OCIAttrSet((dvoid *)p->tpcusr, OCI_HTYPE_SESSION,(dvoid *)pLogin->szPassword,
              (ub4)strlen(pLogin->szPassword), OCI_ATTR_PASSWORD,p->errhp);
   if (RECOVERR != (OCIERROR(p, OCISessionBegin(p->tpcsvc, p->errhp,p->tpcusr,OCI_CRED_RDBMS,OCI_DEFAULT))))
      return (ERR_DB_ERROR);
   OCIAttrSet(p->tpcsvc, OCI_HTYPE_SVCCTX, p->tpcusr, 0,OCI_ATTR_SESSION,p->errhp);
         /* run all transaction in serializable mode */
   OCIHandleAlloc(p->tpcenv, (dvoid **)&(p->curi), OCI_HTYPE_STMT, 0,(dvoid**)0);
   sprintf ((char *) stmbuf, SERIAL_TXT);
   OCIStmtPrepare(p->curi, p->errhp, stmbuf, strlen((char *)stmbuf),OCI_NTV_SYNTAX, OCI_DEFAULT);
   if (RECOVERR != OCIERROR(p, OCIStmtExecute(p->tpcsvc, p->curi, p->errhp,1, 0, 0, 0,OCI_DEFAULT)))
      return (ERR_DB_ERROR);
   OCIHandleFree(p->curi, OCI_HTYPE_STMT);
   #ifdef SQL_TRACE/* Turn on the SQL_TRACE */
	OCIHandleAlloc(p->tpcenv, (dvoid **)&(p->curi), OCI_HTYPE_STMT,0, &xmem);
	sprintf ((char *) stmbuf, TRACE_TXT);
	OCIStmtPrepare(p->curi, p->errhp, stmbuf, strlen((char *)stmbuf),OCI_NTV_SYNTAX, OCI_DEFAULT);
	if (RECOVERR != OCIERROR(p, OCIStmtExecute(p->tpcsvc, p->curi, p->errhp,1, 0, 0, 0,OCI_DEFAULT)))
	   return(ERR_DB_ERROR);
        OCIHandleFree((dvoid *)p->curi, OCI_HTYPE_STMT);
   #endif /* End SQL_TRACE */
   /**** logon = 1;***/
   if (tkvcninit (&(p->bindvars.info.newOrder), p)) 
   {
      TPCCDisconnectDB (p, NULL);
      return ERR_DB_ERROR;
   }
   else
      p->new_init = 1;
   if (tkvcpinit (&(p->bindvars.info.payment), p)) 
   {
      TPCCDisconnectDB (p, NULL);
      return ERR_DB_ERROR;
   }
   else
      p->pay_init = 1;
   if (tkvcoinit (&(p->bindvars.info.orderStatus), p)) 
   {
      TPCCDisconnectDB (p, NULL);
      return ERR_DB_ERROR;
   }
   else
      p->ord_init = 1;
   if (tkvcsinit (&(p->bindvars.info.stockLevel), p)) 
   {
      TPCCDisconnectDB (p, NULL);
      return ERR_DB_ERROR;
   }
   else
      p->sto_init = 1;
   if (tkvcdinit (&(p->bindvars.info.delivery), p)) 
   {
      TPCCDisconnectDB (p, NULL);
      return ERR_DB_ERROR;
   }
   else
      p->del_init = 1;
   return ERR_DB_SUCCESS;
}
/* FUNCTION: int TPCCDisconnectDB(OraContext *dbproc)
*
* PURPOSE: This function closes the sql connection.
*
* ARGUMENTS:
* OraContext *dbproc pointer to OraContext
*
* RETURNS: int ERR_DB_SUCCESS if successfull
* error value if an error occurs
*
* COMMENTS: None
*
*/
int TPCCDisconnectDB(OraContext *dbproc, CallersContext *pCC)
{
   /* Add Oracle specific code */
   if (1 == dbproc->new_init) 
   {
      tkvcndone(&(dbproc->nctx));
      dbproc->new_init = 0;
   }
   if (1 == dbproc->pay_init) 
   {
      tkvcpdone(&(dbproc->pctx));
      dbproc->pay_init = 0;
   }
   if (1 == dbproc->ord_init) 
   {
      tkvcodone(&(dbproc->octx));
      dbproc->ord_init = 0;
   }
   if (1 == dbproc->sto_init) 
   {
      tkvcsdone(&(dbproc->sctx));
      dbproc->sto_init = 0;
   }
   if (1 == dbproc->del_init) 
   {
      tkvcddone(&(dbproc->dctx));

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩麻豆91| 国产亚洲欧美日韩俺去了| 精品综合免费视频观看| 国产精品久久久久久久久免费相片| 欧美系列日韩一区| 国产999精品久久久久久绿帽| 亚洲一区二区av电影| 日本一区二区三区国色天香| 91精品麻豆日日躁夜夜躁| 99国内精品久久| 国产美女久久久久| 日韩电影在线观看网站| 亚洲你懂的在线视频| 国产亚洲欧美中文| 欧美变态凌虐bdsm| 欧美日韩你懂的| 93久久精品日日躁夜夜躁欧美| 国产一区二区调教| 青青草精品视频| 亚洲v精品v日韩v欧美v专区| 亚洲日本在线天堂| 中文字幕欧美激情一区| 久久综合国产精品| 欧美一卡二卡在线观看| 欧美精品久久久久久久多人混战| 色综合色狠狠综合色| 成人黄色一级视频| 成人动漫一区二区三区| 国产精品一级片| 极品少妇xxxx偷拍精品少妇| 美腿丝袜亚洲一区| 日韩精品色哟哟| 午夜精品视频一区| 亚洲午夜影视影院在线观看| 一区二区在线观看视频| 亚洲欧美另类图片小说| 亚洲视频 欧洲视频| 亚洲色图欧美激情| 一区二区三区不卡在线观看| 亚洲精品欧美在线| 亚洲午夜免费电影| 亚洲高清久久久| 日韩电影一区二区三区| 日韩电影在线一区二区| 欧美a级理论片| 久久精品国产99久久6| 精品一区二区三区欧美| 国产一区二区日韩精品| 国产成人av一区二区| 成人小视频免费在线观看| 成人综合在线观看| 色综合天天综合在线视频| 91九色最新地址| 欧美日韩免费视频| 欧美一级爆毛片| 精品国产免费一区二区三区四区| 久久天天做天天爱综合色| 日本一二三四高清不卡| 综合电影一区二区三区 | 欧美日韩高清不卡| 欧美另类变人与禽xxxxx| 日韩午夜在线影院| 国产日韩欧美在线一区| 自拍偷拍国产精品| 日韩在线一二三区| 狠狠色丁香婷婷综合久久片| kk眼镜猥琐国模调教系列一区二区| 色88888久久久久久影院野外| 欧美日韩免费高清一区色橹橹| 日韩欧美在线1卡| 中文字幕国产一区| 亚洲va欧美va人人爽午夜 | 国产精品456| 99re热视频精品| 欧美精品在线观看播放| 久久久久久久久久久久电影| 亚洲色图欧洲色图婷婷| 免费黄网站欧美| 99久久精品国产网站| 欧美一级久久久久久久大片| 中文字幕国产一区二区| 午夜精品123| 国产凹凸在线观看一区二区| 欧美在线一区二区| 久久青草欧美一区二区三区| 一区二区三区免费网站| 国产一区二区调教| 欧美三级电影一区| 国产亚洲综合av| 午夜精品久久久久久久久| 国产成人免费视频一区| 在线观看91av| 日韩毛片一二三区| 国产乱码精品一区二区三| 欧美专区在线观看一区| 国产人伦精品一区二区| 蜜桃精品在线观看| 成人一区在线看| 欧美日韩日日摸| 国产女同互慰高潮91漫画| 亚洲丶国产丶欧美一区二区三区| 国产精品白丝av| 91精品麻豆日日躁夜夜躁| 亚洲欧美日韩小说| 国产精品伊人色| 日韩三级av在线播放| 亚洲综合偷拍欧美一区色| 高清成人免费视频| 精品91自产拍在线观看一区| 亚洲国产成人av好男人在线观看| 成人做爰69片免费看网站| 日韩欧美中文一区二区| 亚洲国产精品久久久久婷婷884 | 国产精品白丝jk白祙喷水网站 | 欧美精品99久久久**| 国产精品久久毛片| 国产成人在线免费观看| 日韩欧美第一区| 视频一区二区国产| 日本精品一级二级| 91小视频在线| 91精品免费在线| 亚洲成人动漫av| 欧美日韩一区二区三区免费看 | 欧美三级电影网站| 亚洲视频在线观看三级| www.日韩大片| 国产精品女同一区二区三区| 国产精品自拍一区| 久久综合999| 国产伦精一区二区三区| 久久综合色8888| 韩国欧美国产一区| 久久理论电影网| 福利一区福利二区| 欧美韩国日本一区| 成人爱爱电影网址| 国产精品毛片大码女人 | 精品久久久久久久人人人人传媒| 日韩电影在线免费看| 日韩西西人体444www| 美女尤物国产一区| 欧美一卡2卡3卡4卡| 毛片基地黄久久久久久天堂| 日韩欧美一区二区免费| 久久电影网电视剧免费观看| 精品国产亚洲在线| 粉嫩在线一区二区三区视频| 国产精品美女久久久久高潮| 97se狠狠狠综合亚洲狠狠| 一区二区高清视频在线观看| 欧美美女喷水视频| 美日韩黄色大片| 欧美激情中文不卡| 91电影在线观看| 天天综合色天天综合色h| 欧美一区二区三区视频在线观看| 国产在线乱码一区二区三区| 日本一区二区不卡视频| 色八戒一区二区三区| 偷拍日韩校园综合在线| 精品国产1区二区| 99精品视频在线观看免费| 亚洲国产成人av| 日韩欧美亚洲另类制服综合在线| 国产suv精品一区二区6| 一区二区三区在线免费视频| 欧美一区二区三区免费在线看 | 国产一区二区毛片| 国产精品萝li| 777久久久精品| 粉嫩一区二区三区在线看| 亚洲午夜免费视频| 久久久精品人体av艺术| 欧洲人成人精品| 精品一区二区三区在线视频| 最新高清无码专区| 91超碰这里只有精品国产| 国产一区二区影院| 亚洲一区二区三区在线| 国产亚洲精品7777| 欧美日韩精品电影| 国产成人精品三级| 日韩高清不卡一区二区| 日本一区二区三区四区在线视频 | 在线观看成人免费视频| 国内精品免费在线观看| 一二三区精品视频| 国产午夜精品美女毛片视频| 欧美日高清视频| 成人一二三区视频| 美女视频一区在线观看| 亚洲视频1区2区| 久久免费视频色| 欧美日韩一区二区在线观看| 国产69精品久久久久777| 日韩精品一级二级| 一区二区三区不卡视频| 国产日本欧洲亚洲| 欧美α欧美αv大片|