/* ===== 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;