unresolved externals sqlcxt and sqlorat

From: Gary Beckler <gary_l_beckler_nonlilly_at_lilly.com>
Date: Fri, 22 Sep 2000 13:43:59 GMT
Message-ID: <01c0249b$ec4a5880$61c80928_at_PC07AH6T64WC>


I am receiving a linker error messages that the two functions "sqlcxt" and "sqlorat" are undefined externals. Code was generated to call sqlcxt as a result of precompilation for Pro*C. For sqlcxt, the Pro*C precompiler is converting the code

    EXEC SQL

        SELECT PART_CODE, PART_DESC_TEXT into :item_code, :item_desc
                   FROM PMX_PART
                WHERE PART_ID = TO_CHAR(:item_id_in); 

to the following code:

/* File name & Package Name */
struct sqlcxp
{
  unsigned short fillen;

           char filnam[8];
};
static struct sqlcxp sqlfpn =
{

    7,
    "gen5.pc"
};

static unsigned long sqlctx = 8835;

static struct sqlexd {

   unsigned int sqlvsn;
   unsigned int arrsiz;
   unsigned int iters;

   unsigned int   offset;
   unsigned short selerr;
   unsigned short sqlety;
   unsigned int   unused;
            short *cud;
   unsigned char  *sqlest;
            char  *stmt;
   unsigned char  **sqphsv;
   unsigned int   *sqphsl;
            short **sqpind;
   unsigned int   *sqparm;

   unsigned int **sqparc;
   unsigned char *sqhstv[9];
   unsigned int sqhstl[9];

            short *sqindv[9];
   unsigned int sqharm[9];
   unsigned int *sqharc[9];
} sqlstm = {8,9};

/* Prototypes */
extern sqlcxt (/*_ void **, unsigned long *,

                   struct sqlexd *, struct sqlcxp * _*/);
extern sqlcx2t(/*_ void **, unsigned long *,
                   struct sqlexd *, struct sqlcxp * _*/);
extern sqlbuft(/*_ void **, char * _*/);
extern sqlgs2t(/*_ void **, char * _*/); extern sqlorat(/*_ void **, unsigned long *, void * _*/);

.
.
.

    struct sqlexd sqlstm;

    sqlstm.sqlvsn = 8;
    sqlstm.arrsiz = 3;
    sqlstm.stmt = "select PART_CODE ,PART_DESC_TEXT into :b0,:b1  from
PMX_P\ART where PART_ID=TO_CHAR(:b2)";
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )2;
    sqlstm.selerr = (unsigned short)1;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)0;
    sqlstm.sqhstv[0] = (unsigned char  *)&item_code;
    sqlstm.sqhstl[0] = (unsigned int  )18;
    sqlstm.sqindv[0] = (         short *)0;
    sqlstm.sqharm[0] = (unsigned int  )0;
    sqlstm.sqhstv[1] = (unsigned char  *)&item_desc;
    sqlstm.sqhstl[1] = (unsigned int  )52;
    sqlstm.sqindv[1] = (         short *)0;
    sqlstm.sqharm[1] = (unsigned int  )0;
    sqlstm.sqhstv[2] = (unsigned char  *)&item_id_in;
    sqlstm.sqhstl[2] = (unsigned int  )23;
    sqlstm.sqindv[2] = (         short *)0;
    sqlstm.sqharm[2] = (unsigned int  )0;
    sqlstm.sqphsv = sqlstm.sqhstv;
    sqlstm.sqphsl = sqlstm.sqhstl;
    sqlstm.sqpind = sqlstm.sqindv;
    sqlstm.sqparm = sqlstm.sqharm;
    sqlstm.sqparc = sqlstm.sqharc;

    sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);

I can't find any info on either function. Should another include file be included at precompile or compile time? Should another library be included?

Thanks,
Gary Beckler Received on Fri Sep 22 2000 - 15:43:59 CEST

Original text of this message