Re: Function Prototypes for ESQL/C
Posted in 1992
>From: uunet!esd.dl.nec.com!forney (Elizabeth (Liz) J. Forney) >Subject: Function Prototypes for ESQL/C >Date: 8 Oct 92 16:31:05 GMT >X-Informix-List-Id: <news.1939> > >Back in April Jonathan Leffler from Informix posted ".h" files that >contained the function prototypes for ESQL/C. I have recently upgraded >from 4.10 ESQL/C to 5.00 ESQL/C, and need to flush out the differences >between the prototype function declarations between the two versions. > >In particular, did the prototype declaration for sqgetdbs (to obtain a list >of databases known to OnLine change.) > >Jonathan - or anyone else know the answer! > >Thanks, >Liz Forney, >Software Engineer >NEC America, Inc. Liz, No, sqgetdbs didn't change. I enclose the May version of the headers I sent out previously. The major difference is that I have trimmed down the list of functions to those which can be placed in the code generated by the ESQL/C compiler. The other functions cannot be called directly by the generated code. I found this list of functions by running strings(1) on the $INFORMIXDIR/lib/esqlc executable and looking hard at the results. This list is somewhat more manageable. There is also an include file for the documented library functions supplied with 5.00 -- I believe there are no compatability problems with earlier releases of the software. I must point out two disclaimers. 1. Informix Software does not support or provide this interface. It was produced in my spare time -- and is maintained in my "spare" time. 2. I have tested the headers against an ANSI compliant compiler, but I still can't guarantee there are no bugs in the code. I trust this is of sufficient interest to the NET-world to justify posting rather than mailing direct Liz. Yours, Jonathan Leffler (johnl@obelix.informix.com) #include <disclaimer.h> : "@(#)shar.sh 1.8" #! /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: Sun Oct 11 17:48:49 GMT 1992 by johnl at Informix Software Ltd. # Files archived in this archive: # esql4_00.h # esql4_10.h # esql5_00.h # esqlc.h # esqllib.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@(#)File: esql4_00.h X@(#)Version: 1.1 X@(#)Last changed: 92/05/09 X@(#)Purpose: Function prototypes for ESQL/C Version 4.00 or Version 4.10 X@(#)Author: J Leffler X@(#)Copyright: (C) JLSS 1992 X@(#)Product: :PRODUCT: 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 Xstatic char esql4_00_h[] = "@(#)esql4_00.h 1.1 92/05/09"; 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