1,195
社区成员




void Query()
{
char *datainfo;
char c_DateTime[50]; /*输出的时间变量*/
int i = 0;
int j=0;
GetDateTime(c_DateTime);
char msg[DEFAULT_FILEBUFFER_LEN];
char C_SP_TYPE_CODE[DEFAULT_FILEBUFFER_LEN];
EXEC SQL INCLUDE SQLCA;
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR count[20];
VARCHAR c_SqlStr[5000];
VARCHAR SP_TYPE[20];
VARCHAR SP_TYPE_CODE[DEFAULT_BUF_SIZE];
EXEC SQL END DECLARE SECTION;
strcpy ((char *)c_SqlStr.arr,param.c_SqlStr);
if (ConnectDB(param.USER_PASSWORD) == 0)
{
EXEC SQL SELECT count(*) INTO :count FROM TD_B_SPTYPE;
if (sqlca.sqlcode < 0)
{
DisconnectDB(); /*断开数据库连接*/
printf("建立游标错误!错误代码:%d\n", sqlca.sqlcode);
exit(-1);
}
strcpy((char*)msg, (char*)count.arr);
if ((in_fp = fopen(param.FILENAME, "w")) != NULL)
{
printf("打开%s文件成功\n\n", param.FILENAME);
printf("---------------------%s 开始处理数据---------------------\n\n", c_DateTime);
if (setvbuf(in_fp, msg, _IONBF, DEFAULT_FILEBUFFER_LEN) != 0)
printf("设置缓冲失败\n");
else
{
printf("设置缓冲成功:%d\n", setvbuf(in_fp, msg, _IONBF, DEFAULT_FILEBUFFER_LEN));
}
EXEC SQL PREPARE s from :c_SqlStr;
EXEC SQL DECLARE cur_out CURSOR for s;
EXEC SQL OPEN cur_out;
EXEC SQL WHENEVER NOT FOUND GOTO notfound;
for (;;)
{
EXEC SQL FETCH cur_out into :SP_TYPE_CODE;
printf("%s\n",SP_TYPE_CODE);
/*EXEC SQL ;*/
strcpy((char*)C_SP_TYPE_CODE, (char*)SP_TYPE_CODE.arr);
while (C_SP_TYPE_CODE[i] && (i < strlen(C_SP_TYPE_CODE)))
{SELECT replace(replace(SP_TYPE_CODE||chr(01)||SP_TYPE,chr(10)),chr(13)) INTO :SP_TYPE_CODE FROM TD_B_SPTYPE where SP_TYPE_CODE='66'
fputc(C_SP_TYPE_CODE[i], in_fp);
i++;
}
}
notfound:
EXEC SQL CLOSE cur_out;
EXEC SQL COMMIT RELEASE;
printf("Have a good day!\n");
exit(0);
printf("--------------------------共处理%d条数据---------------------------\n\n", msg);
fclose(in_fp);
}
}
}