⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbclass.pc

📁 ORACLE数据库的批量插入例子
💻 PC
字号:
#define SQLCA_STORAGE_CLASS extern

EXEC SQL INCLUDE ora_context.pch;


#include <system.hpp>
#include <mem.h>
#include <sys\types.h>
#include <time.h>
#include "GlobalVar.h"
//#include "GlobalFunctions.h"
#include "dbclass.h"

CDbClass::CDbClass(char* classname,int threadid):ora_context(classname,threadid)
{
}

int CDbClass::CONVERT_DB_CONNECT(char* user,char* pwd,char* con)
{
	char db_connect_log[100];
	convert_error_flag = 0;
	int ret = conn_db(user,pwd,con);
		
	if(ret == 0)
	{
		sprintf(db_connect_log,"数据库连接成功");
		DisplayConvertInGUI(db_connect_log);
		errorlogwrite(convert_log_name,db_connect_log);
		convert_Connected_Database = DATABASE_STATUS_CONNECTED;
		return 0;
	}
	else
	{
		sprintf(db_connect_log,"数据库连接失败" );
		DisplayConvertInGUI(db_connect_log);
		errorlogwrite(convert_log_name,db_connect_log);
		return -1;
	}
	
}	
int CDbClass::CONVERT_DB_CONNECT()
{

	char db_connect_log[100];
	char convert_user[20];
	char convert_passwd[20];
	char convert_conn[20];

	convert_error_flag = 0;
	
	memset(convert_user,0,sizeof(convert_user));
	memset(convert_passwd,0,sizeof(convert_passwd));
	memset(convert_conn,0,sizeof(convert_conn));

	char cIniFile[256];
	GetCurrentDirectory(256,cIniFile);
	strcat(cIniFile,VNSMS_INI_FILE);
	
	GetPrivateProfileString("Database","db_user","vnsms",convert_user,20,cIniFile);
	GetPrivateProfileString("Database","db_pwd","vnsms133",convert_passwd,20,cIniFile);
	GetPrivateProfileString("Database","db_sid","vnsms",convert_conn,20,cIniFile);

	int ret = conn_db(convert_user,convert_passwd,convert_conn);
		
	if(ret == 0)
	{
		sprintf(db_connect_log,"数据库连接成功");
		DisplayConvertInGUI(db_connect_log);
		errorlogwrite(convert_log_name,db_connect_log);
		convert_Connected_Database = DATABASE_STATUS_CONNECTED;
		return 0;
	}
	else
	{
		sprintf(db_connect_log,"数据库连接失败" );
		DisplayConvertInGUI(db_connect_log);
		errorlogwrite(convert_log_name,db_connect_log);
		return -1;
	}
}

int CDbClass::convert_Discont_db()
{
	EXEC SQL CONTEXT USE :m_context;
  EXEC SQL WHENEVER SQLERROR CONTINUE;
  EXEC SQL COMMIT WORK RELEASE;
  if (convert_Connected_Database == DATABASE_STATUS_CONNECTED) {
		char db_disconnect[200];
  	memset(db_disconnect,0,sizeof(db_disconnect));
  	sprintf(db_disconnect,"Convert Oracle Disconnect");
		DisplayConvertInGUI(db_disconnect);
  }
	convert_Connected_Database = DATABASE_STATUS_DISCONNECTED;	
	return 0;
}

void CDbClass::convert_sql_error()
{
	on_error();
}

int CDbClass::InsertIntoRoarMsg(char* time1,char* time2)
{
	EXEC SQL BEGIN DECLARE SECTION;
		char temp1[3000][7];
		  char temp2[3000][7];
		  char temp3[3000][7];
		  char temp4[3000][7];
		  char temp5[3000][7];
		  char temp6[3000][7];
		  char temp7[3000][7];
		  char temp8[3000][7];
		  char temp9[3000][7];
		  char temp10[3000][7];
		  char temp11[3000][7];
		  char temp12[3000][7];
		  char temp13[3000][7];
		  char temp14[3000][7];
		  char temp15[3000][7];
		  char temp16[3000][7];
		  char temp17[3000][7];
		  char temp18[3000][7];
		  char temp19[3000][7];
		  char temp20[3000][7];
		  char temp21[3000][7];
		  char temp22[3000][7];
		  int  rec_count;
 	EXEC SQL END DECLARE SECTION;
	
	EXEC SQL CONTEXT USE :m_context;
	EXEC SQL WHENEVER SQLERROR DO convert_sql_error();
	EXEC SQL WHENEVER NOT FOUND goto error;

  Randomize();
  int j;
  char p[7];
  for (int i=0;i<3000;i++) {
    j = random(50000);
    itoa(j,p,10);
    strcpy(temp1[i],p);
    strcpy(temp2[i],p);
    strcpy(temp3[i],p);
    strcpy(temp4[i],p);
    strcpy(temp5[i],p);
    strcpy(temp6[i],p);
    strcpy(temp7[i],p);
    strcpy(temp8[i],p);
    strcpy(temp9[i],p);
    strcpy(temp10[i],p);
    strcpy(temp11[i],p);
    strcpy(temp12[i],p);
    strcpy(temp13[i],p);
    strcpy(temp14[i],p);
    strcpy(temp15[i],p);
    strcpy(temp16[i],p);
    strcpy(temp17[i],p);
    strcpy(temp18[i],p);
    strcpy(temp19[i],p);
    strcpy(temp20[i],p);
    strcpy(temp21[i],p);
    strcpy(temp22[i],p);
  }
	rec_count = 3000;
	
	time_t t;
	time(&t);
	struct tm *tblock = localtime(&t);
	strftime(time1, 20, "%Y%m%d %H%M%S", tblock);
	
	convert_error_flag = 0;
	EXEC SQL for :rec_count Insert into ROAR_MSG(MSG_ID,NLEN,BDCSID,WSTARTYEAR,BSTARTMON,BSTARTDAY,START_TIME,SPC_TYPE,OPC,DPC,CALLING_SSN,CALLED_SSN,CALLING_GT,CALLED_GT,IMSI,MSISDN,HLR,VLR,OPERATE_CODE,ERROR,RESP_TIME,STATUS)
		VALUES(:temp1,:temp2,:temp3,:temp4,:temp5,:temp6,:temp7,:temp8,:temp9,:temp10,:temp11,:temp12,:temp13,:temp14,:temp15,:temp16,:temp17,:temp18,:temp19,:temp20,:temp21,:temp22);
	if(convert_error_flag == -1)
	{
		return -1;
	}
	EXEC SQL COMMIT;
	time(&t);
	tblock = localtime(&t);
	strftime(time2, 20, "%Y%m%d %H%M%S", tblock);
	return 0;		

error:
	EXEC SQL ROLLBACK;
	char str[255]="********插入roar_msg表不成功*******:";
	strcat(str,"\n");
	DisplayConvertInGUI(str);
	return -1;		
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -