pro*C问题,高手们,帮帮忙吧

winnerjoanna 2004-05-09 04:42:33
pro*c作用户出口的相关例子,出现以下提示:确实没有'concat': Local函数的定义

程序如下:
int concat(char * cmd,int * cmdlen,char * msg,int msglen, int query)



{char * cp=cmd+7;
char * fp=(char *)&field.arr[0];
char errmsg[81];
int errlen;
/* EXEC SQL WHENEVER SQLERROR GOTO sqlerror; */

result.arr[0]='\0';
for(; * cp!='\0';cp++)
{
if(* cp!=',')
* fp++=* cp;
else
* fp='\0';
field.len=strlen(field.arr);。。。。
...全文
33 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
winnerjoanna 2004-05-13
  • 打赏
  • 举报
回复
tep.pc文件



#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "BaStdlib.h"

char *BaITB[1];
int BaITBCnt = 0;
char *BaOTB[1];
int BaOTBCnt = 0;
char *BaRTB[1];
int BaRTBCnt = 0;
char *BaIFile[1];
int BaIFileCnt = 0;
char *BaOFile[1];
int BaOFileCnt = 0;

static int PROCESSED_ROWS = 0;
static int PROCESSED_ROWS_TMP = 0;
static int PROCESSED_FLAG = 0;
static int BaCommit = 100;



int tep ( int, char **, char ** );
int Pretep ( int, char **, char ** );

//
// Pro*C Main for UNIX
//
int main ( int argc, char *argv[], char *envp[] ) {

int mrc = BA_MAINRETVALUE;

if ( setjmp(BaExceptVec) ) {
return mrc;
}

// Exception signals
//BatoolSetSignals();

// JobStep begin
mrc = Pretep(argc, argv, envp);

return mrc;

}

//
// Pre Jobstep
//
int Pretep( int argc, char *argv[], char *envp[] ) {

int rc, exitcode = 0;


// Start Jobstep
rc = tep(argc, argv, envp);

//rc = BatoolCleanAll();

return exitcode;

}

int tep ( int argc, char *argv[], char *envp[] ) {

int rc = 0, eos = 0;
char *PROGRAM_ID = (char *)"tep";

#define min(a,b) ((a<b)? a:b)
#include <stdio.h>

EXEC SQL BEGIN DECLARE SECTION;

VARCHAR field[81];
VARCHAR value[81];
VARCHAR result[241];
EXEC SQL END DECLARE SECTION;



EXEC SQL INCLUDE sqlca;
int concat(char * cmd,int cmdlen,char * msg,int msglen,int query)



{char * cp=cmd+7;
char * fp=(char *)&field.arr[0];
char errmsg[81];
int errlen;
EXEC SQL WHENEVER SQLERROR GOTO sqlerror;
result.arr[0]='\0';
for(; * cp!='\0';cp++)
{
if(* cp!=',')
* fp++=* cp;
else
* fp='\0';
field.len=strlen(field.arr);
EXEC IAF GET :field INTO :value;
value.arr[value.len]='\0';
strcat(result.arr,value.arr);
fp=(char *)& field.arr[0];
}

field.len=strlen(field.arr);
result.len=strlen(result.arr);
EXEC IAF PUT :field VALUES(:result);
return(IAPSUCC);

sqlerror:
strcpy(errmsg,"CONCAT:");
strncat(errmsg,sqlca.sqlerrm,sqlerrmc,min(72,sqlca.sqlerrm.sqlerrml));
errlen=strlen(errmsg);
sqliem(errmsg,&errlen);
return(IAPFAIL);
}


return rc;
}
winnerjoanna 2004-05-13
  • 打赏
  • 举报
回复
我的是日文系统, 'concat' : ローカル関数の定義が正しくありません
ckc 2004-05-13
  • 打赏
  • 举报
回复
把你的程序简化,直到不出现错误或者很短可以贴上来让大家看看
另外,把错误的原始文本贴上来
winnerjoanna 2004-05-11
  • 打赏
  • 举报
回复
??
Tomato77 2004-05-10
  • 打赏
  • 举报
回复
up
winnerjoanna 2004-05-10
  • 打赏
  • 举报
回复
它的包含文件怎么查啊,在哪有啊?
stgd 2004-05-10
  • 打赏
  • 举报
回复
??顶
hot.wind 2004-05-09
  • 打赏
  • 举报
回复
检查concat函数的包含文件看看。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧