📄 czdmb.sqc
字号:
/*-------------------------------------------------------
** 程序名:czdmb.sqc
** 程序员:
** 修改时间:20040720
** 程序功能:操作代码(czdmb)<表(b_business)
-------------------------------------------------------*/
#include "trsfunc.h"
EXEC SQL INCLUDE SQLCA;
int main(int argc,char *argv[])
{
time_t t_bgn,t_end;
int t_use,t_hour,t_min,t_sec;
int icntfetch,icntinsert,icntupdate,icnterror,iret,iper;
FILE *fp;
char logfile[30],showmsg[80];
char xwdm1[9],xwdm2[9],xwdm3[9],xwdm4[9];
EXEC SQL BEGIN DECLARE SECTION;
/* 连接数据库所用的字段 */
char m_dbs[11];
char m_user[11];
char m_password[11];
char m_branch_code[4];
/*KS.B_BUSINESS信息*/
char m_business_code[5];
char m_business_name[21];
char m_change_type[5];
char m_business_comment[81];
char m_print_flag[2];
/*ztv40.czdmb*/
char m_czdm[5];
char m_cznr[21];
EXEC SQL END DECLARE SECTION;
EXEC SQL WHENEVER NOT FOUND CONTINUE;
EXEC SQL WHENEVER SQLWARNING CONTINUE;
EXEC SQL WHENEVER SQLERROR CONTINUE;
if ( argc != 5 && argc != 4 )
{ printf("ERROR:Parameter is less than 3!\n");
printf("Usage: %s dbs user password schema\n",argv[0]);
return 1;
}
strcpy(m_dbs,argv[1]);
strcpy(m_user,argv[2]);
strcpy(m_password,argv[3]);
if (argc == 5)
strcpy(m_branch_code,argv[4]);
else
strcpy(m_branch_code," ");
icntfetch=0;
icntinsert=0;
icntupdate=0;
icnterror=0;
iret=0;
iper=0;
strcpy(logfile,"data/");
strcat(logfile,argv[0]);
/*strcat(logfile,".txt");*/
if ( ( fp=fopen(logfile,"w+")) == NULL )
{ printf("Error:Open log file %s error!\n",logfile);
return 2;
}
strcpy(showmsg,"操作代码(czdmb)<表(b_business)");
printf("----------------%s:转换开始--------------\n",showmsg);
t_bgn=time(NULL);
EXEC SQL CONNECT TO :m_dbs USER :m_user USING :m_password;
if ( sqlca.sqlcode != 0 )
{ printf("ERROR:Fail to connect to %s!\n",m_dbs);
return 3;
}
EXEC SQL DECLARE c1 CURSOR WITH HOLD FOR
select BUSINESS_CODE,
BUSINESS_NAME,
CHANGE_TYPE,
BUSINESS_COMMENT,
PRINT_FLAG
from KS.B_BUSINESS
ORDER BY BUSINESS_CODE;
EXEC SQL OPEN c1;
while(1)
{
EXEC SQL FETCH c1 INTO :m_business_code,
:m_business_name,
:m_change_type,
:m_business_comment,
:m_print_flag;
if (SQLCODE) break;
icntfetch++;
memset(m_czdm ,0x0,sizeof(m_czdm ));
memset(m_cznr ,0x0,sizeof(m_cznr ));
/*以下进行数据转换赋值*/
strcpy(m_czdm,m_business_code);
strcpy(m_cznr,m_business_name);
fprintf(fp,"%-4s~",m_czdm );
fprintf(fp,"%20s",m_cznr );
fprintf(fp,"%c%c", 0x0D,0x0A );
icntinsert++;
if ( icntfetch % COMMITROWS == 0 )
{ if ( iper == 0 )
printf("%s: %d OK\n",showmsg,icntfetch);
else
printf("%s: %d %d%% FAILED!\n",showmsg,icntfetch,iper);
iper=0;
}
}
EXEC SQL CLOSE c1;
fclose(fp);
EXEC SQL CONNECT RESET;
printf("*************%s:数据转换结束***************\n",showmsg);
printf("共从旧表中取出%d条记录,共生成%d条新记录,有%d条错误!\n",
icntfetch,icntinsert,icnterror);
t_end=time(NULL);
t_use=t_end - t_bgn;
t_sec=t_use % 60;
t_min=t_use / 60;
t_min=t_min % 60;
t_hour=t_use/ 3600;
/* printf("处理共花时[%02d:%02d:%02d],每秒处理%d条记录\n",
t_hour,t_min,t_sec,icntfetch/t_use);
*/ exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -