📄 sub_db_sybase_dboperate.cp
字号:
ConnectDB(pCfgFileName); getParameter(databasename,pCfgFileName,CONFIG_DBNAME_ITEMS); EXEC SQL USE :databasename; EXEC SQL set chained off; EXEC SQL EXEC sp_kpiwaitlock INTO :locktype; /*disconnect db */ EXEC SQL DISCONNECT DEFAULT; for (i=0;i<MAX_ITEMS;i++) { if(strlen(locktype[i]) > 0) { if(strstr(locktype[i],"blk")) { count=count+1; } } } sprintf(tempValue,"%d",count); constructPutValues(tempValue,pKPIValues,nodePos); nodePos = QUEUE_NOT_HEAD; return;}/*******************************************************************************\| Name : getpmdblogfreeradio || Description : for KPI PM-00-03-01-10 || Input Param : || Output Param : || Author : yangyong || History : Aug.20.2003 yangyong create || ||*******************************************************************************/void getpmdblogfreeradio(struct KPIValue *pKPIValues,char *pCfgFileName){ int nodePos = QUEUE_HEAD; double value; char tempValue[32]; EXEC SQL BEGIN DECLARE SECTION; char total_size[64]; char total_pages[64]; char free_pages[64]; char used_pages[64]; char databasename[64]; EXEC SQL END DECLARE SECTION; memset(total_size,'\0',sizeof(total_size)); memset(total_pages,'\0',sizeof(total_pages)); memset(free_pages,'\0',sizeof(free_pages)); memset(used_pages,'\0',sizeof(used_pages)); memset(databasename,'\0',sizeof(databasename)); memset(tempValue,'\0',sizeof(tempValue)); /* connect to database */ ConnectDB(pCfgFileName); getParameter(databasename,pCfgFileName,CONFIG_DBNAME_ITEMS); EXEC SQL USE :databasename; EXEC SQL set chained off; EXEC SQL EXEC sp_kpiloguse "logsegment" INTO :total_size, :total_pages, :free_pages, :used_pages; /*disconnect db */ EXEC SQL DISCONNECT DEFAULT; value = atof(free_pages)/atof(total_pages); sprintf(tempValue,"%.4f",value); constructPutValues(tempValue,pKPIValues,nodePos); nodePos = QUEUE_NOT_HEAD; return;}/*******************************************************************************\| Name : getpmdbloguseradio || Description : for KPI PM-00-03-01-11 || Input Param : || Output Param : || Author : yangyong || History : Aug.20.2003 yangyong create || ||*******************************************************************************/void getpmdbloguseradio(struct KPIValue *pKPIValues,char *pCfgFileName){ int nodePos = QUEUE_HEAD; double value; char tempValue[32]; EXEC SQL BEGIN DECLARE SECTION; char total_size[64]; char total_pages[64]; char free_pages[64]; char used_pages[64]; char databasename[64]; EXEC SQL END DECLARE SECTION; memset(total_size,'\0',sizeof(total_size)); memset(total_pages,'\0',sizeof(total_pages)); memset(free_pages,'\0',sizeof(free_pages)); memset(used_pages,'\0',sizeof(used_pages)); memset(databasename,'\0',sizeof(databasename)); memset(tempValue,'\0',sizeof(tempValue)); /* connect to database */ ConnectDB(pCfgFileName); getParameter(databasename,pCfgFileName,CONFIG_DBNAME_ITEMS); EXEC SQL USE :databasename; EXEC SQL set chained off; EXEC SQL EXEC sp_kpiloguse "logsegment" INTO :total_size, :total_pages, :free_pages, :used_pages; /*disconnect db */ EXEC SQL DISCONNECT DEFAULT; value = atof(used_pages)/atof(total_pages); sprintf(tempValue,"%.4f",value); constructPutValues(tempValue,pKPIValues,nodePos); nodePos = QUEUE_NOT_HEAD; return;}/*******************************************************************************\| Name : getfmdbalonelocks || Description : for KPI FM-00-03-01-07 || Input Param : || Output Param : || Author : yangyong || History : Aug.20.2003 yangyong create || ||*******************************************************************************/void getfmdbalonelocks(struct KPIValue *pKPIValues,char *pCfgFileName){ char tmpbuf[MAX_STRING_LENGTH]; int nodePos = QUEUE_HEAD; EXEC SQL BEGIN DECLARE SECTION; char count[64]; char databasename[64]; EXEC SQL END DECLARE SECTION; memset(tmpbuf,'\0',sizeof(tmpbuf)); memset(count,'\0',sizeof(count)); memset(databasename,'\0',sizeof(databasename)); /* connect to database */ ConnectDBWithSysUser(pCfgFileName); getParameter(databasename,pCfgFileName,CONFIG_SYS_DBNAME_ITEMS); EXEC SQL USE :databasename; EXEC SQL set chained off; EXEC SQL EXEC sp_kpidbalonelocks INTO :count; /*disconnect db */ EXEC SQL DISCONNECT DEFAULT; sprintf(tmpbuf,"%s",StrTrim(count)); constructPutValues(tmpbuf,pKPIValues,nodePos); nodePos = QUEUE_NOT_HEAD; return;}/*******************************************************************************\| Name : getfmconnections || Description : for KPI FM-00-03-01-09 || Input Param : || Output Param : || Author : yangyong || History : Aug.20.2003 yangyong create || ||*******************************************************************************/void getfmconnections(struct KPIValue *pKPIValues,char *pCfgFileName){ char tmpbuf[MAX_STRING_LENGTH]; int nodePos = QUEUE_HEAD; EXEC SQL BEGIN DECLARE SECTION; char count[64]; char databasename[64]; EXEC SQL END DECLARE SECTION; memset(tmpbuf,'\0',sizeof(tmpbuf)); memset(count,'\0',sizeof(count)); memset(databasename,'\0',sizeof(databasename)); /* connect to database */ ConnectDBWithSysUser(pCfgFileName); getParameter(databasename,pCfgFileName,CONFIG_SYS_DBNAME_ITEMS); EXEC SQL USE :databasename; EXEC SQL set chained off; EXEC SQL EXEC sp_kpiconnections INTO :count; /*disconnect db */ EXEC SQL DISCONNECT DEFAULT; sprintf(tmpbuf,"%s",StrTrim(count)); constructPutValues(tmpbuf,pKPIValues,nodePos); nodePos = QUEUE_NOT_HEAD; return;}/*******************************************************************************\| Name : getcmdbsize || Description : for KPI CM-00-03-01-08 || Input Param : || Output Param : || Author : yangyong || History : Aug.20.2003 yangyong create || ||*******************************************************************************/void getcmdbsize(struct KPIValue *pKPIValues,char *pCfgFileName){ int nodePos = QUEUE_HEAD; EXEC SQL BEGIN DECLARE SECTION; char name[64]; char dbsize[64]; char databasename[64]; EXEC SQL END DECLARE SECTION; memset(name,'\0',sizeof(name)); memset(dbsize,'\0',sizeof(dbsize)); memset(databasename,'\0',sizeof(databasename)); getParameter(databasename,pCfgFileName,CONFIG_DBNAME_ITEMS); /* connect to database */ ConnectDB(pCfgFileName); EXEC SQL USE :databasename; EXEC SQL set chained off; EXEC SQL EXEC sp_kpidbsize :databasename INTO :name, :dbsize; /*disconnect db */ EXEC SQL DISCONNECT DEFAULT; constructPutValues(StrTrim(dbsize),pKPIValues,nodePos); nodePos = QUEUE_NOT_HEAD; return;}/*******************************************************************************\| Name : getcmdbspacefreeradio || Description : for KPI PM-00-03-01-08 || Input Param : || Output Param : || Author : yangyong || History : Aug.20.2003 yangyong create || ||*******************************************************************************/void getcmdbspacefreeradio(struct KPIValue *pKPIValues,char *pCfgFileName){ int i=0; int nodePos = QUEUE_HEAD; double totleValue = 0.0; double freeValue = 0.0; char tempValue[32]; EXEC SQL BEGIN DECLARE SECTION; char segment[MAX_ITEMS][64]; char dbsize[MAX_ITEMS][64]; char freekbytes[MAX_ITEMS][64]; char alonefree[64]; char databasename[64]; EXEC SQL END DECLARE SECTION; memset(segment,'\0',sizeof(segment)); memset(dbsize,'\0',sizeof(dbsize)); memset(freekbytes,'\0',sizeof(freekbytes)); memset(alonefree,'\0',sizeof(alonefree)); memset(databasename,'\0',sizeof(databasename)); memset(tempValue,'\0',sizeof(tempValue)); /* connect to database */ ConnectDB(pCfgFileName); getParameter(databasename,pCfgFileName,CONFIG_DBNAME_ITEMS); EXEC SQL USE :databasename; EXEC SQL set chained off; EXEC SQL EXEC sp_kpidbuse:databasename INTO :segment, :dbsize, :freekbytes; /*disconnect db */ EXEC SQL DISCONNECT DEFAULT; for (i=0;i<MAX_ITEMS;i++) { if(strlen(StrTrim(segment[i])) > 0) { if(strstr(StrTrim(freekbytes[i]),"not applicable") != NULL) { EXEC SQL EXEC sp_kpidblogfreewithnoappl:databasename INTO :alonefree; freeValue += atof(StrTrim(alonefree)); } else { freeValue += atof(StrTrim(freekbytes[i])); } totleValue += atof(StrTrim(dbsize[i]))*1024; } } sprintf(tempValue,"%.4f",freeValue/totleValue); constructPutValues(tempValue,pKPIValues,nodePos); nodePos = QUEUE_NOT_HEAD; return;}/*******************************************************************************\| Name : gettempdbspcfreeradio || Description : for KPI PM-00-03-01-09 || Input Param : || Output Param : || Author : yangyong || History : Aug.20.2003 yangyong create || ||*******************************************************************************/void gettempdbspcfreeradio(struct KPIValue *pKPIValues,char *pCfgFileName){ int i=0; int nodePos = QUEUE_HEAD; double totleValue = 0.0; double freeValue = 0.0; char tempValue[128]; EXEC SQL BEGIN DECLARE SECTION; char segment[MAX_ITEMS][128]; char dbsize[MAX_ITEMS][128]; char freekbytes[MAX_ITEMS][128]; char alonefree[128]; char databasename[64]; EXEC SQL END DECLARE SECTION; memset(segment,'\0',sizeof(segment)); memset(dbsize,'\0',sizeof(dbsize)); memset(freekbytes,'\0',sizeof(freekbytes)); memset(alonefree,'\0',sizeof(alonefree)); memset(databasename,'\0',sizeof(databasename)); memset(tempValue,'\0',sizeof(tempValue)); getParameter(databasename,pCfgFileName,CONFIG_DBNAME_ITEMS); /* connect to database */ ConnectDB(pCfgFileName); EXEC SQL USE :databasename; EXEC SQL set chained off; EXEC SQL EXEC sp_kpidbuse "tempdb" INTO :segment, :dbsize, :freekbytes; for (i=0;i<MAX_ITEMS;i++) { if(strlen(StrTrim(segment[i])) > 0) { if(strstr(StrTrim(freekbytes[i]),"not applicable") != NULL) { EXEC SQL EXEC sp_kpidblogfreewithnoappl:databasename INTO :alonefree; freeValue += atof(StrTrim(alonefree)); } else { freeValue += atof(StrTrim(freekbytes[i])); } totleValue += atof(StrTrim(dbsize[i]))*1024; } else { freeValue += 0.0; totleValue += 0.0; } } EXEC SQL DISCONNECT DEFAULT; sprintf(tempValue,"%.4f",freeValue/totleValue); constructPutValues(tempValue,pKPIValues,nodePos); nodePos = QUEUE_NOT_HEAD; return;}/*******************************************************************************\| Name : ConnectDB || Description : connect to database || Input Param : || Output Param : || Author : yangyong || History : Sept.15.2003 yangyong create || ||*******************************************************************************/int ConnectDB(char *pCfgFileName){ EXEC SQL BEGIN DECLARE SECTION; /* storage for login name and password. */ char username[32]; char password[32]; char databasename[32]; EXEC SQL END DECLARE SECTION; memset(username,'\0',sizeof(username)); memset(password,'\0',sizeof(password)); memset(databasename,'\0',sizeof(databasename)); EXEC SQL WHENEVER SQLERROR CALL error_handler(); EXEC SQL WHENEVER SQLWARNING CALL warning_handler(); EXEC SQL WHENEVER NOT FOUND CONTINUE; /* Get user name,password,databasename from config file */ getParameter(username,pCfgFileName,CONFIG_USERNAME_ITEMS); getParameter(password,pCfgFileName,CONFIG_PASSWORD_ITEMS); getParameter(databasename,pCfgFileName,CONFIG_DBNAME_ITEMS); /* connect to database */ EXEC SQL CONNECT :username IDENTIFIED BY :password; EXEC SQL USE :databasename; return RTN_SUCCESS;}/*******************************************************************************\| Name : ConnectDBWithSysUser || Description : connect to database with system user || Input Param : || Output Param : || Author : yangyong || History : Sept.15.2003 yangyong create || ||*******************************************************************************/int ConnectDBWithSysUser(char *pCfgFileName){ EXEC SQL BEGIN DECLARE SECTION; /* storage for login name and password. */ char username[32]; char password[32]; char databasename[32]; EXEC SQL END DECLARE SECTION; memset(username,'\0',sizeof(username)); memset(password,'\0',sizeof(password)); memset(databasename,'\0',sizeof(databasename)); EXEC SQL WHENEVER SQLERROR CALL error_handler(); EXEC SQL WHENEVER SQLWARNING CALL warning_handler(); EXEC SQL WHENEVER NOT FOUND CONTINUE; /* Get user name,password,databasename from config file */ getParameter(username,pCfgFileName,CONFIG_SYS_USERNAME_ITEMS); getParameter(password,pCfgFileName,CONFIG_SYS_PASSWORD_ITEMS); getParameter(databasename,pCfgFileName,CONFIG_SYS_DBNAME_ITEMS); /* connect to database */ EXEC SQL CONNECT :username IDENTIFIED BY :password; EXEC SQL USE :databasename; return RTN_SUCCESS;}/*******************************************************************************\| Name : DisConnDB || Description : disconnect from database || Input Param : || Output Param : || Author : yangyong || History : Sept.15.2003 yangyong create || ||*******************************************************************************/int DisConnDB(){ return 0;}/*******************************************************************************\| Name : error_handler || Description : error handler || Input Param : || Output Param : || Author : yangyong || History : Sept.15.2003 yangyong create || ||*******************************************************************************/void error_handler(){ fprintf(stderr, "\n** SQLCODE=(%ld)", sqlca.sqlcode); if (sqlca.sqlerrm.sqlerrml) { fprintf(stderr, "\n** SQL Server Error "); fprintf(stderr, "\n** %s", sqlca.sqlerrm.sqlerrmc); } fprintf(stderr, "\n\n"); exit(ERREXIT);}/*******************************************************************************\| Name : warning_handler || Description : warning handler || Input Param : || Output Param : || Author : yangyong || History : Sept.15.2003 yangyong create || ||*******************************************************************************/void warning_handler(){ if (sqlca.sqlwarn[1] == 'W'){ fprintf(stderr, "\n** Data truncated.\n"); } if (sqlca.sqlwarn[3] == 'W'){ fprintf(stderr, "\n** Insufficient host variables to store results.\n"); } return;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -