/* ===== beispiel.c =====*/ /* ===== NT doesn't need the following... */ #ifndef WIN32 #define WIN32 #endif #define _loadds #define _SQLPREP_ #include <sqlca.h> #include <sqlda.h> #include <string.h> #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," ","","beispiel","JJJZOaFt"," "}; static void far* pid = &program_id; #line 1 "beispiel.sqc" #line 1 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #pragma once #line 18 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #line 25 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #line 41 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #line 42 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #line 48 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #line 57 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #line 58 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #line 68 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #line 69 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #line 80 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" extern int errno; #line 82 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" typedef int ptrdiff_t; #line 90 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" typedef unsigned int size_t; #line 96 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" typedef unsigned short wchar_t; #line 102 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #line 116 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stddef.h" #line 2 "beispiel.sqc" #line 1 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #pragma once #line 18 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 25 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #pragma pack(push,8) #line 34 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 57 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" typedef wchar_t wint_t; typedef wchar_t wctype_t; #line 87 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 88 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" typedef char * va_list; #line 99 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 101 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 108 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 110 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 141 "C:\\Programme\\Microsoft Visual Studio\\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:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 172 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 185 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" extern FILE _iob[]; #line 222 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 232 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" typedef __int64 fpos_t; #line 243 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 244 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 247 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" int __cdecl _filbuf(FILE *); int __cdecl _flsbuf(int, FILE *); FILE * __cdecl _fsopen(const char *, const char *, int); #line 283 "C:\\Programme\\Microsoft Visual Studio\\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:\\Programme\\Microsoft Visual Studio\\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:\\Programme\\Microsoft Visual Studio\\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:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" FILE * __cdecl _wfsopen(const wchar_t *, const wchar_t *, int); #line 369 "C:\\Programme\\Microsoft Visual Studio\\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:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 415 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 418 "C:\\Programme\\Microsoft Visual Studio\\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:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #pragma pack(pop) #line 471 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 473 "C:\\Programme\\Microsoft Visual Studio\\VC98\\include\\stdio.h" #line 3 "beispiel.sqc" void ErrorHandler (void) {printf("%li %li %li\n", SQLCODE, SQLERRD1, SQLERRMC); } int main ( int argc, char** argv, char** envp) { #line 6 /* EXEC SQL BEGIN DECLARE SECTION; */ #line 6 char server[] = "arnold.uni"; char loginPasswort[] = "erika.mustermann"; int persnr; char name[20]; char rang[3]; int raum; char gebdatum[17]; short raum_ind; char eingaberang[3]; #line 16 /* EXEC SQL END DECLARE SECTION; */ #line 16 #line 18 /* EXEC SQL WHENEVER SQLERROR CALL ErrorHandler(); */ #line 18 #line 19 /* EXEC SQL CONNECT TO :server USER :loginPasswort; */ #line 19 #line 19 { #line 19 sqlastrt((void far *)pid, (void far *)0, (struct tag_sqlca far *)sqlca); #line 19 sqlaaloc(2, 2, 1, (void far *)0); #line 19 sqlasetv(2, 0, 462, (short) SQLLENMAX(sizeof(server)), (void far *)server, (void far *)0, (void far *)0L); #line 19 sqlasetv(2, 1, 462, (short) SQLLENMAX(sizeof(loginPasswort)), (void far *)loginPasswort, (void far *)0, (void far *)0L); #line 19 sqlxcall(30, 1, 2, 0, 43, (char far *)" CONNECT TO @p1 USER @p2 "); #line 19 SQLCODE = sqlca->sqlcode; #line 19 #line 19 if(sqlca->sqlcode < 0) { #line 19 sqlastop((void far *)0L); #line 19 ErrorHandler() ; #line 19 } sqlastop((void far *)0L); #line 19 } #line 20 if (SQLCODE == 0) printf("Verbindung aufgebaut!\n"); else { printf("Keine Verbindung\n"); return (1); } printf("Bitte Rang eingeben: "); scanf("%s", eingaberang); printf("Mit Rang %s gespeichert:\n", eingaberang); #line 26 /* EXEC SQL DECLARE C1 CURSOR FOR SELECT PersNr, Name, Rang, Raum, Gebdatum FROM Professoren WHERE Rang = :eingaberang; */ #line 29 #line 30 /* EXEC SQL OPEN C1; */ #line 30 #line 30 { #line 30 sqlastrt((void far *)pid, (void far *)0, (struct tag_sqlca far *)sqlca); #line 30 sqlaaloc(2, 1, 2, (void far *)0); #line 30 sqlasetv(2, 0, 462, (short) SQLLENMAX(sizeof(eingaberang)), (void far *)eingaberang, (void far *)0, (void far *)0L); #line 30 sqlxcall(26, 2, 2, 0, 113, (char far *)"/* C1 2 nohold */ SELECT PersNr, Name, Rang, Raum, Gebdatum FROM Professoren WHERE Rang = @p1 "); #line 30 SQLCODE = sqlca->sqlcode; #line 30 #line 30 if(sqlca->sqlcode < 0) { #line 30 sqlastop((void far *)0L); #line 30 ErrorHandler() ; #line 30 } sqlastop((void far *)0L); #line 30 } #line 31 #line 31 /* EXEC SQL FETCH C1 INTO :persnr, :name, :rang, :raum INDICATOR :raum_ind, :gebdatum; */ #line 32 #line 31 { #line 31 sqlastrt((void far *)pid, (void far *)0, (struct tag_sqlca far *)sqlca); #line 31 sqlaaloc(1, 5, 2, (void far *)0); #line 31 sqlasetv(1, 0, 496,(short) SQLLENMAX(sizeof(persnr)),(void far *)&persnr, (void far *)0,0L); #line 31 sqlasetv(1, 1, 462,(short) SQLLENMAX(sizeof(name)),(void far *)&name, (void far *)0,0L); #line 31 sqlasetv(1, 2, 462,(short) SQLLENMAX(sizeof(rang)),(void far *)&rang, (void far *)0,0L); #line 31 sqlasetv(1, 3, 497,(short) SQLLENMAX(sizeof(raum)),(void far *)&raum, (void far *)&raum_ind,0L); #line 31 sqlasetv(1, 4, 462,(short) SQLLENMAX(sizeof(gebdatum)),(void far *)&gebdatum, (void far *)0,0L); #line 31 sqlxcall(25, 2, 0, 1, 82, (char far *)" FETCH C1 INTO : , : , : , : : , : "); #line 31 SQLCODE = sqlca->sqlcode; #line 31 #line 31 if(sqlca->sqlcode < 0) { #line 31 sqlastop((void far *)0L); #line 31 ErrorHandler() ; #line 31 } sqlastop((void far *)0L); #line 31 } #line 33 while (SQLCODE == 0){ printf("%d %s %s", persnr, name, rang); if(raum_ind == -1) printf(" ???"); else printf("%4d", raum); printf(" %s\n", gebdatum); #line 39 /* EXEC SQL FETCH C1 INTO :persnr, :name, :rang, :raum INDICATOR :raum_ind, :gebdatum; */ #line 40 #line 39 { #line 39 sqlastrt((void far *)pid, (void far *)0, (struct tag_sqlca far *)sqlca); #line 39 sqlaaloc(1, 5, 2, (void far *)0); #line 39 sqlasetv(1, 0, 496,(short) SQLLENMAX(sizeof(persnr)),(void far *)&persnr, (void far *)0,0L); #line 39 sqlasetv(1, 1, 462,(short) SQLLENMAX(sizeof(name)),(void far *)&name, (void far *)0,0L); #line 39 sqlasetv(1, 2, 462,(short) SQLLENMAX(sizeof(rang)),(void far *)&rang, (void far *)0,0L); #line 39 sqlasetv(1, 3, 497,(short) SQLLENMAX(sizeof(raum)),(void far *)&raum, (void far *)&raum_ind,0L); #line 39 sqlasetv(1, 4, 462,(short) SQLLENMAX(sizeof(gebdatum)),(void far *)&gebdatum, (void far *)0,0L); #line 39 sqlxcall(25, 2, 0, 1, 82, (char far *)" FETCH C1 INTO : , : , : , : : , : "); #line 39 SQLCODE = sqlca->sqlcode; #line 39 #line 39 if(sqlca->sqlcode < 0) { #line 39 sqlastop((void far *)0L); #line 39 ErrorHandler() ; #line 39 } sqlastop((void far *)0L); #line 39 } #line 41 } #line 42 /* EXEC SQL CLOSE C1; */ #line 42 #line 42 { #line 42 sqlastrt((void far *)pid, (void far *)0, (struct tag_sqlca far *)sqlca); #line 42 sqlxcall(20, 2, 0, 0, 11, (char far *)" CLOSE C1 "); #line 42 SQLCODE = sqlca->sqlcode; #line 42 #line 42 if(sqlca->sqlcode < 0) { #line 42 sqlastop((void far *)0L); #line 42 ErrorHandler() ; #line 42 } sqlastop((void far *)0L); #line 42 } #line 43 #line 43 /* EXEC SQL DISCONNECT ALL; */ #line 43 #line 43 { #line 43 sqlastrt((void far *)pid, (void far *)0, (struct tag_sqlca far *)sqlca); #line 43 sqlxcall(36, 3, 0, 0, 17, (char far *)" DISCONNECT ALL "); #line 43 SQLCODE = sqlca->sqlcode; #line 43 #line 43 if(sqlca->sqlcode < 0) { #line 43 sqlastop((void far *)0L); #line 43 ErrorHandler() ; #line 43 } sqlastop((void far *)0L); #line 43 } #line 44 return (0); } long SQLCODE;