Function Prototypes for ESQL/C 
Author Message
 Function Prototypes for ESQL/C

Dear Everybody,

I have got fed up with seeing questions about function prototypes for
ESQL/C, so I have put together the three include files in the following
shell archive.

FYI: the technique used to establish which function calls should be
included was to run strings(1) on $INFORMIXDIR/lib/esqlc (for each of the
versions 4.00, 4.10 and 5.00), and then look through this list for the
function calls that can be generated.  A couple of previous versions of
this have been floating around, some of them created by me.  The ones I
created contain far too many function prototypes; the other lists I have
seen are not actually complete.  I would suggest that they are discarded.

The lists for 4.00 and 4.10 are identical; the list for 5.00 is quite
different.  The files below for 4.00 and 4.10 are slightly different
because in 4.00 and 5.00, the undocumented function sqgetdbs() links OK; in
4.10, it is included in the library, but some functions which it calls are
not in the library (at least, on my Sun with 4.10.UC1).  The missing source
file is rfnmanip.o; it can be found in various other libraries (libfe.a,
libsace.a, libsperf.a), but that requires either I4GL-RDS, I4GL-ID or ISQL
on the machine as well as ESQL/C, and it requires an extra library
specified on the command line.

NB: none of these files includes the functions documented in the ESQL/C
manual are included, except sqlbreak(), sqlstart() and sqlexit().  Things
like the decimal, datetime, interval functions, nor things like egetmsg,
ldchar, stchar, and so on.  If someone else has typed in the function
templates, I'd be pleased to receive copies by e-mail.

NNB: beware of the comment in esql5_00.h about _iqlocate_cursor(); if you
are using an ANSI C compiler, you cannot have both a prototype and a
non-prototype declaration of a function in scope, and sqlhdr.h gives you a
non-prototyped declaration.  You either need to remove the prototype from
esql5_00.h or you need to remove the declaration from sqlhdr.h!

I am also preparing, in background mode, a list of FAQs (Frequently Asked
Questions) about Informix products for comp.databases.informix.  There are
a number of issues to be resolved with it, such as frequency of posting or
other availabilty, but questions, preferably with answers, are also going
to be required.  If you have any suggestions for this, please send me
e-mail with "FAQ:" at the start of the subject.

Thanks,


#! /bin/sh
#
#       This is a shell archive.
#       Remove everything above this line and run sh on the resulting file.
#       If this archive is complete, you will see this message at the end:
#       "All files extracted"
#
#       Created: Tue Apr 28 11:49:42 GMT 1992 by johnl at Informix Software Ltd.
#       Files archived in this archive:
#       esql4_00.h
#       esql4_10.h
#       esql5_00.h
#
#--------------------
if [ -f esql4_00.h -a "$1" != "-c" ]
then echo shar: esql4_00.h already exists
else
echo 'x - esql4_00.h (6556 characters)'
sed -e 's/^X//' >esql4_00.h <<'SHAR-EOF'

X*/
X
X/*TABSTOP=4*/
X
X/*
X** Function prototypes for functions found in:
X** Informix ESQL/C application-engine interface library Version 4.00.
X** List of names derived from output of "strings $INFORMIXDIR/lib/esqlc"
X** iec_stop() is called by WHENEVER ERROR STOP.
X*/
X
X#ifndef ESQL4_00_H
X#define ESQL4_00_H
X
X#include <sqlhdr.h>
X#include <sqlda.h>
X
X#ifdef MAIN_PROGRAM
X#ifndef lint

X#endif /*lint */
X#endif /*MAIN_PROGRAM */
X
X#ifdef __STDC__
X
Xextern int      _iqbeginwork(void);
Xextern int      _iqclose(register _SQCURSOR *cursor);
Xextern int      _iqcommit(void);
Xextern int      _iqcopen(register _SQCURSOR *cursor,
X                         int icnt,
X                         struct sqlvar_struct *ibind,
X                         struct sqlda *idesc,
X                         struct value *ivalues,
X                         int useflag);
Xextern int      _iqdatabase(char *db_name,
X                            int exclusive,
X                            int icnt,
X                            struct sqlvar_struct *ibind);
Xextern int      _iqdbclose(void);
Xextern int      _iqdclcur(register _SQCURSOR *cursor,
X                          register char *curname,
X                          register char **cmdtxt,
X                          register int icnt,
X                          register struct sqlvar_struct *ibind,
X                          register int ocnt,
X                          register struct sqlvar_struct *obind,
X                          register int flags);
Xextern int      _iqddclcur(register _SQCURSOR *cursor,
X                           register char *curname,
X                           register int flags);
Xextern int      _iqdscribe(register _SQCURSOR *cursor, struct sqlda **descp);
Xextern int      _iqeximm(char *stmt);
Xextern int      _iqflush(register _SQCURSOR *cursor);
Xextern int      _iqfree(register _SQCURSOR *cursor);
Xextern int      _iqftch(register _SQCURSOR *cursor,
X                        int ocnt,
X                        struct sqlvar_struct *obind,
X                        struct sqlda *odescriptor,
X                        int chkind);
Xextern int      _iqinsput(register _SQCURSOR *cursor,
X                          int icnt,
X                          struct sqlvar_struct *ibind,
X                          struct sqlda *idesc,
X                          struct value *ivalues);
Xextern int      _iqnftch(_SQCURSOR *cursor,
X                         int ocnt,
X                         struct sqlvar_struct *obind,
X                         struct sqlda *odescriptor,
X                         int fetch_type,
X                         long val,
X                         int icnt,
X                         struct sqlvar_struct *ibind,
X                         struct sqlda *idescriptor,
X                         int chkind);
Xextern int      _iqpclose(_SQCURSOR *cursor);
Xextern int      _iqpdclcur(_SQCURSOR *cursor,
X                           char *cursor_name,
X                           int statement_type,
X                           char *table_name,
X                           char **select_list,
X                           char **orderby_list,
X                           char **where_text,
X                           int icnt,
X                           struct sqlvar_struct *ibind,
X                           int ocnt,
X                           struct sqlvar_struct *obind,
X                           int for_update);
Xextern int      _iqpdelete(_SQCURSOR *cursor);
Xextern int      _iqpopen(_SQCURSOR *cursor,
X                         int icnt,
X                         struct sqlvar_struct *ibind,
X                         struct sqlda *idesc,
X                         struct value *ivalues,
X                         int useflag);
Xextern int      _iqpput(register _SQCURSOR *cursor,
X                        int icnt,
X                        struct sqlvar_struct *ibind,
X                        struct sqlda *idesc,
X                        struct value *ivalues);
Xextern int      _iqprepare(register _SQCURSOR *cursor, char *stmt);
Xextern int      _iqpupdate(_SQCURSOR *cursor,
X                           char **ucolumn_list,
X                           int icnt,
X                           struct sqlvar_struct *ibind);
Xextern int      _iqrollback(void);
Xextern int      _iqslct(register _SQCURSOR *cursor,
X                        char **cmdtxt,
X                        int icnt,
X                        struct sqlvar_struct *ibind,
X                        int ocnt,
X                        struct sqlvar_struct *obind,
X                        int chkind);
Xextern int      _iqstmnt(register _SQSTMT *scb,
X                         char **cmdtxt,
X                         int icnt,
X                         struct sqlvar_struct *ibind,
X                         struct value *ivalues);
Xextern int      _iqxecute(register _SQCURSOR *cursor,
X                          int icnt,
X                          struct sqlvar_struct *ibind,
X                          struct sqlda *idesc,
X                          struct value *ivalues);
Xextern int      iec_stop(void);
Xextern int      sqgetdbs(int *ret_fcnt,
X                         char **fnames,
X                         int fnsize,
X                         char *farea,
X                         int fasize);
Xextern int      sqlbreak(void);
Xextern int      sqlexit(void);
Xextern int      sqlstart(void);
X
X#else
X
Xextern int      _iqbeginwork();
Xextern int      _iqclose();
Xextern int      _iqcommit();
Xextern int      _iqcopen();
Xextern int      _iqdatabase();
Xextern int      _iqdbclose();
Xextern int      _iqdclcur();
Xextern int      _iqddclcur();
Xextern int      _iqdscribe();
Xextern int      _iqeximm();
Xextern int      _iqflush();
Xextern int      _iqfree();
Xextern int      _iqftch();
Xextern int      _iqinsput();
Xextern int      _iqnftch();
Xextern int      _iqpclose();
Xextern int      _iqpdclcur();
Xextern int      _iqpdelete();
Xextern int      _iqpopen();
Xextern int      _iqpput();
Xextern int      _iqprepare();
Xextern int      _iqpupdate();
Xextern int      _iqrollback();
Xextern int      _iqslct();
Xextern int      _iqstmnt();
Xextern int      _iqxecute();
Xextern int      iec_stop();
Xextern int      sqgetdbs();
Xextern int      sqlbreak();
Xextern int      sqlexit();
Xextern int      sqlstart();
X
X#endif /* __STDC__ */
X
X#endif /* ESQL4_00_H */
SHAR-EOF
chmod 444 esql4_00.h
if [ `wc -c <esql4_00.h` -ne 6556 ]
then echo shar: esql4_00.h unpacked with wrong size
fi
# end of overwriting check
fi
#--------------------
if [ -f esql4_10.h -a "$1" != "-c" ]
then echo shar: esql4_10.h already exists
else
echo 'x - esql4_10.h (6389 characters)'
sed -e 's/^X//' >esql4_10.h <<'SHAR-EOF'

X*/
X
X/*TABSTOP=4*/
X
X/*
X** Function prototypes for functions found in:
X** Informix ESQL/C application-engine interface library Version 4.10.
X** Same as for Version 4.00 except: sqgetdbs() does not link in 4.10!
X** List of names derived from output of "strings $INFORMIXDIR/lib/esqlc"
X** iec_stop() is called by WHENEVER ERROR STOP.
X*/
X
X#ifndef ESQL4_10_H
X#define ESQL4_10_H
X
X#include <sqlhdr.h>
X#include <sqlda.h>
X
X#ifdef MAIN_PROGRAM
X#ifndef lint

X#endif /*lint */
X#endif /*MAIN_PROGRAM */
X
X#ifdef __STDC__
X
Xextern int      _iqbeginwork(void);
Xextern int      _iqclose(register _SQCURSOR *cursor);
Xextern int      _iqcommit(void);
Xextern int      _iqcopen(register _SQCURSOR *cursor,
X                         int icnt,
X                         struct sqlvar_struct *ibind,
X                         struct sqlda *idesc,
X                         struct value *ivalues,
X                         int useflag);
Xextern int      _iqdatabase(char *db_name,
X                            int exclusive,
X                            int icnt,
X                            struct sqlvar_struct *ibind);
Xextern int      _iqdbclose(void);
Xextern int      _iqdclcur(register _SQCURSOR *cursor,
X                          register char *curname,
X                          register char **cmdtxt,
X                          register int icnt,
X                          register struct sqlvar_struct *ibind,
X                          register int ocnt,
X                          register struct sqlvar_struct *obind,
X                          register int flags);
Xextern int      _iqddclcur(register _SQCURSOR *cursor,
X                           register char *curname,
X                           register int flags);
Xextern int      _iqdscribe(register _SQCURSOR *cursor, struct sqlda **descp);
Xextern int      _iqeximm(char *stmt);
Xextern int      _iqflush(register _SQCURSOR *cursor);
Xextern int      _iqfree(register _SQCURSOR *cursor);
Xextern int      _iqftch(register _SQCURSOR *cursor,
X                        int ocnt,
X                        struct sqlvar_struct *obind,
X                        struct sqlda *odescriptor,
X                        int chkind);
Xextern int      _iqinsput(register _SQCURSOR *cursor,
X                          int icnt,
X                          struct sqlvar_struct *ibind,
X                          struct sqlda *idesc,
X                          struct value *ivalues);
Xextern int      _iqnftch(_SQCURSOR *cursor,
X                         int ocnt,
X                         struct sqlvar_struct *obind,
X                         struct sqlda *odescriptor,
X                         int fetch_type,
X                         long val,
X                         int icnt,
X                         struct sqlvar_struct *ibind,
X                         struct sqlda *idescriptor,
X                         int chkind);
Xextern int      _iqpclose(_SQCURSOR *cursor);
Xextern int      _iqpdclcur(_SQCURSOR *cursor,
X                           char *cursor_name,
X                           int statement_type,
X                           char *table_name,
X                           char **select_list,
X                           char **orderby_list,
X                           char **where_text,
X                           int icnt,
X                           struct sqlvar_struct *ibind,
X                           int ocnt,
X                           struct sqlvar_struct *obind,
X                           int for_update);
Xextern int      _iqpdelete(_SQCURSOR *cursor);
Xextern int      _iqpopen(_SQCURSOR *cursor,
X                         int icnt,
X                         struct sqlvar_struct *ibind,
X                         struct sqlda *idesc,
X                         struct value *ivalues,
X                         int useflag);
Xextern int      _iqpput(register _SQCURSOR *cursor,
X                        int icnt,
X                        struct sqlvar_struct *ibind,
X                        struct sqlda *idesc,
X                        struct value *ivalues);
Xextern int      _iqprepare(register _SQCURSOR *cursor, char *stmt);
Xextern int      _iqpupdate(_SQCURSOR *cursor,
X                           char **ucolumn_list,
X                           int icnt,
X                           struct sqlvar_struct *ibind);
Xextern int      _iqrollback(void);
Xextern int      _iqslct(register _SQCURSOR *cursor,
X                        char **cmdtxt,
X                        int icnt,
X                        struct sqlvar_struct *ibind,
X                        int ocnt,
X                        struct sqlvar_struct *obind,
X                        int chkind);
Xextern int      _iqstmnt(register _SQSTMT *scb,
X                         char **cmdtxt,
X                         int icnt,
X                         struct sqlvar_struct *ibind,
X                         struct value *ivalues);
Xextern int      _iqxecute(register _SQCURSOR *cursor,
X                          int icnt,
X                          struct sqlvar_struct *ibind,
X                          struct sqlda *idesc,
X                          struct value *ivalues);
Xextern int      iec_stop(void);
Xextern int      sqlbreak(void);
Xextern int      sqlexit(void);
Xextern int      sqlstart(void);
X
X#else
X
Xextern int      _iqbeginwork();
Xextern int      _iqclose();
Xextern int      _iqcommit();
Xextern int      _iqcopen();
Xextern int      _iqdatabase();
Xextern int      _iqdbclose();
Xextern int      _iqdclcur();
Xextern int      _iqddclcur();
Xextern int      _iqdscribe();
Xextern int      _iqeximm();
Xextern int      _iqflush();
Xextern int      _iqfree();
Xextern int      _iqftch();
Xextern int      _iqinsput();
Xextern int      _iqnftch();
Xextern int      _iqpclose();
Xextern int      _iqpdclcur();
Xextern int      _iqpdelete();
Xextern int      _iqpopen();
Xextern int      _iqpput();
Xextern int      _iqprepare();
Xextern int      _iqpupdate();
Xextern int      _iqrollback();
Xextern int      _iqslct();
Xextern int      _iqstmnt();
Xextern int      _iqxecute();
Xextern int      iec_stop();
Xextern int      sqlbreak();
Xextern int      sqlexit();
Xextern int      sqlstart();
X
X#endif /* __STDC__ */
X
X#endif /* ESQL4_10_H */
SHAR-EOF
chmod 444 esql4_10.h
if [ `wc -c <esql4_10.h` -ne 6389 ]
then echo shar: esql4_10.h unpacked with wrong size
fi
# end of overwriting check
fi
#--------------------
if [ -f esql5_00.h -a "$1" != "-c" ]
then echo shar: esql5_00.h already exists
else
echo 'x - esql5_00.h (5212 characters)'
sed -e 's/^X//' >esql5_00.h <<'SHAR-EOF'

X*/
X
X/*


X*/
X
X#ifndef ESQL5_00_H
X#define ESQL5_00_H
X
X#include <sqlhdr.h>
X#include <xa.h>
X#include <sqlda.h>
X#include <value.h>
X
X#ifdef MAIN_PROGRAM
X#ifndef lint

X#endif /* lint */
X#endif /* MAIN_PROGRAM */
X
X#ifdef __STDC__
X
Xextern _SQCURSOR *_iqlocate_cursor(register char *name,
X                                   int type,
X                                   int mode,
X                                   short cs_sens);
Xextern int      _iqalloc(char *descname, int occurrence);
Xextern int      _iqbeginwork(void);
Xextern int      _iqcdcl(register _SQCURSOR *cursor,
X                        char *curname,
X                        char **cmdtxt,
X                        struct sqlda *idesc,
X                        struct sqlda *odesc,
X                        int flags);
Xextern int      _iqcddcl(_SQCURSOR *cursor,
X                         char *curname,
X                         _SQCURSOR *stmt,
X                         int flags);
Xextern int      _iqcftch(_SQCURSOR *cursor,
X                         struct sqlda *idesc,
X                         struct sqlda *odesc,
X                         char *odesc_name,
X                         _FetchSpec *fetchspec);
Xextern int      _iqclose(register _SQCURSOR *cursor);
Xextern int      _iqcommit(void);
Xextern int      _iqcopen(_SQCURSOR *cursor,
X                         int icnt,
X                         struct sqlvar_struct *ibind,
X                         struct sqlda *idesc,
X                         struct value *ivalues,
X                         int useflag);
Xextern int      _iqcput(_SQCURSOR *cursor,
X                        struct sqlda *idesc,
X                        char *desc_name);
Xextern int      _iqcrproc(char *fname);
Xextern int      _iqdbase(char *db_name, int exclusive);
Xextern int      _iqdbclose(void);
Xextern int      _iqdcopen(register _SQCURSOR *cursor,
X                          struct sqlda *idesc,
X                          char *desc_name,
X                          struct value *ivalues,
X                          int useflag);
Xextern int      _iqdealloc(char *desc_name);
Xextern int      _iqdescribe(_SQCURSOR *cursor,
X                            struct sqlda **descp,
X                            char *desc_name);
Xextern int      _iqexecute(register _SQCURSOR *cursor,
X                           struct sqlda *idesc,
X                           char *desc_name,
X                           struct value *ivalues);
Xextern int      _iqeximm(char *stmt);
Xextern int      _iqexproc(register _SQCURSOR *cursor,
X                          char **cmdtxt,
X                          int icnt,
X                          struct sqlvar_struct *ibind,
X                          int ocnt,
X                          struct sqlvar_struct *obind,
X                          int chkind);
Xextern int      _iqflush(register _SQCURSOR *cursor);
Xextern int      _iqfree(register _SQCURSOR *cursor);
Xextern int      _iqgetdesc(char *desc_name,
X                           int sqlvar_num,
X                           struct hostvar_struct *hosttab,
X                           int xopen_flg);
Xextern int      _iqprepare(register _SQCURSOR *cursor, char *stmt);
Xextern int      _iqrollback(void);
Xextern int      _iqsetdesc(char *desc_name,
X                           int sqlvar_num,
X                           struct hostvar_struct *hosttab,
X                           int xopen_flg);
Xextern int      _iqslct(register _SQCURSOR *cursor,
X                        char **cmdtxt,
X                        int icnt,
X                        struct sqlvar_struct *ibind,
X                        int ocnt,
X                        struct sqlvar_struct *obind,
X                        int chkind);
Xextern int      _iqstmnt(register _SQSTMT *scb,
X                         char **cmdtxt,
X                         int icnt,
X                         struct sqlvar_struct *ibind,
X                         struct value *ivalues);
Xextern void     iec_stop(void);
X
X#else
X
Xextern _SQCURSOR *_iqlocate_cursor();
Xextern int      _iqalloc();
Xextern int      _iqbeginwork();
Xextern int      _iqcdcl();
Xextern int      _iqcddcl();
Xextern int      _iqcftch();
Xextern int      _iqclose();
Xextern int      _iqcommit();
Xextern int      _iqcopen();
Xextern int      _iqcput();
Xextern int      _iqcrproc();
Xextern int      _iqdbase();
Xextern int      _iqdbclose();
Xextern int      _iqdcopen();
Xextern int      _iqdealloc();
Xextern int      _iqdescribe();
Xextern int      _iqexecute();
Xextern int      _iqeximm();
Xextern int      _iqexproc();
Xextern int      _iqflush();
Xextern int      _iqfree();
Xextern int      _iqgetdesc();
Xextern int      _iqprepare();
Xextern int      _iqrollback();
Xextern int      _iqsetdesc();
Xextern int      _iqslct();
Xextern int      _iqstmnt();
Xextern void     iec_stop();
X
X#endif /* __STDC__ */
X
X#endif /* ESQL5_00_H */
SHAR-EOF
chmod 444 esql5_00.h
if [ `wc -c <esql5_00.h` -ne 5212 ]
then echo shar: esql5_00.h unpacked with wrong size
fi
# end of overwriting check
fi
echo All files extracted
exit 0



Sat, 15 Oct 1994 21:08:05 GMT
 
 [ 1 post ] 

 Relevant Pages 

1. Function Prototypes for ESQL/C

2. esql-c ANSI prototypes

3. ESQLC Function Prototypes for 5.00/5.02

4. header file containing function prototypes for esqlc-generated code

5. The function II* must have a prototype

6. header file with ingres library function prototypes

7. ESQL/C (System 10) - cs_convert function

8. Replacement for ESQL/C-Function "rdefmtdate()"

9. Linking C++ and ESQL/C (with dttofmtasc function) on UNIX

10. Using dttoasc function with ESQL and C++

11. Unresolved functions compiling 4GL and ESQL/C programs


 
Powered by phpBB® Forum Software