/* ===== esqltest.c =====*/ /* ===== NT doesn't need the following... */ #ifndef WIN32 #define WIN32 #endif #define _loadds #define _SQLPREP_ #include #include #include #define SQLLENMAX(x) ( ((x) > 32767) ? 32767 : (x) ) short ESQLAPI _loadds sqlaaloc( unsigned short usSqlDaId, unsigned short sqld, unsigned short stmt_id, void far *spare); short ESQLAPI _loadds sqlxcall( unsigned short usCallType, unsigned short usSection, unsigned short usSqldaInId, unsigned short usSqlDaOutId, unsigned short usSqlTextLen, char far *lpszSQLText); short ESQLAPI _loadds sqlacall( unsigned short usCallType, unsigned short usSection, unsigned short usSqldaInId, unsigned short usSqlDaOutId, void far *spare); short ESQLAPI _loadds sqladloc( unsigned short usSqldaInId, void far *spare); short ESQLAPI _loadds sqlasets( unsigned short cbSqlText, void far *lpvSqlText, void far *spare); short ESQLAPI _loadds sqlasetv( unsigned short usSqldaInId, unsigned short sqlvar_index, unsigned short sqltype, unsigned short sqllen, void far *sqldata, void far *sqlind, void far *spare); short ESQLAPI _loadds sqlastop( void far *spare); short ESQLAPI _loadds sqlastrt( void far *pid, void far *spare, void far *sqlca); short ESQLAPI _loadds sqlausda( unsigned short sqldaId, void far *lpvSqlDa, void far *spare); extern struct tag_sqlca far sql_sqlca; extern struct tag_sqlca far *sqlca; struct sqla_program_id2 { unsigned short length; unsigned short rp_rel_num; unsigned short db_rel_num; unsigned short bf_rel_num; unsigned char sqluser[30]; unsigned char sqlusername[30]; unsigned char planname[256]; unsigned char contoken[8]; unsigned char buffer[8]; }; static struct sqla_program_id2 program_id = {340,2,0,0," ","","esqltest","UUUMEELp"," "}; static void far* pid = &program_id; #line 1 "esqltest.sqc" #line 1 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #pragma once #line 18 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 25 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #pragma pack(push,8) #line 34 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 49 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 50 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 57 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 66 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 67 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" typedef unsigned int size_t; #line 73 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" typedef unsigned short wchar_t; #line 80 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" typedef wchar_t wint_t; typedef wchar_t wctype_t; #line 87 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 88 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" typedef char * va_list; #line 99 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 101 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 108 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 110 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 141 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_tmpfname; }; typedef struct _iobuf FILE; #line 159 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 172 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 185 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 214 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 215 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" extern FILE _iob[]; #line 222 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 232 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" typedef __int64 fpos_t; #line 243 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 244 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 247 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" int __cdecl _filbuf(FILE *); int __cdecl _flsbuf(int, FILE *); FILE * __cdecl _fsopen(const char *, const char *, int); #line 283 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" void __cdecl clearerr(FILE *); int __cdecl fclose(FILE *); int __cdecl _fcloseall(void); FILE * __cdecl _fdopen(int, const char *); #line 293 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" int __cdecl feof(FILE *); int __cdecl ferror(FILE *); int __cdecl fflush(FILE *); int __cdecl fgetc(FILE *); int __cdecl _fgetchar(void); int __cdecl fgetpos(FILE *, fpos_t *); char * __cdecl fgets(char *, int, FILE *); int __cdecl _fileno(FILE *); #line 307 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" int __cdecl _flushall(void); FILE * __cdecl fopen(const char *, const char *); int __cdecl fprintf(FILE *, const char *, ...); int __cdecl fputc(int, FILE *); int __cdecl _fputchar(int); int __cdecl fputs(const char *, FILE *); size_t __cdecl fread(void *, size_t, size_t, FILE *); FILE * __cdecl freopen(const char *, const char *, FILE *); int __cdecl fscanf(FILE *, const char *, ...); int __cdecl fsetpos(FILE *, const fpos_t *); int __cdecl fseek(FILE *, long, int); long __cdecl ftell(FILE *); size_t __cdecl fwrite(const void *, size_t, size_t, FILE *); int __cdecl getc(FILE *); int __cdecl getchar(void); int __cdecl _getmaxstdio(void); char * __cdecl gets(char *); int __cdecl _getw(FILE *); void __cdecl perror(const char *); int __cdecl _pclose(FILE *); FILE * __cdecl _popen(const char *, const char *); int __cdecl printf(const char *, ...); int __cdecl putc(int, FILE *); int __cdecl putchar(int); int __cdecl puts(const char *); int __cdecl _putw(int, FILE *); int __cdecl remove(const char *); int __cdecl rename(const char *, const char *); void __cdecl rewind(FILE *); int __cdecl _rmtmp(void); int __cdecl scanf(const char *, ...); void __cdecl setbuf(FILE *, char *); int __cdecl _setmaxstdio(int); int __cdecl setvbuf(FILE *, char *, int, size_t); int __cdecl _snprintf(char *, size_t, const char *, ...); int __cdecl sprintf(char *, const char *, ...); int __cdecl sscanf(const char *, const char *, ...); char * __cdecl _tempnam(const char *, const char *); FILE * __cdecl tmpfile(void); char * __cdecl tmpnam(char *); int __cdecl ungetc(int, FILE *); int __cdecl _unlink(const char *); int __cdecl vfprintf(FILE *, const char *, va_list); int __cdecl vprintf(const char *, va_list); int __cdecl _vsnprintf(char *, size_t, const char *, va_list); int __cdecl vsprintf(char *, const char *, va_list); #line 363 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" FILE * __cdecl _wfsopen(const wchar_t *, const wchar_t *, int); #line 369 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" wint_t __cdecl fgetwc(FILE *); wint_t __cdecl _fgetwchar(void); wint_t __cdecl fputwc(wint_t, FILE *); wint_t __cdecl _fputwchar(wint_t); wint_t __cdecl getwc(FILE *); wint_t __cdecl getwchar(void); wint_t __cdecl putwc(wint_t, FILE *); wint_t __cdecl putwchar(wint_t); wint_t __cdecl ungetwc(wint_t, FILE *); wchar_t * __cdecl fgetws(wchar_t *, int, FILE *); int __cdecl fputws(const wchar_t *, FILE *); wchar_t * __cdecl _getws(wchar_t *); int __cdecl _putws(const wchar_t *); int __cdecl fwprintf(FILE *, const wchar_t *, ...); int __cdecl wprintf(const wchar_t *, ...); int __cdecl _snwprintf(wchar_t *, size_t, const wchar_t *, ...); int __cdecl swprintf(wchar_t *, const wchar_t *, ...); int __cdecl vfwprintf(FILE *, const wchar_t *, va_list); int __cdecl vwprintf(const wchar_t *, va_list); int __cdecl _vsnwprintf(wchar_t *, size_t, const wchar_t *, va_list); int __cdecl vswprintf(wchar_t *, const wchar_t *, va_list); int __cdecl fwscanf(FILE *, const wchar_t *, ...); int __cdecl swscanf(const wchar_t *, const wchar_t *, ...); int __cdecl wscanf(const wchar_t *, ...); FILE * __cdecl _wfdopen(int, const wchar_t *); FILE * __cdecl _wfopen(const wchar_t *, const wchar_t *); FILE * __cdecl _wfreopen(const wchar_t *, const wchar_t *, FILE *); void __cdecl _wperror(const wchar_t *); FILE * __cdecl _wpopen(const wchar_t *, const wchar_t *); int __cdecl _wremove(const wchar_t *); wchar_t * __cdecl _wtempnam(const wchar_t *, const wchar_t *); wchar_t * __cdecl _wtmpnam(wchar_t *); #line 414 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 415 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 418 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" int __cdecl fcloseall(void); FILE * __cdecl fdopen(int, const char *); int __cdecl fgetchar(void); int __cdecl fileno(FILE *); int __cdecl flushall(void); int __cdecl fputchar(int); int __cdecl getw(FILE *); int __cdecl putw(int, FILE *); int __cdecl rmtmp(void); char * __cdecl tempnam(const char *, const char *); int __cdecl unlink(const char *); #line 463 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #pragma pack(pop) #line 471 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 473 "C:\\PROGRA~1\\MICROS~4\\VC98\\INCLUDE\\stdio.h" #line 2 "esqltest.sqc" #line 3 /* EXEC SQL BEGIN DECLARE SECTION; */ #line 3 char serverDatabase[40]; char userPassword[40]; struct Salespeople_rec{ int Snum; char Sname[30]; char City[30]; double Comm; }; #line 14 /* EXEC SQL END DECLARE SECTION; */ #line 14 void sql_error(){ #line 17 /* EXEC SQL WHENEVER SQLERROR CONTINUE; */ #line 17 printf("SQL Code = %li\n" ,SQLCODE); printf("SQL Server Message %li: %s\n" ,SQLERRD1 ,SQLERRMC); #line 20 /* EXEC SQL ROLLBACK TRANSACTION; */ #line 20 #line 20 { #line 20 sqlastrt((void far *)pid, (void far *)0, (struct tag_sqlca far *)sqlca); #line 20 sqlxcall(28, 0, 0, 0, 23, (char far *)" ROLLBACK TRANSACTION "); #line 20 SQLCODE = sqlca->sqlcode; #line 20 sqlastop((void far *)0L); #line 20 } #line 21 exit(1); } int main(int argc ,char* argv[]){ #line 25 /* EXEC SQL BEGIN DECLARE SECTION; */ #line 25 struct Salespeople_rec sales_rec; int Snum; char Sname[30]; char City[30]; double Comm; #line 31 /* EXEC SQL END DECLARE SECTION; */ #line 31 #line 33 /* EXEC SQL WHENEVER SQLERROR CALL sql_error(); */ #line 33 strcpy(serverDatabase ,"cafeaulait.lesson"); strcpy(userPassword ,"sa."); #line 37 /* EXEC SQL CONNECT TO :serverDatabase USER :userPassword; */ #line 38 #line 37 { #line 37 sqlastrt((void far *)pid, (void far *)0, (struct tag_sqlca far *)sqlca); #line 37 sqlaaloc(2, 2, 1, (void far *)0); #line 37 sqlasetv(2, 0, 462, (short) SQLLENMAX(sizeof(serverDatabase)), (void far *)serverDatabase, (void far *)0, (void far *)0L); #line 37 sqlasetv(2, 1, 462, (short) SQLLENMAX(sizeof(userPassword)), (void far *)userPassword, (void far *)0, (void far *)0L); #line 37 sqlxcall(30, 1, 2, 0, 50, (char far *)" CONNECT TO @p1 USER @p2 "); #line 37 SQLCODE = sqlca->sqlcode; #line 37 #line 37 if(sqlca->sqlcode < 0) { #line 37 sqlastop((void far *)0L); #line 37 sql_error() ; #line 37 } sqlastop((void far *)0L); #line 37 } #line 39 #line 40 /* EXEC SQL DECLARE cursor_salespeople CURSOR FOR SELECT Snum ,Sname ,City ,Comm FROM Salespeople; */ #line 41 #line 43 /* EXEC SQL OPEN cursor_salespeople; */ #line 43 #line 43 { #line 43 sqlastrt((void far *)pid, (void far *)0, (struct tag_sqlca far *)sqlca); #line 43 sqlxcall(26, 2, 0, 0, 82, (char far *)"/* cursor_salespeople 2 nohold */ SELECT Snum ,Sname ,City ,Comm FROM Salespeople "); #line 43 SQLCODE = sqlca->sqlcode; #line 43 #line 43 if(sqlca->sqlcode < 0) { #line 43 sqlastop((void far *)0L); #line 43 sql_error() ; #line 43 } sqlastop((void far *)0L); #line 43 } #line 44 while(1){ #line 45 /* EXEC SQL FETCH cursor_salespeople INTO :sales_rec; */ #line 45 #line 45 { #line 45 sqlastrt((void far *)pid, (void far *)0, (struct tag_sqlca far *)sqlca); #line 45 sqlaaloc(1, 4, 2, (void far *)0); #line 45 sqlasetv(1, 0, 496,(short) SQLLENMAX(sizeof((sales_rec).Snum)),(void far *)&(sales_rec).Snum, (void far *)0,0L); #line 45 sqlasetv(1, 1, 462,(short) SQLLENMAX(sizeof((sales_rec).Sname)),(void far *)&(sales_rec).Sname, (void far *)0,0L); #line 45 sqlasetv(1, 2, 462,(short) SQLLENMAX(sizeof((sales_rec).City)),(void far *)&(sales_rec).City, (void far *)0,0L); #line 45 sqlasetv(1, 3, 480,(short) SQLLENMAX(sizeof((sales_rec).Comm)),(void far *)&(sales_rec).Comm, (void far *)0,0L); #line 45 sqlxcall(25, 2, 0, 1, 106, (char far *)" FETCH cursor_salespeople INTO : ,: ,: ,: "); #line 45 SQLCODE = sqlca->sqlcode; #line 45 #line 45 if(sqlca->sqlcode < 0) { #line 45 sqlastop((void far *)0L); #line 45 sql_error() ; #line 45 } sqlastop((void far *)0L); #line 45 } #line 46 if (SQLCODE != 0) break; printf("%d %s %s &d" ,sales_rec.Snum ,sales_rec.Sname ,sales_rec.City ,sales_rec.Comm); } #line 52 /* EXEC SQL DISCONNECT ALL; */ #line 52 #line 52 { #line 52 sqlastrt((void far *)pid, (void far *)0, (struct tag_sqlca far *)sqlca); #line 52 sqlxcall(36, 3, 0, 0, 17, (char far *)" DISCONNECT ALL "); #line 52 SQLCODE = sqlca->sqlcode; #line 52 #line 52 if(sqlca->sqlcode < 0) { #line 52 sqlastop((void far *)0L); #line 52 sql_error() ; #line 52 } sqlastop((void far *)0L); #line 52 } #line 53 } long SQLCODE;