8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-31 03:23:03 +01:00
firebird-mirror/src/msgs/templates.sql

16107 lines
413 KiB
MySQL
Raw Normal View History

INSERT INTO TEMPLATES (LANGUAGE, "FILE", TEMPLATE) VALUES ('C', 'gds.h',
'/*
* PROGRAM: C preprocessor
* MODULE: gds.h
* DESCRIPTION: BLR constants
*
* copyright (c) 1984, 1990 by Interbase Software Corporation
*/
#define gds_version3
#define GDS_$TRUE 1
#define GDS_$FALSE 0
#ifndef apollo
#define GDS_VAL(val) val
#define GDS_REF(val) &val
#define GDS_TYPE long
#else
#define GDS_VAL(val) (*val)
#define GDS_REF(val) val
#define GDS_TYPE std_$call
#endif
GDS_TYPE gds_$attach_database ();
GDS_TYPE gds_$blob_info();
GDS_TYPE gds_$cancel_blob();
GDS_TYPE gds_$close_blob();
GDS_TYPE gds_$commit_transaction ();
GDS_TYPE gds_$compile_request ();
GDS_TYPE gds_$compile_request2 ();
GDS_TYPE gds_$create_blob ();
GDS_TYPE gds_$create_blob2 ();
GDS_TYPE gds_$create_database ();
GDS_TYPE gds_$database_info ();
GDS_TYPE gds_$detach_database ();
GDS_TYPE gds_$get_segment ();
GDS_TYPE gds_$open_blob ();
GDS_TYPE gds_$open_blob2 ();
GDS_TYPE gds_$prepare_transaction ();
GDS_TYPE gds_$prepare_transaction2 ();
GDS_TYPE gds_$put_segment ();
GDS_TYPE gds_$receive ();
GDS_TYPE gds_$reconnect_transaction ();
GDS_TYPE gds_$request_info ();
GDS_TYPE gds_$release_request ();
GDS_TYPE gds_$rollback_transaction ();
GDS_TYPE gds_$seek_blob ();
GDS_TYPE gds_$send ();
GDS_TYPE gds_$set_debug ();
GDS_TYPE gds_$start_and_send ();
GDS_TYPE gds_$start_multiple ();
GDS_TYPE gds_$start_request ();
GDS_TYPE gds_$start_transaction ();
GDS_TYPE gds_$transaction_info ();
GDS_TYPE gds_$unwind_request ();
GDS_TYPE gds_$ftof ();
GDS_TYPE gds_$print_status ();
GDS_TYPE gds_$sqlcode ();
GDS_TYPE gds_$ddl();
GDS_TYPE gds_$commit_retaining();
GDS_TYPE gds_$que_events();
GDS_TYPE gds_$cancel_events();
GDS_TYPE gds_$event_wait();
GDS_TYPE gds_$event_counts();
GDS_TYPE gds_$event_block();
GDS_TYPE gds_$event_block2();
GDS_TYPE gds_$get_slice();
GDS_TYPE gds_$put_slice();
GDS_TYPE gds_$seek_blob();
void gds_$vtof ();
typedef struct {
long gds_quad_high;
unsigned long gds_quad_low;
} GDS_$QUAD;
#define blr_word(n) (n % 256), (n / 256)
$ SYMBOLS BLR DTYPE "#define %-34s %d\n
$ SYMBOLS BLR JOIN "#define %-34s %d\n
$ SYMBOLS BLR MECH "#define %-34s %d\n
$ SYMBOLS BLR STATEMENTS "#define %-34s %d\n
$ SYMBOLS BLR VALUES "#define %-34s %d\n
$ SYMBOLS BLR BOOLEANS "#define %-34s %d\n
$ SYMBOLS BLR RSE "#define %-34s %d\n
$ SYMBOLS BLR AGGREGATE "#define %-34s %d\n
$ SYMBOLS BLR NEW "#define %-34s %d\n
/* Database parameter block stuff */
$ SYMBOLS DPB ITEMS "#define %-34s %d\n
$ SYMBOLS DPB BITS "#define %-34s %d\n
/* Bit assignments in RDB$SYSTEM_FLAG */
$ SYMBOLS RDB FLAG "#define %-34s %d\n
/* Transaction parameter blob stuff */
$ SYMBOLS TPB ITEMS "#define %-34s %d\n
/* Blob Parameter Block */
$ SYMBOLS BPB ITEMS "#define %-34s %d\n
/* Blob stream stuff */
typedef struct bstream {
int *bstr_blob; /* Blob handle */
char *bstr_buffer; /* Address of buffer */
char *bstr_ptr; /* Next character */
short bstr_length; /* Length of buffer */
short bstr_cnt; /* Characters in buffer */
char bstr_mode; /* (mode) ? OUTPUT : INPUT */
} BSTREAM;
#define getb(p) (--(p)->bstr_cnt >= 0 ? *(p)->bstr_ptr++ & 0377: BLOB_get (p))
#define putb(x,p) ((x == '\n' || (!(--(p)->bstr_cnt))) ? BLOB_put (x,p) : ((int) (*(p)->bstr_ptr++ = (unsigned) (x))))
#define putbx(x,p) ((!(--(p)->bstr_cnt)) ? BLOB_put (x,p) : ((int) (*(p)->bstr_ptr++ = (unsigned) (x))))
BSTREAM *Bopen(), *BLOB_open();
/* Information call declarations */
/* Common, structural codes */
$ SYMBOLS INFO MECH "#define %-34s %d\n
/* Database information items */
$ SYMBOLS INFO DB "#define %-34s %d\n
/* Database Info Return Values */
$ SYMBOLS INFO VALUES "#define %-34s %d\n
/* Request information items */
$ SYMBOLS INFO REQUEST "#define %-34s %d\n
/* Blob information items */
$ SYMBOLS INFO BLOB "#define %-34s %d\n
/* Transaction information items */
$ SYMBOLS INFO TRANSACTION "#define %-34s %d\n
/* Error codes */
$ SYMBOLS ERROR MECH "#define %-34s %d\n
$ ERROR MAJOR "#define %-34s %d\n
/* Minor codes subject to change */
$ ERROR MINOR "#define %-34s %d\n
#define gds_err_max 143
/* Dynamic Data Definition Language operators */
/* Version number */
$ SYMBOLS DYN MECH "#define %-34s %d\n
/* Operations (may be nested) */
$ SYMBOLS DYN OPERATIONS "#define %-34s %d\n
/* View specific stuff */
$ SYMBOLS DYN VIEW "#define %-34s %d\n
/* Generic attributes */
$ SYMBOLS DYN GENERIC "#define %-34s %d\n
/* Relation specific attributes */
$ SYMBOLS DYN RELATION "#define %-34s %d\n
/* Global field specific attributes */
$ SYMBOLS DYN GLOBAL "#define %-34s %d\n
/* Local field specific attributes */
$ SYMBOLS DYN FIELD "#define %-34s %d\n
/* Index specific attributes */
$ SYMBOLS DYN INDEX "#define %-34s %d\n
/* Trigger specific attributes */
$ SYMBOLS DYN TRIGGER "#define %-34s %d\n
/* Security Class specific attributes */
$ SYMBOLS DYN SECURITY "#define %-34s %d\n
/* Dimension specific information */
$ SYMBOLS DYN ARRAY "#define %-34s %d\n
/* File specific attributes */
$ SYMBOLS DYN FILES "#define %-34s %d\n
/* Function specific attributes */
$ SYMBOLS DYN FUNCTIONS "#define %-34s %d\n
/* Generator specific attributes */
$ SYMBOLS DYN GENERATOR "#define %-34s %d\n
/* Array slice description language (SDL) */
$ SYMBOLS SDL SDL "#define %-34s %d\n
/* Dynamic SQL definitions */
typedef struct {
short sqltype;
short sqllen;
char *sqldata;
short *sqlind;
short sqlname_length;
char sqlname [30];
} SQLVAR;
typedef struct {
char sqldaid [8];
long sqldabc;
short sqln;
short sqld;
SQLVAR sqlvar[1];
} SQLDA;
#define SQLDA_LENGTH(n) (sizeof (SQLDA) + (n-1) * sizeof (SQLVAR))
$ SYMBOLS SQL DTYPE "#define %-34s %d\n
/* Forms Package definitions */
/* Map definition block definitions */
$ SYMBOLS PYXIS MAP "#define %-34s %d\n
/* Field option flags for display options */
$ SYMBOLS PYXIS DISPLAY "#define %-34s %d\n
/* Field option values following display */
$ SYMBOLS PYXIS VALUE "#define %-34s %d\n
/* Pseudo key definitions */
$ SYMBOLS PYXIS KEY "#define %-34s %d\n
/* Menu definition stuff */
$ SYMBOLS PYXIS MENU "#define %-34s %d\n');
INSERT INTO TEMPLATES (LANGUAGE, "FILE", TEMPLATE) VALUES ('C++', 'gds.hxx',
'/*
* PROGRAM: C preprocessor
* MODULE: gds.hxx
* DESCRIPTION: BLR constants for C++
*
* copyright (c) 1984, 1990 by Interbase Software Corporation
*/
#define gds_version3
#define GDS_TRUE 1
#define GDS_FALSE 0
typedef long gds_db_handle;
typedef long gds_req_handle;
typedef long gds_tr_handle;
typedef long gds_blob_handle;
typedef long gds_win_handle;
typedef long gds_form_handle;
typedef void (*gds_callback)();
typedef struct {
long gds_quad_high;
unsigned long gds_quad_low;
} GDS_QUAD;
/* Dynamic SQL definitions */
typedef struct {
short sqltype;
short sqllen;
char *sqldata;
short *sqlind;
short sqlname_length;
char sqlname [30];
} SQLVAR;
typedef struct {
char sqldaid [8];
long sqldabc;
short sqln;
short sqld;
SQLVAR sqlvar[1];
} SQLDA;
#define SQLDA_LENGTH(n) (sizeof (SQLDA) + (n-1) * sizeof (SQLVAR))
extern long
isc_attach_database (long*, short, char*, gds_db_handle*, short, char*),
isc_blob_info (long*, gds_blob_handle*, short, char*, short, char*),
isc_cancel_blob (long*, gds_blob_handle*),
isc_close_blob (long*, gds_blob_handle*),
isc_commit_transaction (long*, gds_tr_handle*),
isc_compile_request (long*, gds_db_handle*, gds_req_handle*, short, char*),
isc_compile_request2 (long*, gds_db_handle*, gds_req_handle*, short, char*),
isc_create_blob (long*, gds_db_handle*, gds_tr_handle*, gds_blob_handle*, GDS_QUAD*),
isc_create_blob2 (long*, gds_db_handle*, gds_tr_handle*, gds_blob_handle*, GDS_QUAD*, short, char*),
isc_create_database (long*, short, char*, gds_db_handle*, short, char*),
isc_database_info (long*, gds_db_handle*, short, char*, short, char*),
isc_detach_database (long*, gds_db_handle*),
isc_get_segment (long*, gds_blob_handle*, unsigned short*, short, char*),
isc_open_blob (long*, gds_db_handle*, gds_tr_handle*, gds_blob_handle*, GDS_QUAD*),
isc_open_blob2 (long*, gds_db_handle*, gds_tr_handle*, gds_blob_handle*, GDS_QUAD*, short, char*),
isc_prepare_transaction (long*, gds_tr_handle*),
isc_prepare_transaction2 (long*, gds_tr_handle*, short, char*),
isc_put_segment (long*, gds_blob_handle*, short, char*),
isc_receive (long*, gds_req_handle*, short, short, void*, short),
isc_reconnect_transaction (long*, gds_db_handle*, gds_tr_handle*, short, char*),
isc_request_info (long*, gds_req_handle*, short, char*, short, char*, short),
isc_release_request (long*, gds_req_handle*),
isc_rollback_transaction (long*, gds_tr_handle*),
isc_send (long*, gds_req_handle*, short, short, void*, short),
isc_start_and_send (long*, gds_req_handle*, gds_tr_handle*, short, short, void*, short),
isc_start_multiple (long*, gds_tr_handle*, short, void*),
isc_start_request (long*, gds_req_handle*, gds_tr_handle*, short),
isc_start_transaction (long*, gds_tr_handle*, short, gds_db_handle*, short, char*, ...),
isc_transaction_info (long*, gds_tr_handle*, short, char*, short, char*),
isc_unwind_request (long*, gds_tr_handle*, short),
isc_print_status (long*),
isc_sqlcode (long*),
isc_ddl (long*, gds_db_handle*, gds_tr_handle*, short, char*),
isc_commit_retaining (long*, gds_tr_handle*),
isc_que_events (long*, gds_db_handle*, long*, short, char*, gds_callback, long*),
isc_cancel_events (long*, gds_db_handle*, long*),
isc_event_wait (long*, gds_db_handle*, short, char*, char*),
isc_event_counts (long*, short, char*, char*),
isc_event_block (char**, char**, short, ...),
isc_get_slice (long*, gds_db_handle*, gds_tr_handle*, GDS_QUAD*, short, char*, short, long*,
long, void*, long*),
isc_put_slice (long*, gds_db_handle*, gds_tr_handle*, GDS_QUAD*, short, char*, short, long*,
long, void*);
extern long
isc_prepare (long*, gds_db_handle*, gds_tr_handle*, char*, short*, char*, SQLDA*),
isc_declare (long*, char*, char*),
isc_open (long*, gds_tr_handle*, char*, SQLDA*),
isc_fetch (long*, char*, SQLDA*),
isc_close (long*, char*),
isc_describe (long*, char*, SQLDA*),
isc_execute (long*, gds_tr_handle*, char*, SQLDA*),
isc_execute_immediate (long*, gds_db_handle*, gds_tr_handle*, short*, char*),
isc_ddl (long*, gds_db_handle*, gds_tr_handle*, short, char*);
extern long
BLOB_edit (GDS_QUAD*, gds_db_handle, gds_tr_handle, char*);
extern long
isc_initialize_menu (long*, gds_req_handle*),
isc_put_entree (long*, gds_req_handle*, short*, char*, long*),
isc_drive_menu (long*, gds_win_handle*, gds_req_handle*, short*, char*, short*, char*, short*,
short*, char*, long*),
isc_drive_form (long*, gds_db_handle*, gds_tr_handle*, gds_win_handle*, gds_req_handle*,
void*, void*),
isc_load_form (long*, gds_db_handle*, gds_tr_handle*, gds_form_handle*, short*, char*),
isc_compile_map (long*, gds_form_handle*, gds_req_handle*, short*, char*),
isc_compile_sub_map (long*, gds_win_handle*, gds_req_handle*, short*, char*),
isc_form_fetch (long*, gds_db_handle*, gds_tr_handle*, gds_req_handle*, void*),
isc_reset_form (long*, gds_req_handle*),
isc_pop_window (long*, gds_win_handle*),
isc_create_window (long*, gds_win_handle*, short*, char*, short*, short*),
isc_menu (long*, gds_win_handle*, gds_req_handle*, short*, char*);
extern void
isc_ftof (char*, short, char*, short),
isc_vtof (char*, char*),
isc_vtov (char*, char*, short),
isc_version (gds_db_handle*, gds_callback, long);
#define blr_word(n) (n % 256), (n / 256)
$ SET SANS_DOLLAR
$ SYMBOLS BLR DTYPE "const char %-32s= %d;\n
$ SYMBOLS BLR JOIN "const char %-32s= %d;\n
$ SYMBOLS BLR MECH "const char %-32s= %d;\n
$ SYMBOLS BLR STATEMENTS "const char %-32s= %d;\n
$ SYMBOLS BLR VALUES "const char %-32s= %d;\n
$ SYMBOLS BLR BOOLEANS "const char %-32s= %d;\n
$ SYMBOLS BLR RSE "const char %-32s= %d;\n
$ SYMBOLS BLR AGGREGATE "const char %-32s= %d;\n
$ SYMBOLS BLR NEW "const char %-32s= %d;\n
/* Database parameter block stuff */
$ SYMBOLS DPB ITEMS "const char %-32s= %d;\n
$ SYMBOLS DPB BITS "const char %-32s= %d;\n
/* Bit assignments in RDB$SYSTEM_FLAG */
$ SYMBOLS RDB FLAG "const char %-32s= %d;\n
/* Transaction parameter blob stuff */
$ SYMBOLS TPB ITEMS "const char %-32s= %d;\n
/* Blob Parameter Block */
$ SYMBOLS BPB ITEMS "const char %-32s= %d;\n
/* Blob stream stuff */
typedef struct bstream {
int *bstr_blob; /* Blob handle */
char *bstr_buffer; /* Address of buffer */
char *bstr_ptr; /* Next character */
short bstr_length; /* Length of buffer */
short bstr_cnt; /* Characters in buffer */
char bstr_mode; /* (mode) ? OUTPUT : INPUT */
} BSTREAM;
#define getb(p) (--(p)->bstr_cnt >= 0 ? *(p)->bstr_ptr++ & 0377: BLOB_get (p))
#define putb(x,p) ((x == '\n' || (!(--(p)->bstr_cnt))) ? BLOB_put (x,p) : ((int) (*(p)->bstr_ptr++ = (unsigned) (x))))
#define putbx(x,p) ((!(--(p)->bstr_cnt)) ? BLOB_put (x,p) : ((int) (*(p)->bstr_ptr++ = (unsigned) (x))))
BSTREAM *Bopen(), *BLOB_open();
/* Information call declarations */
/* Common, structural codes */
$ SYMBOLS INFO MECH "const char %-32s= %d;\n
/* Database information items */
$ SYMBOLS INFO DB "const char %-32s= %d;\n
/* Database Info Return Values */
$ SYMBOLS INFO VALUES "const char %-32s= %d;\n
/* Request information items */
$ SYMBOLS INFO REQUEST "const char %-32s= %d;\n
/* Blob information items */
$ SYMBOLS INFO BLOB "const char %-32s= %d;\n
/* Transaction information items */
$ SYMBOLS INFO TRANSACTION "const char %-32s= %d;\n
/* Error codes */
$ SYMBOLS ERROR MECH "const long %-32s= %d;\n
$ ERROR MAJOR "const long %-32s= %d;\n
/* Minor codes subject to change */
$ ERROR MINOR "const long %-32s= %d;\n
/* Dynamic Data Definition Language operators */
/* Version number */
$ SYMBOLS DYN MECH "const char %-32s= %d;\n
/* Operations (may be nested) */
$ SYMBOLS DYN OPERATIONS "const char %-32s= %d;\n
/* View specific stuff */
$ SYMBOLS DYN VIEW "const char %-32s= %d;\n
/* Generic attributes */
$ SYMBOLS DYN GENERIC "const char %-32s= %d;\n
/* Relation specific attributes */
$ SYMBOLS DYN RELATION "const char %-32s= %d;\n
/* Global field specific attributes */
$ SYMBOLS DYN GLOBAL "const char %-32s= %d;\n
/* Local field specific attributes */
$ SYMBOLS DYN FIELD "const char %-32s= %d;\n
/* Index specific attributes */
$ SYMBOLS DYN INDEX "const char %-32s= %d;\n
/* Trigger specific attributes */
$ SYMBOLS DYN TRIGGER "const char %-32s= %d;\n
/* Security Class specific attributes */
$ SYMBOLS DYN SECURITY "const char %-32s= %d;\n
/* Dimension specific information */
$ SYMBOLS DYN ARRAY "const char %-32s= %d;\n
/* File specific attributes */
$ SYMBOLS DYN FILES "const char %-32s= %d;\n
/* Function specific attributes */
$ SYMBOLS DYN FUNCTIONS "const char %-32s= %d;\n
/* Generator specific attributes */
$ SYMBOLS DYN GENERATOR "const char %-32s= %d;\n
/* Array slice description language (SDL) */
$ SYMBOLS SDL SDL "const char %-32s= %d;\n
$ SYMBOLS SQL DTYPE "const short %-32s= %d;\n
/* Forms Package definitions */
/* Map definition block definitions */
$ SYMBOLS PYXIS MAP "const char %-32s= %d;\n
/* Field option flags for display options */
$ SYMBOLS PYXIS DISPLAY "const char %-32s= %d;\n
/* Field option values following display */
$ SYMBOLS PYXIS VALUE "const char %-32s= %d;\n
/* Pseudo key definitions */
$ SYMBOLS PYXIS KEY "const char %-32s= %d;\n
/* Menu definition stuff */
$ SYMBOLS PYXIS MENU "const char %-32s= %d;\n');
INSERT INTO TEMPLATES (LANGUAGE, "FILE", TEMPLATE) VALUES ('VPASCAL', 'gds.vpas',
'(*
* PROGRAM: Preprocessor
* MODULE: sql.pas
* DESCRIPTION: SQL constants, procedures, etc.
*
* copyright (c) 1985, 1990 by Interbase Software Corporation
*)
type
gds_$short = [word] -32768..32767;
gds_$handle = ^integer;
gds_$string = array [1..65535] of char;
gds_$ptr_type = [UNSAFE] ^gds_$string;
gds_$status_vector = array [1..20] of integer;
gds_$quad = array [1..2] of integer;
gds_$teb_t = record
dbb_ptr : gds_$ptr_type;
tpb_len : integer;
tpb_ptr : gds_$ptr_type;
end;
gds_$tm = record
tm_sec : integer;
tm_min : integer;
tm_hour : integer;
tm_mday : integer;
tm_mon : integer;
tm_year : integer;
tm_wday : integer;
tm_yday : integer;
tm_isdst : integer;
end;
sqlvar = record
sqltype : gds_$short;
sqllen : gds_$short;
sqldata : gds_$ptr_type;
sqlind : gds_$ptr_type;
sqlname_length : gds_$short;
sqlname : array [1..30] of char;
end;
sqlda = record
sqldaid : array [1..8] of char;
sqldabc : integer;
sqln : gds_$short;
sqld : gds_$short;
sqlvars : array [1..100] of sqlvar;
end;
procedure GDS_$SET_DEBUG (
debug_val : [IMMEDIATE] gds_$short
); extern;
procedure gds_$ATTACH_DATABASE (
var stat : gds_$status_vector;
name_length : [IMMEDIATE] gds_$short;
file_name : gds_$ptr_type;
var db_handle : gds_$handle;
dpb_length : [IMMEDIATE] gds_$short;
dpb : gds_$ptr_type
); extern;
procedure gds_$ATTACH_DATABASE_D (
var stat : gds_$status_vector;
file_name : gds_$ptr_type;
var db_handle : gds_$handle;
dpb_length : [IMMEDIATE] gds_$short;
dpb : gds_$ptr_type
); extern;
procedure gds_$CANCEL_BLOB (
var stat : gds_$status_vector;
var blob_handle : gds_$handle
); extern;
procedure GDS_$CANCEL_EVENTS (
var stat : gds_$status_vector;
var db_handle : gds_$handle;
id : gds_$handle
); extern;
procedure gds_$CLOSE_BLOB (
var stat : gds_$status_vector;
var blob_handle : gds_$handle
); extern;
procedure GDS_$COMMIT_RETAINING (
var stat : gds_$status_vector;
var tra_handle : gds_$handle
); extern;
procedure gds_$COMMIT_TRANSACTION (
var stat : gds_$status_vector;
var tra_handle : gds_$handle
); extern;
procedure gds_$COMPILE_REQUEST (
var stat : gds_$status_vector;
db_handle : gds_$handle;
var request_handle : gds_$handle;
blr_length : [IMMEDIATE] gds_$short;
blr : gds_$ptr_type
); extern;
procedure gds_$COMPILE_REQUEST2 (
var stat : gds_$status_vector;
db_handle : gds_$handle;
var request_handle : gds_$handle;
blr_length : [IMMEDIATE] gds_$short;
blr : gds_$ptr_type
); extern;
procedure gds_$CREATE_BLOB (
var stat : gds_$status_vector;
db_handle : gds_$handle;
tra_handle : gds_$handle;
var blob_handle : gds_$handle;
var blob_id : gds_$quad
); extern;
procedure GDS_$CREATE_BLOB2 (
var stat : gds_$status_vector;
db_handle : gds_$handle;
tra_handle : gds_$handle;
var blob_handle : gds_$handle;
var blob_id : gds_$quad;
bpb_length : integer;
bpb : gds_$ptr_type
); extern;
procedure GDS_$CREATE_DATABASE (
var stat : gds_$status_vector;
name_length : [IMMEDIATE] gds_$short;
file_name : gds_$ptr_type;
var db_handle : gds_$handle;
dpb_length : [IMMEDIATE] gds_$short;
dpb : gds_$ptr_type;
dpb_type : [IMMEDIATE] gds_$short
); extern;
procedure GDS_$DDL (
var stat : gds_$status_vector;
db_handle : gds_$handle;
tra_handle : gds_$handle;
mblr_length : [IMMEDIATE] gds_$short;
mblr : gds_$ptr_type
); extern;
procedure gds_$DETACH_DATABASE (
var stat : gds_$status_vector;
var db_handle : gds_$handle
); extern;
procedure gds_$DROP_DATABASE (
var stat : gds_$status_vector;
name_length : [IMMEDIATE] gds_$short;
file_name : gds_$ptr_type;
db_type : [IMMEDIATE] gds_$short
); extern;
procedure GDS_$EVENT_WAIT (
var stat : gds_$status_vector;
db_handle : gds_$handle;
length : [IMMEDIATE] gds_$short;
var events : gds_$ptr_type;
var buffer : gds_$ptr_type
); extern;
procedure GDS_$GET_SLICE (
var stat : gds_$status_vector;
db_handle : gds_$handle;
tra_handle : gds_$handle;
blob_id : gds_$quad;
sdl_length : [IMMEDIATE] gds_$short;
sdl : gds_$ptr_type;
param_length : [IMMEDIATE] gds_$short;
param : gds_$ptr_type;
slice_length : integer;
slice : gds_$ptr_type;
var return_length : integer
); extern;
function gds_$GET_SEGMENT (
var stat : gds_$status_vector;
blob_handle : gds_$handle;
var length : gds_$short;
buffer_length : [IMMEDIATE] gds_$short;
var buffer : gds_$ptr_type
): integer; extern;
procedure gds_$OPEN_BLOB (
var stat : gds_$status_vector;
db_handle : gds_$handle;
tra_handle : gds_$handle;
var blob_handle : gds_$handle;
blob_id : gds_$quad
); extern;
procedure GDS_$OPEN_BLOB2 (
var stat : gds_$status_vector;
db_handle : gds_$handle;
tra_handle : gds_$handle;
var blob_handle : gds_$handle;
blob_id : gds_$quad;
bpb_length : integer;
bpb : gds_$ptr_type
); extern;
procedure gds_$PREPARE_TRANSACTION (
var stat : gds_$status_vector;
var tra_handle : gds_$handle
); extern;
procedure gds_$STATUS_AND_STOP (
var stat : gds_$status_vector
); extern;
function gds_$PUT_SEGMENT (
var stat : gds_$status_vector;
blob_handle : gds_$handle;
length : [IMMEDIATE] gds_$short;
buffer : gds_$ptr_type
): integer; extern;
procedure GDS_$PUT_SLICE (
var stat : gds_$status_vector;
db_handle : gds_$handle;
tra_handle : gds_$handle;
blob_id : gds_$quad;
sdl_length : [IMMEDIATE] gds_$short;
sdl : gds_$ptr_type;
param_length : [IMMEDIATE] gds_$short;
param : gds_$ptr_type;
slice_length : integer;
slice : gds_$ptr_type
); extern;
procedure GDS_$QUE_EVENTS (
var stat : gds_$status_vector;
db_handle : gds_$handle;
id : gds_$quad;
length : [IMMEDIATE] gds_$short;
events : gds_$ptr_type;
ast : gds_$handle;
arg : gds_$quad
); extern;
procedure gds_$RECEIVE (
var stat : gds_$status_vector;
request_handle : gds_$handle;
message_type : [IMMEDIATE] gds_$short;
message_length : [IMMEDIATE] gds_$short;
var message : gds_$ptr_type;
instantiation : [IMMEDIATE] gds_$short
); extern;
procedure gds_$RELEASE_REQUEST (
var stat : gds_$status_vector;
var request_handle : gds_$handle
); extern;
procedure gds_$ROLLBACK_TRANSACTION (
var stat : gds_$status_vector;
var tra_handle : gds_$handle
); extern;
procedure gds_$SEND (
var stat : gds_$status_vector;
request_handle : gds_$handle;
message_type : [IMMEDIATE] gds_$short;
message_length : [IMMEDIATE] gds_$short;
message : gds_$ptr_type;
instantiation : [IMMEDIATE] gds_$short
); extern;
procedure gds_$START_AND_SEND (
var stat : gds_$status_vector;
request_handle : gds_$handle;
tra_handle : gds_$handle;
message_type : [IMMEDIATE] gds_$short;
message_length : [IMMEDIATE] gds_$short;
message : gds_$ptr_type;
instantiation : [IMMEDIATE] gds_$short
); extern;
procedure gds_$START_REQUEST (
var stat : gds_$status_vector;
request_handle : gds_$handle;
tra_handle : gds_$handle;
instantiation : [IMMEDIATE] gds_$short
); extern;
procedure gds_$START_MULTIPLE (
var stat : gds_$status_vector;
var tra_handle : gds_$handle;
tra_count : [IMMEDIATE] gds_$short;
teb : gds_$ptr_type
); extern;
procedure gds_$START_TRANSACTION (
var stat : gds_$status_vector;
var tra_handle : gds_$handle;
tra_count : [IMMEDIATE] gds_$short;
db_handle : gds_$handle;
tpb_length : [IMMEDIATE] gds_$short;
tpb : gds_$ptr_type
); extern;
procedure gds_$UNWIND_REQUEST (
var stat : gds_$status_vector;
request_handle : gds_$handle;
instantiation : [IMMEDIATE] gds_$short
); extern;
procedure gds_$ftof (
string1 : [REFERENCE] gds_$ptr_type;
length1 : [IMMEDIATE] gds_$short;
string2 : [REFERENCE] gds_$ptr_type;
length2 : [IMMEDIATE] gds_$short
); extern;
procedure gds_$print_status (
stat : gds_$status_vector
); extern;
function gds_$sqlcode (
stat : gds_$status_vector
) : integer; extern;
procedure gds_$encode_date (
times : gds_$tm;
var date : gds_$quad
); extern;
procedure gds_$decode_date (
date : gds_$quad;
var times : gds_$tm
); extern;
const
gds_$true = 1;
gds_$false = 0;
$ SYMBOLS BLR DTYPE BYTE "\t%-32s= chr(%d);\n
$ SYMBOLS BLR MECH "\t%-32s= chr(%d);\n
$ SYMBOLS BLR STATEMENTS"\t%-32s= chr(%d);\n
$ SYMBOLS BLR VALUES "\t%-32s= chr(%d);\n
$ SYMBOLS BLR BOOLEANS "\t%-32s= chr(%d);\n
$ SYMBOLS BLR RSE "\t%-32s= chr(%d);\n
$ SYMBOLS BLR JOIN "\t%-32s= chr(%d);\n
$ SYMBOLS BLR AGGREGATE "\t%-32s= chr(%d);\n
$ SYMBOLS BLR NEW "\t%-32s= chr(%d);\n
(* Database parameter block stuff *)
$ SYMBOLS DPB ITEMS "\t%-32s= chr(%d);\n
$ SYMBOLS DPB BITS "\t%-32s= chr(%d);\n
(* Transaction parameter block stuff *)
$ SYMBOLS TPB ITEMS "\t%-32s= chr(%d);\n
(* Blob parameter block stuff *)
$ SYMBOLS BPB ITEMS "\t%-32s= chr(%d);\n
(* Blob routine declarations *)
type
gds_$field_name = array [1..31] of char;
gds_$file_name = array [1..128] of char;
procedure blob_$display (
blob_id : gds_$quad;
db_handle : gds_$handle;
tra_handle : gds_$handle;
field_name : gds_$ptr_type;
name_length : [IMMEDIATE] integer
); extern;
procedure blob_$dump (
blob_id : gds_$quad;
db_handle : gds_$handle;
tra_handle : gds_$handle;
file_name : gds_$ptr_type;
name_length : [IMMEDIATE] integer
); extern;
procedure blob_$edit (
blob_id : gds_$quad;
db_handle : gds_$handle;
tra_handle : gds_$handle;
field_name : gds_$ptr_type;
name_length : [IMMEDIATE] integer
); extern;
procedure blob_$load (
blob_id : gds_$quad;
db_handle : gds_$handle;
tra_handle : gds_$handle;
file_name : gds_$ptr_type;
name_length : [IMMEDIATE] integer
); extern;
(* Dynamic SQL procedures *)
procedure gds_$close (
var stat : gds_$status_vector;
cursor_name : gds_$ptr_type
); extern;
procedure gds_$declare (
var stat : gds_$status_vector;
statement_name : gds_$ptr_type;
cursor_name : gds_$ptr_type
); extern;
procedure gds_$describe (
var stat : gds_$status_vector;
statement_name : gds_$ptr_type;
var descriptor : gds_$ptr_type
); extern;
procedure gds_$dsql_finish (
db_handle : gds_$handle
); extern;
procedure gds_$execute (
var stat : gds_$status_vector;
trans_handle : gds_$handle;
statement_name : gds_$ptr_type;
var descriptor : gds_$ptr_type
); extern;
procedure gds_$execute_immediate (
var stat : gds_$status_vector;
db_handle : gds_$handle;
trans_handle : gds_$handle;
string_length : gds_$short;
string : gds_$ptr_type
); extern;
function gds_$fetch (
var stat : gds_$status_vector;
cursor_name : gds_$ptr_type;
var descriptor : gds_$ptr_type
) : integer; extern;
procedure gds_$open (
var stat : gds_$status_vector;
trans_handle : gds_$handle;
cursor_name : gds_$ptr_type;
var descriptor : gds_$ptr_type
); extern;
procedure gds_$prepare (
var stat : gds_$status_vector;
db_handle : gds_$handle;
trans_handle : gds_$handle;
statement_name : gds_$ptr_type;
string_length : gds_$short;
string : gds_$ptr_type;
var descriptor : gds_$ptr_type
); extern;
(* Information parameters *)
(* Common, structural codes *)
const
$ SYMBOLS INFO MECH "\t%-32s= chr(%d);\n
(* Database information items *)
$ SYMBOLS INFO DB "\t%-32s= chr(%d);\n
(* Request information items *)
$ SYMBOLS INFO REQUEST "\t%-32s= chr(%d);\n
(* Blob information items *)
$ SYMBOLS INFO BLOB "\t%-32s= chr(%d);\n
(* Transaction information items *)
$ SYMBOLS INFO TRANSACTION "\t%-32s= chr(%d);\n
(* Error codes *)
CONST
$ SYMBOLS ERROR MECH "\t%-26s= %d;\n
$ ERROR MAJOR "\t%-26s= %d;\n
(* Minor codes subject to change *)
$ ERROR MINOR "\t%-26s= %d;\n
(* Dynamic Data Definition Language operators *)
(* Version number *)
$ SYMBOLS DYN MECH "\t%-32s= chr(%d);\n
(* Operations (may be nested) *)
$ SYMBOLS DYN OPERATIONS "\t%-32s= chr(%d);\n
(* View specific stuff *)
$ SYMBOLS DYN VIEW "\t%-32s= chr(%d);\n
(* Generic attributes *)
$ SYMBOLS DYN GENERIC "\t%-32s= chr(%d);\n
(* Relation specific attributes *)
$ SYMBOLS DYN RELATION "\t%-32s= chr(%d);\n
(* Global field specific attributes *)
$ SYMBOLS DYN GLOBAL "\t%-32s= chr(%d);\n
(* Local field specific attributes *)
$ SYMBOLS DYN FIELD "\t%-32s= chr(%d);\n
(* Index specific attributes *)
$ SYMBOLS DYN INDEX "\t%-32s= chr(%d);\n
(* Trigger specific attributes *)
$ SYMBOLS DYN TRIGGER "\t%-32s= chr(%d);\n
(* Security Class specific attributes *)
$ SYMBOLS DYN SECURITY "\t%-32s= chr(%d);\n
(* File specific attributes *)
$ SYMBOLS DYN FILES "\t%-32s= chr(%d);\n
(* Function specific attributes *)
$ SYMBOLS DYN FUNCTIONS "\t%-32s= chr(%d);\n
(* Generator specific attributes *)
$ SYMBOLS DYN GENERATOR "\t%-32s= chr(%d);\n
(* Array slice description language (SDL) *)
$ SYMBOLS SDL SDL BYTE "\t%-32s= chr(%d);\n
(* Dynamic SQL datatypes *)
CONST
$ SYMBOLS SQL DTYPE "\t%-32s= %d;\n
(* Forms Package definitions *)
(* Map definition block definitions *)
CONST
$ SYMBOLS PYXIS MAP BYTE "\t%-32s= chr(%d);\n
(* Field option flags for display options *)
CONST
$ SYMBOLS PYXIS DISPLAY "\t%-32s= %d;\n
(* Field option values following display *)
CONST
$ SYMBOLS PYXIS VALUE "\t%-32s= %d;\n
(* Pseudo key definitions *)
CONST
$ SYMBOLS PYXIS KEY "\t%-32s= %d;\n
(* Menu definition stuff *)
CONST
$ SYMBOLS PYXIS MENU BYTE "\t%-32s= chr(%d);\n
procedure pyxis_$compile_map (
var stat : gds_$status_vector;
form_handle : gds_$handle;
var map_handle : gds_$handle;
length : gds_$short;
map : gds_$ptr_type
); extern;
procedure pyxis_$compile_sub_map (
var stat : gds_$status_vector;
form_handle : gds_$handle;
var map_handle : gds_$handle;
length : gds_$short;
map : gds_$ptr_type
); extern;
procedure pyxis_$create_window (
var window_handle : gds_$handle;
name_length : gds_$short;
file_name : gds_$ptr_type;
var width : gds_$short;
var height : gds_$short
); extern;
procedure pyxis_$delete_window (
var window_handle : gds_$handle
); extern;
procedure pyxis_$drive_form (
var stat : gds_$status_vector;
db_handle : gds_$handle;
trans_handle : gds_$handle;
var window_handle : gds_$handle;
map_handle : gds_$handle;
input : gds_$ptr_type;
output : gds_$ptr_type
); extern;
procedure pyxis_$fetch (
var stat : gds_$status_vector;
db_handle : gds_$handle;
trans_handle : gds_$handle;
map_handle : gds_$handle;
output : gds_$ptr_type
); extern;
procedure pyxis_$insert (
var stat : gds_$status_vector;
db_handle : gds_$handle;
trans_handle : gds_$handle;
map_handle : gds_$handle;
input : gds_$ptr_type
); extern;
procedure pyxis_$load_form (
var stat : gds_$status_vector;
db_handle : gds_$handle;
trans_handle : gds_$handle;
var form_handle : gds_$handle;
name_length : gds_$short;
form_name : gds_$ptr_type
); extern;
function pyxis_$menu (
var window_handle : gds_$handle;
var menu_handle : gds_$handle;
length : gds_$short;
menu : gds_$ptr_type
) : gds_$short; extern;
procedure pyxis_$pop_window (
window_handle : gds_$handle
); extern;
procedure pyxis_$reset_form (
var stat : gds_$status_vector;
window_handle : gds_$handle
); extern;
procedure pyxis_$drive_menu (
var window_handle : gds_$handle;
var menu_handle : gds_$handle;
blr_length : gds_$short;
blr_source : gds_$ptr_type;
title_length : gds_$short;
title : gds_$ptr_type;
var terminator : gds_$short;
var entree_length : gds_$short;
entree_text : gds_$ptr_type;
var entree_value : integer
); extern;
procedure pyxis_$get_entree (
menu_handle : gds_$handle;
var entree_length : gds_$short;
entree_text : gds_$ptr_type;
var entree_value : integer;
var entree_end : gds_$short
); extern;
procedure pyxis_$initialize_menu (
var menu_handle : gds_$handle
); extern;
procedure pyxis_$put_entree (
menu_handle : gds_$handle;
entree_length : gds_$short;
entree_text : gds_$ptr_type;
entree_value : integer
); extern;
[HIDDEN] PROCEDURE LIB$SCOPY_DXDX; EXTERNAL;');
INSERT INTO TEMPLATES (LANGUAGE, "FILE", TEMPLATE) VALUES ('PASCAL', 'gds.pas',
'(*
* PROGRAM: Preprocessor
* MODULE: gds.pas
* DESCRIPTION: GDS constants, procedures, etc.
*
* copyright (c) 1985, 1990 by Interbase Software Corporation
*)
type
gds_$handle = ^integer32;
gds_$string = array [1..65535] of char;
gds_$status_vector = array [1..20] of integer32;
gds_$quad = array [1..2] of integer32;
gds_$teb_t = record
dbb_ptr : ^gds_$handle;
tpb_len : integer32;
tpb_ptr : UNIV_PTR;
end;
gds_$tm = record
tm_sec : integer32;
tm_min : integer32;
tm_hour : integer32;
tm_mday : integer32;
tm_mon : integer32;
tm_year : integer32;
tm_wday : integer32;
tm_yday : integer32;
tm_isdst : integer32;
end;
sqlvar = record
sqltype : integer16;
sqllen : integer16;
sqldata : UNIV_PTR;
sqlind : UNIV_PTR;
sqlname_length : integer16;
sqlname : array [1..30] of char;
end;
sqlda = record
sqldaid : array [1..8] of char;
sqldabc : integer32;
sqln : integer16;
sqld : integer16;
sqlvars : array [1..100] of sqlvar;
end;
procedure GDS_$SET_DEBUG (
in debug_val : integer32
); extern;
procedure GDS_$ATTACH_DATABASE (
out stat : gds_$status_vector;
in name_length : integer16;
in file_name : UNIV gds_$string;
in out db_handle : gds_$handle;
in dpb_length : integer16;
in dpb : UNIV gds_$string
); extern;
procedure GDS_$CANCEL_BLOB (
out stat : gds_$status_vector;
in out blob_handle : gds_$handle
); extern;
procedure GDS_$CANCEL_EVENTS (
out stat : gds_$status_vector;
in out db_handle : gds_$handle;
in id : gds_$handle
); extern;
procedure GDS_$CLOSE_BLOB (
out stat : gds_$status_vector;
in out blob_handle : gds_$handle
); extern;
procedure GDS_$COMMIT_RETAINING (
out stat : gds_$status_vector;
in out tra_handle : gds_$handle
); extern;
procedure GDS_$COMMIT_TRANSACTION (
out stat : gds_$status_vector;
in out tra_handle : gds_$handle
); extern;
procedure GDS_$COMPILE_REQUEST (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in out request_handle : gds_$handle;
in blr_length : integer16;
in blr : UNIV gds_$string
); extern;
procedure GDS_$COMPILE_REQUEST2 (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in out request_handle : gds_$handle;
in blr_length : integer16;
in blr : UNIV gds_$string
); extern;
procedure GDS_$CREATE_BLOB (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in tra_handle : gds_$handle;
in out blob_handle : gds_$handle;
out blob_id : gds_$quad
); extern;
procedure GDS_$CREATE_BLOB2 (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in tra_handle : gds_$handle;
in out blob_handle : gds_$handle;
out blob_id : gds_$quad;
in bpb_length : integer16;
in bpb : UNIV gds_$string
); extern;
procedure GDS_$CREATE_DATABASE (
out stat : gds_$status_vector;
in name_length : integer16;
in file_name : UNIV gds_$string;
in out db_handle : gds_$handle;
in dpb_length : integer16;
in dpb : UNIV gds_$string;
in dpb_type : integer16
); extern;
procedure GDS_$DDL (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in tra_handle : gds_$handle;
in mblr_length : integer16;
in mblr : UNIV gds_$string
); extern;
procedure GDS_$DETACH_DATABASE (
out stat : gds_$status_vector;
in out db_handle : gds_$handle
); extern;
procedure GDS_$DROP_DATABASE (
out stat : gds_$status_vector;
in name_length : integer16;
in file_name : UNIV gds_$string;
in dbtype : integer16
); extern;
procedure GDS_$EVENT_WAIT (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in length : integer16;
in out events : UNIV gds_$string;
in out buffer : UNIV gds_$string
); extern;
procedure GDS_$GET_SLICE (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in tra_handle : gds_$handle;
in blob_id : gds_$quad;
in sdl_length : integer16;
in sdl : UNIV gds_$string;
in param_length : integer16;
in param : UNIV gds_$string;
in slice_length : integer32;
in slice : UNIV gds_$string;
in out return_length : integer32
); extern;
function GDS_$GET_SEGMENT (
out stat : gds_$status_vector;
in blob_handle : gds_$handle;
out length : integer16;
in buffer_length : integer16;
out buffer : UNIV gds_$string
): integer32; extern;
procedure GDS_$OPEN_BLOB (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in tra_handle : gds_$handle;
in out blob_handle : gds_$handle;
in blob_id : gds_$quad
); extern;
procedure GDS_$OPEN_BLOB2 (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in tra_handle : gds_$handle;
in out blob_handle : gds_$handle;
in blob_id : gds_$quad;
in bpb_length : integer16;
in bpb : UNIV gds_$string
); extern;
procedure GDS_$PREPARE_TRANSACTION (
out stat : gds_$status_vector;
in out tra_handle : gds_$handle
); extern;
procedure GDS_$PREPARE_TRANSACTION2 (
out stat : gds_$status_vector;
in out tra_handle : gds_$handle;
in msg_length : integer16;
in msg : UNIV gds_$string
); extern;
function GDS_$PUT_SEGMENT (
out stat : gds_$status_vector;
in blob_handle : gds_$handle;
in length : integer16;
out buffer : UNIV gds_$string
): integer32; extern;
procedure GDS_$PUT_SLICE (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in tra_handle : gds_$handle;
in blob_id : gds_$quad;
in sdl_length : integer16;
in sdl : UNIV gds_$string;
in param_length : integer16;
in param : UNIV gds_$string;
in slice_length : integer32;
in slice : UNIV gds_$string
); extern;
procedure GDS_$QUE_EVENTS (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in id : gds_$quad;
in length : integer16;
in events : UNIV gds_$string;
in ast : gds_$handle;
in arg : gds_$quad
); extern;
procedure GDS_$RECEIVE (
out stat : gds_$status_vector;
in request_handle : gds_$handle;
in message_type : integer16;
in message_length : integer16;
in out message : UNIV gds_$string;
in instantiation : integer16
); extern;
procedure GDS_$RELEASE_REQUEST (
out stat : gds_$status_vector;
in request_handle : gds_$handle
); extern;
procedure GDS_$ROLLBACK_TRANSACTION (
out stat : gds_$status_vector;
in out tra_handle : gds_$handle
); extern;
procedure GDS_$SEND (
out stat : gds_$status_vector;
in request_handle : gds_$handle;
in message_type : integer16;
in message_length : integer16;
in message : UNIV gds_$string;
in instantiation : integer16
); extern;
procedure GDS_$START_AND_SEND (
out stat : gds_$status_vector;
in request_handle : gds_$handle;
in tra_handle : gds_$handle;
in message_type : integer16;
in message_length : integer16;
in message : UNIV gds_$string;
in instantiation : integer16
); extern;
procedure GDS_$START_REQUEST (
out stat : gds_$status_vector;
in request_handle : gds_$handle;
in tra_handle : gds_$handle;
in instantiation : integer16
); extern;
procedure GDS_$START_MULTIPLE (
out stat : gds_$status_vector;
in out tra_handle : gds_$handle;
in tra_count : integer16;
in teb : UNIV gds_$string
); extern;
procedure GDS_$START_TRANSACTION (
out stat : gds_$status_vector;
in out tra_handle : gds_$handle;
in tra_count : integer16;
in db_handle : gds_$handle;
in tpb_length : integer16;
in tpb : UNIV gds_$string
); extern;
procedure GDS_$UNWIND_REQUEST (
out stat : gds_$status_vector;
in request_handle : gds_$handle;
in instantiation : integer16
); extern;
procedure gds_$ftof (
in string1 : UNIV gds_$string;
in length1 : integer16;
in string2 : UNIV gds_$string;
in length2 : integer16
); extern;
procedure gds_$print_status (
in stat : gds_$status_vector
); extern;
function gds_$sqlcode (
in stat : gds_$status_vector
) : integer32; extern;
procedure gds_$encode_date (
in times : gds_$tm;
out date : gds_$quad
); extern;
procedure gds_$decode_date (
in date : gds_$quad;
out times : gds_$tm
); extern;
const
gds_$true = 1;
gds_$false = 0;
$ SYMBOLS BLR DTYPE BYTE "\t%-32s= chr(%d);\n
$ SYMBOLS BLR MECH "\t%-32s= chr(%d);\n
$ SYMBOLS BLR STATEMENTS"\t%-32s= chr(%d);\n
$ SYMBOLS BLR VALUES "\t%-32s= chr(%d);\n
$ SYMBOLS BLR BOOLEANS "\t%-32s= chr(%d);\n
$ SYMBOLS BLR RSE "\t%-32s= chr(%d);\n
$ SYMBOLS BLR JOIN "\t%-32s= chr(%d);\n
$ SYMBOLS BLR AGGREGATE "\t%-32s= chr(%d);\n
$ SYMBOLS BLR NEW "\t%-32s= chr(%d);\n
(* Database parameter block stuff *)
$ SYMBOLS DPB ITEMS "\t%-32s= chr(%d);\n
$ SYMBOLS DPB BITS "\t%-32s= chr(%d);\n
(* Transaction parameter block stuff *)
$ SYMBOLS TPB ITEMS "\t%-32s= chr(%d);\n
(* Blob parameter block stuff *)
$ SYMBOLS BPB ITEMS "\t%-32s= chr(%d);\n
(* Blob routine declarations *)
type
gds_$field_name = array [1..31] of char;
gds_$file_name = array [1..128] of char;
procedure blob_$display (
in blob_id : gds_$quad;
in db_handle : gds_$handle;
in tra_handle : gds_$handle;
in field_name : univ gds_$field_name;
in name_length : integer16
); extern;
procedure blob_$dump (
in blob_id : gds_$quad;
in db_handle : gds_$handle;
in tra_handle : gds_$handle;
in file_name : univ gds_$file_name;
in name_length : integer16
); extern;
procedure blob_$edit (
in blob_id : gds_$quad;
in db_handle : gds_$handle;
in tra_handle : gds_$handle;
in field_name : univ gds_$field_name;
in name_length : integer16
); extern;
procedure blob_$load (
in blob_id : gds_$quad;
in db_handle : gds_$handle;
in tra_handle : gds_$handle;
in file_name : univ gds_$file_name;
in name_length : integer16
); extern;
(* Dynamic SQL procedures *)
procedure gds_$close (
out stat : gds_$status_vector;
in cursor_name : UNIV gds_$string
); extern;
procedure gds_$declare (
out stat : gds_$status_vector;
in statement_name : UNIV gds_$string;
in cursor_name : UNIV gds_$string
); extern;
procedure gds_$describe (
out stat : gds_$status_vector;
in statement_name : UNIV gds_$string;
in out descriptor : UNIV sqlda
); extern;
procedure gds_$dsql_finish (
in db_handle : gds_$handle
); extern;
procedure gds_$execute (
out stat : gds_$status_vector;
in trans_handle : gds_$handle;
in statement_name : UNIV gds_$string;
in out descriptor : UNIV sqlda
); extern;
procedure gds_$execute_immediate (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in trans_handle : gds_$handle;
in string_length : integer;
in string : UNIV gds_$string
); extern;
function gds_$fetch (
out stat : gds_$status_vector;
in cursor_name : UNIV gds_$string;
in out descriptor : UNIV sqlda
) : integer32; extern;
procedure gds_$open (
out stat : gds_$status_vector;
in trans_handle : gds_$handle;
in cursor_name : UNIV gds_$string;
in out descriptor : UNIV sqlda
); extern;
procedure gds_$prepare (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in trans_handle : gds_$handle;
in statement_name : UNIV gds_$string;
in string_length : integer;
in string : UNIV gds_$string;
in out descriptor : UNIV sqlda
); extern;
(* Information parameters *)
(* Common, structural codes *)
const
$ SYMBOLS INFO MECH "\t%-32s= chr(%d);\n
(* Database information items *)
$ SYMBOLS INFO DB "\t%-32s= chr(%d);\n
(* Request information items *)
$ SYMBOLS INFO REQUEST "\t%-32s= chr(%d);\n
(* Blob information items *)
$ SYMBOLS INFO BLOB "\t%-32s= chr(%d);\n
(* Transaction information items *)
$ SYMBOLS INFO TRANSACTION "\t%-32s= chr(%d);\n
(* Error codes *)
CONST
$ SYMBOLS ERROR MECH "\t%-26s= %d;\n
$ ERROR MAJOR "\t%-26s= %d;\n
(* Minor codes subject to change *)
$ ERROR MINOR "\t%-26s= %d;\n
(* Dynamic Data Definition Language operators *)
(* Version number *)
$ SYMBOLS DYN MECH "\t%-32s= chr(%d);\n
(* Operations (may be nested) *)
$ SYMBOLS DYN OPERATIONS "\t%-32s= chr(%d);\n
(* View specific stuff *)
$ SYMBOLS DYN VIEW "\t%-32s= chr(%d);\n
(* Generic attributes *)
$ SYMBOLS DYN GENERIC "\t%-32s= chr(%d);\n
(* Relation specific attributes *)
$ SYMBOLS DYN RELATION "\t%-32s= chr(%d);\n
(* Global field specific attributes *)
$ SYMBOLS DYN GLOBAL "\t%-32s= chr(%d);\n
(* Local field specific attributes *)
$ SYMBOLS DYN FIELD "\t%-32s= chr(%d);\n
(* Index specific attributes *)
$ SYMBOLS DYN INDEX "\t%-32s= chr(%d);\n
(* Trigger specific attributes *)
$ SYMBOLS DYN TRIGGER "\t%-32s= chr(%d);\n
(* Security Class specific attributes *)
$ SYMBOLS DYN SECURITY "\t%-32s= chr(%d);\n
(* dimension specific stuff *)
$ SYMBOLS DYN ARRAY "\t%-32s= chr(%d);\n
(* File specific attributes *)
$ SYMBOLS DYN FILES "\t%-32s= chr(%d);\n
(* Function specific attributes *)
$ SYMBOLS DYN FUNCTIONS "\t%-32s= chr(%d);\n
(* Generator specific attributes *)
$ SYMBOLS DYN GENERATOR "\t%-32s= chr(%d);\n
(* Array slice description language (SDL) *)
$ SYMBOLS SDL SDL BYTE "\t%-32s= chr(%d);\n
(* Dynamic SQL datatypes *)
CONST
$ SYMBOLS SQL DTYPE "\t%-32s= %d;\n
(* Forms Package definitions *)
(* Map definition block definitions *)
CONST
$ SYMBOLS PYXIS MAP BYTE "\t%-32s= chr(%d);\n
(* Field option flags for display options *)
CONST
$ SYMBOLS PYXIS DISPLAY "\t%-32s= %d;\n
(* Field option values following display *)
CONST
$ SYMBOLS PYXIS VALUE "\t%-32s= %d;\n
(* Pseudo key definitions *)
CONST
$ SYMBOLS PYXIS KEY "\t%-32s= %d;\n
(* Menu definition stuff *)
CONST
$ SYMBOLS PYXIS MENU BYTE "\t%-32s= chr(%d);\n
procedure pyxis_$compile_map (
out stat : gds_$status_vector;
in form_handle : gds_$handle;
out map_handle : gds_$handle;
in length : integer16;
in map : UNIV gds_$string
); extern;
procedure pyxis_$compile_sub_map (
out stat : gds_$status_vector;
in form_handle : gds_$handle;
out map_handle : gds_$handle;
in length : integer16;
in map : UNIV gds_$string
); extern;
procedure pyxis_$create_window (
in out window_handle : gds_$handle;
in name_length : integer16;
in file_name : UNIV gds_$string;
in out width : integer16;
in out height : integer16
); extern;
procedure pyxis_$delete_window (
in out window_handle : gds_$handle
); extern;
procedure pyxis_$drive_form (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in trans_handle : gds_$handle;
in out window_handle : gds_$handle;
in map_handle : gds_$handle;
in input : UNIV gds_$string;
in output : UNIV gds_$string
); extern;
procedure pyxis_$fetch (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in trans_handle : gds_$handle;
in map_handle : gds_$handle;
in output : UNIV gds_$string
); extern;
procedure pyxis_$insert (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in trans_handle : gds_$handle;
in map_handle : gds_$handle;
in input : UNIV gds_$string
); extern;
procedure pyxis_$load_form (
out stat : gds_$status_vector;
in db_handle : gds_$handle;
in trans_handle : gds_$handle;
in out form_handle : gds_$handle;
in name_length : integer16;
in form_name : UNIV gds_$string
); extern;
function pyxis_$menu (
in out window_handle : gds_$handle;
in out menu_handle : gds_$handle;
in length : integer16;
in menu : UNIV gds_$string
) : integer16; extern;
procedure pyxis_$pop_window (
in window_handle : gds_$handle
); extern;
procedure pyxis_$reset_form (
out stat : gds_$status_vector;
in window_handle : gds_$handle
); extern;
procedure pyxis_$drive_menu (
in out window_handle : gds_$handle;
in out menu_handle : gds_$handle;
in blr_length : integer16;
in blr_source : UNIV gds_$string;
in title_length : integer16;
in title : UNIV gds_$string;
out terminator : integer16;
out entree_length : integer16;
out entree_text : UNIV gds_$string;
out entree_value : integer32
); extern;
procedure pyxis_$get_entree (
in menu_handle : gds_$handle;
out entree_length : integer16;
out entree_text : UNIV gds_$string;
out entree_value : integer32;
out entree_end : integer16
); extern;
procedure pyxis_$initialize_menu (
in out menu_handle : gds_$handle
); extern;
procedure pyxis_$put_entree (
in menu_handle : gds_$handle;
in entree_length : integer16;
in entree_text : UNIV gds_$string;
in entree_value : integer32
); extern;');
INSERT INTO TEMPLATES (LANGUAGE, "FILE", TEMPLATE) VALUES ('APOLLO_ADA', 'interbase.a',
'WITH SYSTEM;
PACKAGE interbase IS
TYPE status_vector IS ARRAY (0..19) OF INTEGER;
TYPE quad IS ARRAY (0..1) OF INTEGER;
TYPE chars is array (integer range <>) of character;
TYPE blr IS ARRAY (integer range <>) of tiny_integer;
TYPE dpb IS ARRAY (integer range <>) of tiny_integer;
TYPE tpb IS ARRAY (integer range <>) of tiny_integer;
SUBTYPE isc_short IS short_integer;
SUBTYPE isc_long IS integer;
SUBTYPE isc_float IS short_float;
SUBTYPE isc_double IS float;
SUBTYPE database_handle IS integer;
SUBTYPE request_handle IS integer;
SUBTYPE transaction_handle IS integer;
SUBTYPE blob_handle IS integer;
SUBTYPE form_handle IS integer;
SUBTYPE map_handle IS integer;
SUBTYPE window_handle IS integer;
SUBTYPE menu_handle IS integer;
TYPE gds_teb_t IS RECORD
dbb_ptr : SYSTEM.ADDRESS;
tpb_len : integer;
tpb_ptr : SYSTEM.ADDRESS;
END RECORD;
TYPE gds_tm IS RECORD
tm_sec : integer;
tm_min : integer;
tm_hour : integer;
tm_mday : integer;
tm_mon : integer;
tm_year : integer;
tm_wday : integer;
tm_yday : integer;
tm_isdst : integer;
END RECORD;
TYPE sqlvar is RECORD
sqltype : short_integer;
sqllen : short_integer;
sqldata : SYSTEM.ADDRESS;
sqlind : SYSTEM.ADDRESS;
sqlname_length : short_integer;
sqlname : chars (1..30);
END RECORD;
FOR sqlvar use record at mod 2;
sqltype at 0 range 0..15;
sqllen at 2 range 0..15;
sqldata at 4 range 0..31;
sqlind at 8 range 0..31;
sqlname_length at 12 range 0..15;
sqlname at 14 range 0..239;
END RECORD;
TYPE sqlvar_array IS ARRAY (short_integer range <>) of sqlvar;
--- Constants
gds_true : CONSTANT integer := 1;
gds_false : CONSTANT integer := 0;
--- BLR
$ SET SANS_DOLLAR
$ FORMAT BLR_FORMAT " %s : CONSTANT tiny_integer := %d;\n
$ FORMAT DYN_FORMAT " %-32s: CONSTANT tiny_integer := %d;\n
$ FORMAT SDL_FORMAT " %-32s: CONSTANT tiny_integer := %d;\n
$ FORMAT ERROR_FORMAT "%-25s: CONSTANT integer := %d;\n
$ FORMAT PB_FORMAT " %-29s: CONSTANT tiny_integer := %d;\n
$ FORMAT PYXIS_FORMAT "%-29s: CONSTANT tiny_integer := %d;\n
$ FORMAT OPT_FORMAT "%-32s: CONSTANT integer := %d;\n
$ FORMAT SQL_FORMAT "%-16s: CONSTANT short_integer := %d;\n
$ SYMBOLS BLR DTYPE BLR_FORMAT
$ SYMBOLS BLR MECH SIGNED BLR_FORMAT
$ SYMBOLS BLR STATEMENTS BLR_FORMAT
$ SYMBOLS BLR VALUES BLR_FORMAT
$ SYMBOLS BLR BOOLEANS BLR_FORMAT
$ SYMBOLS BLR RSE BLR_FORMAT
$ SYMBOLS BLR JOIN BLR_FORMAT
$ SYMBOLS BLR AGGREGATE BLR_FORMAT
$ SYMBOLS BLR NEW BLR_FORMAT
--- Dynamic Data Definition Language operators
--- Version number
$ SYMBOLS DYN MECH SIGNED DYN_FORMAT
--- Operations (may be nested)
$ SYMBOLS DYN OPERATIONS SIGNED DYN_FORMAT
--- View specific stuff
$ SYMBOLS DYN VIEW SIGNED DYN_FORMAT
--- Generic attributes
$ SYMBOLS DYN GENERIC SIGNED DYN_FORMAT
--- Relation specific attributes
$ SYMBOLS DYN RELATION SIGNED DYN_FORMAT
--- Global field specific attributes
$ SYMBOLS DYN GLOBAL SIGNED DYN_FORMAT
--- Local field specific attributes
$ SYMBOLS DYN FIELD SIGNED DYN_FORMAT
--- Index specific attributes
$ SYMBOLS DYN INDEX SIGNED DYN_FORMAT
--- Trigger specific attributes
$ SYMBOLS DYN TRIGGER SIGNED DYN_FORMAT
--- Security Class specific attributes
$ SYMBOLS DYN SECURITY SIGNED DYN_FORMAT
--- Dimension attributes
$ SYMBOLS DYN ARRAY SIGNED DYN_FORMAT
--- File specific attributes
$ SYMBOLS DYN FILES DYN_FORMAT
--- Function specific attributes
$ SYMBOLS DYN FUNCTIONS DYN_FORMAT
--- Generator specific attributes
$ SYMBOLS DYN GENERATOR DYN_FORMAT
--- Array slice description language (SDL)
$ SYMBOLS SDL SDL SIGNED SDL_FORMAT
--- Database parameter block stuff
$ SYMBOLS DPB ITEMS PB_FORMAT
$ SYMBOLS DPB BITS PB_FORMAT
--- Transaction parameter block stuff
$ SYMBOLS TPB ITEMS PB_FORMAT
--- Blob parameter block stuff
$ SYMBOLS BPB ITEMS PB_FORMAT
--- Common, structural codes
$ SYMBOLS INFO MECH PB_FORMAT
--- Database information items
$ SYMBOLS INFO DB PB_FORMAT
--- Request information items
$ SYMBOLS INFO REQUEST PB_FORMAT
--- Blob information items
$ SYMBOLS INFO BLOB PB_FORMAT
--- Transaction information items
$ SYMBOLS INFO TRANSACTION PB_FORMAT
--- Error codes
$ SYMBOLS ERROR MECH ERROR_FORMAT
$ ERROR MAJOR ERROR_FORMAT
--- Minor codes subject to change
$ ERROR MINOR ERROR_FORMAT
--- Dynamic SQL datatypes
$ SYMBOLS SQL DTYPE SQL_FORMAT
--- Forms Package definitions
--- Map definition block definitions
$ SYMBOLS PYXIS MAP SIGNED PYXIS_FORMAT
--- Field option flags for display options
$ SYMBOLS PYXIS DISPLAY OPT_FORMAT
--- Field option values following display
$ SYMBOLS PYXIS VALUE OPT_FORMAT
--- Pseudo key definitions
$ SYMBOLS PYXIS KEY OPT_FORMAT
--- Menu definition stuff
$ SYMBOLS PYXIS MENU SIGNED PYXIS_FORMAT
database_error : EXCEPTION;
null_blob : CONSTANT quad := (0, 0);
null_tpb : tpb (0..0);
null_dpb : dpb (0..0);
PROCEDURE attach_database (
user_status : OUT status_vector;
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb);
PROCEDURE blob_display (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : short_integer);
PROCEDURE blob_dump (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : short_integer);
PROCEDURE blob_edit (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : short_integer);
PROCEDURE blob_load (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : short_integer);
PROCEDURE cancel_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE cancel_events (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE close_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE commit_retaining (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE commit_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE compile_request (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr);
PROCEDURE compile_request2 (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr);
PROCEDURE create_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad);
PROCEDURE create_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : short_integer;
bpb : blr);
PROCEDURE create_database (
user_status : OUT status_vector;
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb;
db_type : short_integer);
PROCEDURE detach_database (
user_status : OUT status_vector;
db_handle : IN OUT database_handle);
PROCEDURE ddl (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : short_integer;
msg : SYSTEM.ADDRESS);
PROCEDURE decode_date (
date : quad;
times : IN OUT gds_tm);
PROCEDURE encode_date (
times : IN OUT gds_tm;
date : quad);
PROCEDURE event_wait (
user_status : OUT status_vector;
db_handle : database_handle;
length : short_integer;
events : string;
buffer : string);
PROCEDURE get_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
actual_length : OUT short_integer;
buffer_length : short_integer;
buffer : string);
PROCEDURE get_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS;
return_length : OUT integer);
PROCEDURE open_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad);
PROCEDURE open_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : short_integer;
bpb : blr);
PROCEDURE prepare_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE prepare_transaction2 (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
msg_length : short_integer;
msg : blr);
PROCEDURE put_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
length : short_integer;
buffer : string);
PROCEDURE put_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS);
PROCEDURE queue_events (
user_status : OUT status_vector;
db_handle : database_handle;
id : quad;
length : short_integer;
events : string;
ast : integer;
arg : quad);
PROCEDURE receive (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE rollback_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE send (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE set_debug (
debug_val : integer);
PROCEDURE start_and_send (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE start_request (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
level : short_integer);
PROCEDURE start_multiple (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : short_integer;
teb : SYSTEM.ADDRESS);
PROCEDURE start_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : short_integer;
db_handle : database_handle;
tpb_length : short_integer;
tpb_arg : tpb);
PROCEDURE unwind_request (
user_status : OUT status_vector;
req_handle : request_handle;
level : short_integer);
PROCEDURE print_status (
user_status : status_vector);
PROCEDURE print_version (
db_handle : database_handle);
FUNCTION sqlcode (
user_status : status_vector) RETURN integer;
--- Dynamic SQL procedures
PROCEDURE dsql_close (
user_status : OUT status_vector;
cursor_name : string);
PROCEDURE dsql_declare (
user_status : OUT status_vector;
statement_name : string;
cursor_name : string);
PROCEDURE dsql_describe (
user_status : OUT status_vector;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string);
PROCEDURE dsql_execute_immediate (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : short_integer;
command : string);
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT integer;
cursor_name : string);
PROCEDURE dsql_finish (
db_handle : database_handle);
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string);
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string);
--- PYXIS procedures
PROCEDURE compile_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr);
PROCEDURE compile_sub_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr);
PROCEDURE create_window (
win_handle : OUT window_handle;
name_length : short_integer;
file_name : string;
width : IN OUT short_integer;
height : IN OUT short_integer);
PROCEDURE delete_window (
win_handle : IN OUT window_handle);
PROCEDURE drive_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS);
PROCEDURE fetch_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS);
PROCEDURE insert_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS);
PROCEDURE load_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : short_integer;
form_name : string);
FUNCTION menu (
win_handle : window_handle;
men_handle : menu_handle;
menu_length : short_integer;
menu : blr) RETURN short_integer;
PROCEDURE pop_window (
win_handle : window_handle);
PROCEDURE reset_form (
user_status : OUT status_vector;
win_handle : window_handle);
PROCEDURE drive_menu (
win_handle : IN OUT window_handle;
men_handle : IN OUT menu_handle;
blr_length : short_integer;
blr_source : blr;
title_length : short_integer;
title : string;
terminator : OUT short_integer;
entree_length : OUT short_integer;
entree_text : OUT string;
entree_value : OUT integer);
PROCEDURE get_entree (
men_handle : menu_handle;
entree_length : OUT short_integer;
entree_text : OUT string;
entree_value : OUT integer;
entree_end : OUT short_integer);
PROCEDURE initialize_menu (
men_handle : IN OUT menu_handle);
PROCEDURE put_entree (
men_handle : menu_handle;
entree_length : short_integer;
entree_text : string;
entree_value : integer);
---
--- Same routines, but with automatic error checking
---
PROCEDURE attach_database (
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb);
PROCEDURE cancel_blob (
blb_handle : IN OUT blob_handle);
PROCEDURE cancel_events (
blb_handle : IN OUT blob_handle);
PROCEDURE close_blob (
blb_handle : IN OUT blob_handle);
PROCEDURE commit_retaining (
trans_handle : IN OUT transaction_handle);
PROCEDURE commit_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE compile_request (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr);
PROCEDURE compile_request2 (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr);
PROCEDURE create_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad);
PROCEDURE create_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : short_integer;
bpb : blr);
PROCEDURE create_database (
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb;
db_type : short_integer);
PROCEDURE detach_database (
db_handle : IN OUT database_handle);
PROCEDURE ddl (
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : short_integer;
msg : SYSTEM.ADDRESS);
PROCEDURE get_segment (
completion_code : OUT integer;
blb_handle : blob_handle;
actual_length : OUT short_integer;
buffer_length : short_integer;
buffer : string);
PROCEDURE get_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS;
return_length : OUT integer);
PROCEDURE open_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad);
PROCEDURE open_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : short_integer;
bpb : blr);
PROCEDURE prepare_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE prepare_transaction2 (
trans_handle : IN OUT transaction_handle;
msg_length : short_integer;
msg : blr);
PROCEDURE put_segment (
blb_handle : blob_handle;
length : short_integer;
buffer : string);
PROCEDURE put_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS);
PROCEDURE queue_events (
db_handle : database_handle;
id : quad;
length : short_integer;
events : string;
ast : integer;
arg : quad);
PROCEDURE receive (
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE rollback_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE send (
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE start_and_send (
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE start_request (
req_handle : request_handle;
trans_handle : transaction_handle;
level : short_integer);
PROCEDURE start_multiple (
trans_handle : IN OUT transaction_handle;
count : short_integer;
teb : SYSTEM.ADDRESS);
PROCEDURE start_transaction (
trans_handle : IN OUT transaction_handle;
count : short_integer;
db_handle : database_handle;
tpb_length : short_integer;
tpb_arg : tpb);
PROCEDURE unwind_request (
req_handle : request_handle;
level : short_integer);
PROCEDURE dsql_close (
cursor_name : string);
PROCEDURE dsql_declare (
statement_name : string;
cursor_name : string);
PROCEDURE dsql_describe (
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string);
PROCEDURE dsql_execute_immediate (
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : short_integer;
command : string);
PROCEDURE dsql_fetch (
sqlcode : OUT integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_fetch (
sqlcode : OUT integer;
cursor_name : string);
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string);
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string);
--- PYXIS procedures
PROCEDURE compile_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr);
PROCEDURE compile_sub_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr);
PROCEDURE drive_form (
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS);
PROCEDURE fetch_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS);
PROCEDURE insert_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS);
PROCEDURE load_form (
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : short_integer;
form_name : string);
PROCEDURE reset_form (
win_handle : window_handle);
END interbase;
PACKAGE BODY interbase IS
---
--- Actual Interbase entrypoints
---
PROCEDURE gds_attach_database (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
file_length : SYSTEM.ADDRESS; -- short_integer;
file_name : SYSTEM.ADDRESS; -- string;
handle : SYSTEM.ADDRESS; -- IN OUT database_handle;
dpb_length : SYSTEM.ADDRESS; -- short_integer;
dpb : SYSTEM.ADDRESS);
PROCEDURE gds_blob_display (
blob_id : SYSTEM.ADDRESS; -- quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
field_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- short_integer;
PROCEDURE gds_blob_dump (
blob_id : SYSTEM.ADDRESS; -- quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
file_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- short_integer;
PROCEDURE gds_blob_edit (
blob_id : SYSTEM.ADDRESS; -- IN OUT quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
field_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- short_integer;
PROCEDURE gds_blob_load (
blob_id : SYSTEM.ADDRESS; -- quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
file_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- short_integer;
PROCEDURE gds_cancel_blob (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
blb_handle : SYSTEM.ADDRESS); -- IN OUT blob_handle);
PROCEDURE gds_cancel_events (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
blb_handle : SYSTEM.ADDRESS); -- IN OUT blob_handle);
PROCEDURE gds_close_blob (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
blb_handle : SYSTEM.ADDRESS); --IN OUT blob_handle);
PROCEDURE gds_commit_retaining (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle);
PROCEDURE gds_commit_transaction (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle);
PROCEDURE gds_compile_request (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
req_handle : SYSTEM.ADDRESS; -- IN OUT request_handle;
blr_length : SYSTEM.ADDRESS; -- short_integer;
blr : SYSTEM.ADDRESS);
PROCEDURE gds_compile_request2 (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
req_handle : SYSTEM.ADDRESS; -- IN OUT request_handle;
blr_length : SYSTEM.ADDRESS; -- short_integer;
blr_arg : SYSTEM.ADDRESS); -- blr;
PROCEDURE gds_create_blob (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
blb_handle : SYSTEM.ADDRESS; --IN OUT blob_handle;
blob_id : SYSTEM.ADDRESS); --OUT quad);
PROCEDURE gds_create_blob2 (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
blb_handle : SYSTEM.ADDRESS; --IN OUT blob_handle;
blob_id : SYSTEM.ADDRESS; --OUT quad;
bpb_length : SYSTEM.ADDRESS; --short_integer;
bpb : SYSTEM.ADDRESS); --blr;
PROCEDURE gds_create_database (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
file_length : SYSTEM.ADDRESS; --short_integer;
file_name : SYSTEM.ADDRESS; --string;
db_handle : SYSTEM.ADDRESS; --IN OUT database_handle;
dpb_length : SYSTEM.ADDRESS; --short_integer;
dpb_arg : SYSTEM.ADDRESS; --dpb;
db_type : SYSTEM.ADDRESS); --integer);
PROCEDURE gds_ddl (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
msg_length : SYSTEM.ADDRESS; -- short_integer;
msg : SYSTEM.ADDRESS);
PROCEDURE gds_decode_date (
date : SYSTEM.ADDRESS; -- quad;
times : SYSTEM.ADDRESS); -- gds_tm);
PROCEDURE gds_detach_database (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
handle : SYSTEM.ADDRESS); -- IN OUT database_handle);
PROCEDURE gds_encode_date (
times : SYSTEM.ADDRESS; -- gds_tm;
date : SYSTEM.ADDRESS); -- OUT quad);
PROCEDURE gds_event_wait (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
length : SYSTEM.ADDRESS; -- short_integer;
events : SYSTEM.ADDRESS; -- string;
buffer : SYSTEM.ADDRESS); -- string;
PROCEDURE gds_get_segment (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
blb_handle : SYSTEM.ADDRESS; --blob_handle;
actual_length : SYSTEM.ADDRESS; --OUT integer;
buffer_length : SYSTEM.ADDRESS; --integer;
buffer : SYSTEM.ADDRESS); --string;
PROCEDURE gds_get_slice (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
blob_id : SYSTEM.ADDRESS; -- quad;
sdl_length : SYSTEM.ADDRESS; -- short_integer;
sdl : SYSTEM.ADDRESS; -- blr;
param_length : SYSTEM.ADDRESS; -- short_integer;
param : SYSTEM.ADDRESS; -- string;
slice_length : SYSTEM.ADDRESS; -- integer;
slice : SYSTEM.ADDRESS; -- string;
return_length : SYSTEM.ADDRESS); -- OUT integer;
PROCEDURE gds_open_blob (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
blb_handle : SYSTEM.ADDRESS; --IN OUT blob_handle;
blob_id : SYSTEM.ADDRESS); --quad;
PROCEDURE gds_open_blob2 (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
blb_handle : SYSTEM.ADDRESS; --IN OUT blob_handle;
blob_id : SYSTEM.ADDRESS; --quad;
bpb_length : SYSTEM.ADDRESS; --short_integer;
bpb : SYSTEM.ADDRESS); --blr;
PROCEDURE gds_prepare_transaction (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle;
PROCEDURE gds_prepare_transaction2 (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- IN OUT transaction_handle;
msg_length : SYSTEM.ADDRESS; -- short_integer;
msg : SYSTEM.ADDRESS); -- blr;
PROCEDURE gds_put_segment (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
blb_handle : SYSTEM.ADDRESS; --blob_handle;
length : SYSTEM.ADDRESS; --integer;
buffer : SYSTEM.ADDRESS); --string;
PROCEDURE gds_put_slice (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
blob_id : SYSTEM.ADDRESS; -- quad;
sdl_length : SYSTEM.ADDRESS; -- short_integer;
sdl : SYSTEM.ADDRESS; -- blr;
param_length : SYSTEM.ADDRESS; -- short_integer;
param : SYSTEM.ADDRESS; -- string;
slice_length : SYSTEM.ADDRESS; -- integer;
slice : SYSTEM.ADDRESS); -- string;
PROCEDURE gds_queue_events (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
id : SYSTEM.ADDRESS; -- quad;
length : SYSTEM.ADDRESS; -- short_integer;
events : SYSTEM.ADDRESS; -- string;
ast : SYSTEM.ADDRESS; -- integer;
arg : SYSTEM.ADDRESS); -- quad;
PROCEDURE gds_receive (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
msg_type : SYSTEM.ADDRESS; -- short_integer;
msg_length : SYSTEM.ADDRESS; -- short_integer;
msg : SYSTEM.ADDRESS;
level : SYSTEM.ADDRESS); -- short_integer;
PROCEDURE gds_rollback_transaction (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle;
PROCEDURE gds_send (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
msg_type : SYSTEM.ADDRESS; -- short_integer;
msg_length : SYSTEM.ADDRESS; -- short_integer;
msg : SYSTEM.ADDRESS;
level : SYSTEM.ADDRESS); -- short_integer);
PROCEDURE gds_set_debug (
debug_val : SYSTEM.ADDRESS); -- short_integer);
PROCEDURE gds_start_and_send (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
msg_type : SYSTEM.ADDRESS; -- short_integer;
msg_length : SYSTEM.ADDRESS; -- short_integer;
msg : SYSTEM.ADDRESS;
level : SYSTEM.ADDRESS); -- short_integer);
PROCEDURE gds_start_request (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
level : SYSTEM.ADDRESS); -- short_integer);
PROCEDURE gds_start_multiple (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- IN OUT transaction_handle;
count : SYSTEM.ADDRESS; -- short_integer;
teb : SYSTEM.ADDRESS);
PROCEDURE gds_start_transaction (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- IN OUT transaction_handle;
count : SYSTEM.ADDRESS; -- short_integer;
db_handle : SYSTEM.ADDRESS; -- database_handle;
dpb_length : SYSTEM.ADDRESS; -- short_integer;
dpb : SYSTEM.ADDRESS);
PROCEDURE gds_unwind_request (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
level : SYSTEM.ADDRESS); -- short_integer);
PROCEDURE gds_print_status (
user_status : SYSTEM.ADDRESS); -- status_vector;
PROCEDURE gds_version (
db_handle : SYSTEM.ADDRESS;
ptr1 : integer;
ptr2 : SYSTEM.ADDRESS);
FUNCTION gds_sqlcode (
user_status : SYSTEM.ADDRESS) RETURN integer;
--- Dynamic SQL procedures
PROCEDURE gds_close (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
cursor_name : SYSTEM.ADDRESS); -- string);
PROCEDURE gds_declare (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
statement_name : SYSTEM.ADDRESS; -- string;
cursor_name : SYSTEM.ADDRESS); -- string);
PROCEDURE gds_describe (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
statement_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE gds_dsql_finish (
user_status : SYSTEM.ADDRESS); -- database handle;
PROCEDURE gds_execute (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
statement_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE gds_execute_immediate (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
command_length : SYSTEM.ADDRESS; -- short_integer;
command : SYSTEM.ADDRESS); -- string);
PROCEDURE gds_fetch (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
sqlcode : SYSTEM.ADDRESS; -- OUT integer;
cursor_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE gds_open (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
cursor_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE gds_prepare (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
statement_name : SYSTEM.ADDRESS; -- string;
command_length : SYSTEM.ADDRESS; -- short_integer;
command : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
--- PYXIS procedures
PROCEDURE pyxis_compile_map (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
frm_handle : SYSTEM.ADDRESS; -- form_handle;
mp_handle : SYSTEM.ADDRESS; -- OUT map_handle;
map_length : SYSTEM.ADDRESS; -- short_integer;
map : SYSTEM.ADDRESS); -- blr);
PROCEDURE pyxis_compile_sub_map (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
frm_handle : SYSTEM.ADDRESS; -- form_handle;
mp_handle : SYSTEM.ADDRESS; -- OUT map_handle;
map_length : SYSTEM.ADDRESS; -- short_integer;
map : SYSTEM.ADDRESS); -- blr);
PROCEDURE pyxis_create_window (
win_handle : SYSTEM.ADDRESS; -- OUT window_handle;
name_length : SYSTEM.ADDRESS; -- short_integer;
file_name : SYSTEM.ADDRESS; -- string;
width : SYSTEM.ADDRESS; -- IN OUT short_integer;
height : SYSTEM.ADDRESS); -- IN OUT short_integer);
PROCEDURE pyxis_delete_window (
win_handle : SYSTEM.ADDRESS); -- IN OUT window_handle);
PROCEDURE pyxis_drive_form (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
win_handle : SYSTEM.ADDRESS; -- window_handle;
mp_handle : SYSTEM.ADDRESS; -- map_handle;
input : SYSTEM.ADDRESS; -- SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE pyxis_fetch (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
mp_handle : SYSTEM.ADDRESS; -- map_handle;
output : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE pyxis_insert (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
mp_handle : SYSTEM.ADDRESS; -- map_handle;
input : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE pyxis_load_form (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
frm_handle : SYSTEM.ADDRESS; -- IN OUT form_handle;
name_length : SYSTEM.ADDRESS; -- short_integer;
form_name : SYSTEM.ADDRESS); -- string);
FUNCTION pyxis_menu (
win_handle : SYSTEM.ADDRESS; -- window_handle;
men_handle : SYSTEM.ADDRESS; -- menu_handle;
menu_length : SYSTEM.ADDRESS; -- short_integer;
menu : SYSTEM.ADDRESS) RETURN short_integer; -- blr) ;
PROCEDURE pyxis_pop_window (
win_handle : SYSTEM.ADDRESS); -- window_handle);
PROCEDURE pyxis_reset_form (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
win_handle : SYSTEM.ADDRESS); -- window_handle);
PROCEDURE pyxis_drive_menu (
win_handle : SYSTEM.ADDRESS; -- IN OUT window_handle;
men_handle : SYSTEM.ADDRESS; -- IN OUT menu_handle;
blr_length : SYSTEM.ADDRESS; -- short_integer;
blr_source : SYSTEM.ADDRESS; -- blr;
title_length : SYSTEM.ADDRESS; -- short_integer;
title : SYSTEM.ADDRESS; -- string;
terminator : SYSTEM.ADDRESS; -- OUT short_integer;
entree_length : SYSTEM.ADDRESS; -- OUT short_integer;
entree_text : SYSTEM.ADDRESS; -- OUT string;
entree_value : SYSTEM.ADDRESS); -- OUT integer);
PROCEDURE pyxis_get_entree (
men_handle : SYSTEM.ADDRESS; -- menu_handle;
entree_length : SYSTEM.ADDRESS; -- OUT short_integer;
entree_text : SYSTEM.ADDRESS; -- OUT string;
entree_value : SYSTEM.ADDRESS; -- OUT integer;
entree_end : SYSTEM.ADDRESS); -- OUT short_integer);
PROCEDURE pyxis_initialize_menu (
men_handle : SYSTEM.ADDRESS); -- IN OUT menu_handle);
PROCEDURE pyxis_put_entree (
men_handle : SYSTEM.ADDRESS; -- menu_handle;
entree_length : SYSTEM.ADDRESS; -- short_integer;
entree_text : SYSTEM.ADDRESS; -- string;
entree_value : SYSTEM.ADDRESS); -- integer);
pragma interface (C, gds_attach_database, "gds_$attach_database");
pragma interface (C, gds_blob_display, "blob_$display");
pragma interface (C, gds_blob_dump, "blob_$dump");
pragma interface (C, gds_blob_edit, "blob_$edit");
pragma interface (C, gds_blob_load, "blob_$load");
pragma interface (C, gds_cancel_blob, "gds_$cancel_blob");
pragma interface (C, gds_cancel_events, "gds_$cancel_events");
pragma interface (C, gds_close, "gds_$close");
pragma interface (C, gds_close_blob, "gds_$close_blob");
pragma interface (C, gds_commit_retaining, "gds_$commit_retaining");
pragma interface (C, gds_commit_transaction, "gds_$commit_transaction");
pragma interface (C, gds_compile_request, "gds_$compile_request");
pragma interface (C, gds_compile_request2, "gds_$compile_request2");
pragma interface (C, gds_create_blob, "gds_$create_blob");
pragma interface (C, gds_create_blob2, "gds_$create_blob2");
pragma interface (C, gds_create_database, "gds_$create_database");
pragma interface (C, gds_ddl, "gds_$ddl");
pragma interface (C, gds_declare, "gds_$declare");
pragma interface (C, gds_decode_date, "gds_$decode_date");
pragma interface (C, gds_describe, "gds_$describe");
pragma interface (C, gds_detach_database, "gds_$detach_database");
pragma interface (C, gds_dsql_finish, "gds_$dsql_finish");
pragma interface (C, gds_encode_date, "gds_$encode_date");
pragma interface (C, gds_event_wait, "gds_$event_wait");
pragma interface (C, gds_execute, "gds_$execute");
pragma interface (C, gds_execute_immediate, "gds_$execute_immediate");
pragma interface (C, gds_fetch, "gds_$fetch_a");
pragma interface (C, gds_get_segment, "gds_$get_segment");
pragma interface (C, gds_get_slice, "gds_$get_slice");
pragma interface (C, gds_open, "gds_$open");
pragma interface (C, gds_open_blob, "gds_$open_blob");
pragma interface (C, gds_open_blob2, "gds_$open_blob2");
pragma interface (C, gds_prepare, "gds_$prepare");
pragma interface (C, gds_prepare_transaction, "gds_$prepare_transaction");
pragma interface (C, gds_prepare_transaction2, "gds_$prepare_transaction2");
pragma interface (C, gds_print_status, "gds_$print_status");
pragma interface (C, gds_put_segment, "gds_$put_segment");
pragma interface (C, gds_put_slice, "gds_$put_slice");
pragma interface (C, gds_queue_events, "gds_$que_events");
pragma interface (C, gds_receive, "gds_$receive");
pragma interface (C, gds_rollback_transaction, "gds_$rollback_transaction");
pragma interface (C, gds_send, "gds_$send");
pragma interface (C, gds_set_debug, "gds_$set_debug");
pragma interface (C, gds_sqlcode, "gds_$sqlcode");
pragma interface (C, gds_start_and_send, "gds_$start_and_send");
pragma interface (C, gds_start_multiple, "gds_$start_multiple");
pragma interface (C, gds_start_request, "gds_$start_request");
pragma interface (C, gds_start_transaction, "gds_$start_transaction");
pragma interface (C, gds_unwind_request, "gds_$unwind_request");
pragma interface (C, gds_version, "gds_$version");
pragma interface (C, pyxis_compile_map, "pyxis_$compile_map");
pragma interface (C, pyxis_compile_sub_map, "pyxis_$compile_sub_map");
pragma interface (C, pyxis_create_window, "pyxis_$create_window");
pragma interface (C, pyxis_delete_window, "pyxis_$delete_window");
pragma interface (C, pyxis_drive_form, "pyxis_$drive_form");
pragma interface (C, pyxis_drive_menu, "pyxis_$drive_menu");
pragma interface (C, pyxis_fetch, "pyxis_$fetch");
pragma interface (C, pyxis_get_entree, "pyxis_$get_entree");
pragma interface (C, pyxis_initialize_menu, "pyxis_$initialize_menu");
pragma interface (C, pyxis_insert, "pyxis_$insert");
pragma interface (C, pyxis_load_form, "pyxis_$load_form");
pragma interface (C, pyxis_menu, "pyxis_$menu");
pragma interface (C, pyxis_pop_window, "pyxis_$pop_window");
pragma interface (C, pyxis_put_entree, "pyxis_$put_entree");
pragma interface (C, pyxis_reset_form, "pyxis_$reset_form");
---
--- Interface routines that return status vector
---
PROCEDURE attach_database (
user_status : OUT status_vector;
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb) IS
BEGIN
gds_attach_database (
user_status'address,
file_length'address,
file_name'address,
db_handle'address,
dpb_length'address,
dpb_arg'address);
END attach_database;
PROCEDURE blob_display (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : short_integer) IS
BEGIN
gds_blob_display (
blob_id'address,
db_handle'address,
tra_handle'address,
field_name'address,
name_length'address);
END blob_display;
PROCEDURE blob_dump (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : short_integer) IS
BEGIN
gds_blob_dump (
blob_id'address,
db_handle'address,
tra_handle'address,
file_name'address,
name_length'address);
END blob_dump;
PROCEDURE blob_edit (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : short_integer) IS
BEGIN
gds_blob_edit (
blob_id'address,
db_handle'address,
tra_handle'address,
field_name'address,
name_length'address);
END blob_edit;
PROCEDURE blob_load (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : short_integer) IS
BEGIN
gds_blob_load (
blob_id'address,
db_handle'address,
tra_handle'address,
file_name'address,
name_length'address);
END blob_load;
PROCEDURE cancel_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle) IS
BEGIN
gds_cancel_blob (
user_status'address,
blb_handle'address);
END cancel_blob;
PROCEDURE cancel_events (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle) IS
BEGIN
gds_cancel_events (
user_status'address,
blb_handle'address);
END cancel_events;
PROCEDURE close_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle) IS
BEGIN
gds_close_blob (
user_status'address,
blb_handle'address);
END close_blob;
PROCEDURE commit_retaining (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_commit_retaining (
user_status'address,
trans_handle'address);
END commit_retaining;
PROCEDURE commit_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_commit_transaction (
user_status'address,
trans_handle'address);
END commit_transaction;
PROCEDURE compile_request (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr) IS
BEGIN
gds_compile_request (
user_status'address,
db_handle'address,
req_handle'address,
blr_length'address,
blr_arg'address);
END compile_request;
PROCEDURE compile_request2 (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr) IS
BEGIN
gds_compile_request2 (
user_status'address,
db_handle'address,
req_handle'address,
blr_length'address,
blr_arg'address);
END compile_request2;
PROCEDURE create_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad) IS
BEGIN
gds_create_blob (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address);
END create_blob;
PROCEDURE create_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : short_integer;
bpb : blr) IS
BEGIN
gds_create_blob2 (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address,
bpb_length'address,
bpb'address);
END create_blob2;
PROCEDURE create_database (
user_status : OUT status_vector;
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb;
db_type : short_integer) IS
BEGIN
gds_create_database (
user_status'address,
file_length'address,
file_name'address,
db_handle'address,
dpb_length'address,
dpb_arg'address,
db_type'address);
END create_database;
PROCEDURE ddl (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : short_integer;
msg : SYSTEM.ADDRESS) IS
BEGIN
gds_ddl (
user_status'address,
db_handle'address,
trans_handle'address,
msg_length'address,
msg);
END ddl;
PROCEDURE decode_date (
date : quad;
times : IN OUT gds_tm) IS
BEGIN
gds_decode_date (
date'address,
times'address);
END decode_date;
PROCEDURE detach_database (
user_status : OUT status_vector;
db_handle : IN OUT database_handle) IS
BEGIN
gds_detach_database (
user_status'address,
db_handle'address);
END detach_database;
PROCEDURE encode_date (
times : IN OUT gds_tm;
date : quad) IS
BEGIN
gds_encode_date (
times'address,
date'address);
END encode_date;
PROCEDURE event_wait (
user_status : OUT status_vector;
db_handle : database_handle;
length : short_integer;
events : string;
buffer : string) IS
BEGIN
gds_event_wait (
user_status'address,
db_handle'address,
length'address,
events'address,
buffer'address);
END event_wait;
PROCEDURE get_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
actual_length : OUT short_integer;
buffer_length : short_integer;
buffer : string) IS
BEGIN
gds_get_segment (
user_status'address,
blb_handle'address,
actual_length'address,
buffer_length'address,
buffer'address);
END get_segment;
PROCEDURE get_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS;
return_length : OUT integer) IS
BEGIN
gds_get_slice (
user_status'address,
db_handle'address,
trans_handle'address,
blob_id'address,
sdl_length'address,
sdl'address,
param_length'address,
param'address,
slice_length'address,
slice,
return_length'address);
END get_slice;
PROCEDURE open_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad) IS
BEGIN
gds_open_blob (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address);
END open_blob;
PROCEDURE open_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : short_integer;
bpb : blr) IS
BEGIN
gds_open_blob2 (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address,
bpb_length'address,
bpb'address);
END open_blob2;
PROCEDURE prepare_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_prepare_transaction (
user_status'address,
trans_handle'address);
END prepare_transaction;
PROCEDURE prepare_transaction2 (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
msg_length : short_integer;
msg : blr) IS
BEGIN
gds_prepare_transaction2 (
user_status'address,
trans_handle'address,
msg_length'address,
msg'address);
END prepare_transaction2;
PROCEDURE put_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
length : short_integer;
buffer : string) IS
BEGIN
gds_put_segment (
user_status'address,
blb_handle'address,
length'address,
buffer'address);
END put_segment;
PROCEDURE put_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS) IS
BEGIN
gds_put_slice (
user_status'address,
db_handle'address,
trans_handle'address,
blob_id'address,
sdl_length'address,
sdl'address,
param_length'address,
param'address,
slice_length'address,
slice);
END put_slice;
PROCEDURE queue_events (
user_status : OUT status_vector;
db_handle : database_handle;
id : quad;
length : short_integer;
events : string;
ast : integer;
arg : quad) IS
BEGIN
gds_queue_events (
user_status'address,
db_handle'address,
id'address,
length'address,
events'address,
ast'address,
arg'address);
END queue_events;
PROCEDURE receive (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
BEGIN
gds_receive (
user_status'address,
req_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
END receive;
PROCEDURE rollback_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_rollback_transaction (
user_status'address,
trans_handle'address);
END rollback_transaction;
PROCEDURE send (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
BEGIN
gds_send (
user_status'address,
req_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
END send;
PROCEDURE set_debug (
debug_val : integer) IS
BEGIN
gds_set_debug (
debug_val'address);
END set_debug;
PROCEDURE start_request (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
level : short_integer) IS
BEGIN
gds_start_request (
user_status'address,
req_handle'address,
trans_handle'address,
level'address);
END start_request;
PROCEDURE start_and_send (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
BEGIN
gds_start_and_send (
user_status'address,
req_handle'address,
trans_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
END start_and_send;
PROCEDURE start_multiple (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : short_integer;
teb : SYSTEM.ADDRESS) IS
BEGIN
gds_start_multiple (
user_status'address,
trans_handle'address,
count'address,
teb);
END start_multiple;
PROCEDURE start_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : short_integer;
db_handle : database_handle;
tpb_length : short_integer;
tpb_arg : tpb) IS
BEGIN
gds_start_transaction (
user_status'address,
trans_handle'address,
count'address,
db_handle'address,
tpb_length'address,
tpb_arg'address);
END start_transaction;
PROCEDURE unwind_request (
user_status : OUT status_vector;
req_handle : request_handle;
level : short_integer) IS
BEGIN
gds_unwind_request (
user_status'address,
req_handle'address,
level'address);
END unwind_request;
PROCEDURE print_status (
user_status : status_vector) IS
BEGIN
gds_print_status (
user_status'address);
END print_status;
PROCEDURE print_version (
db_handle: database_handle) IS
ptr : integer := 0;
BEGIN
gds_version (
db_handle'address,
0,
ptr'address);
END print_version;
FUNCTION sqlcode (
user_status : status_vector) RETURN integer IS
BEGIN
return gds_sqlcode (user_status'address);
end sqlcode;
--- Dynamic SQL procedures
PROCEDURE dsql_close (
user_status : OUT status_vector;
cursor_name : string) IS
BEGIN
gds_close (
user_status'address,
cursor_name'address);
END dsql_close;
PROCEDURE dsql_declare (
user_status : OUT status_vector;
statement_name : string;
cursor_name : string) IS
BEGIN
gds_declare (
user_status'address,
statement_name'address,
cursor_name'address);
END dsql_declare;
PROCEDURE dsql_describe (
user_status : OUT status_vector;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_describe (
user_status'address,
statement_name'address,
descriptor);
END dsql_describe;
PROCEDURE dsql_finish (
db_handle : database_handle) IS
BEGIN
gds_dsql_finish (
db_handle'address);
END dsql_finish;
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_execute (
user_status'address,
trans_handle'address,
statement_name'address,
descriptor);
END dsql_execute;
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string) IS
BEGIN
gds_execute (
user_status'address,
trans_handle'address,
statement_name'address,
null_blob'address);
END dsql_execute;
PROCEDURE dsql_execute_immediate (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : short_integer;
command : string) IS
BEGIN
gds_execute_immediate (
user_status'address,
db_handle'address,
trans_handle'address,
command_length'address,
command'address);
END dsql_execute_immediate;
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_fetch (
user_status'address,
sqlcode'address,
cursor_name'address,
descriptor);
END dsql_fetch;
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT integer;
cursor_name : string) IS
BEGIN
gds_fetch (
user_status'address,
sqlcode'address,
cursor_name'address,
null_blob'address);
END dsql_fetch;
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_open (
user_status'address,
trans_handle'address,
cursor_name'address,
descriptor);
END dsql_open;
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string) IS
BEGIN
gds_open (
user_status'address,
trans_handle'address,
cursor_name'address,
null_blob'address);
END dsql_open;
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_prepare (
user_status'address,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
descriptor);
END dsql_prepare;
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string) IS
BEGIN
gds_prepare (
user_status'address,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
null_blob'address);
END dsql_prepare;
--- PYXIS procedures
PROCEDURE compile_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr) IS
BEGIN
pyxis_compile_map (
user_status'address,
frm_handle'address,
mp_handle'address,
map_length'address,
map'address);
END compile_map;
PROCEDURE compile_sub_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr) IS
BEGIN
pyxis_compile_sub_map (
user_status'address,
frm_handle'address,
mp_handle'address,
map_length'address,
map'address);
END compile_sub_map;
PROCEDURE create_window (
win_handle : OUT window_handle;
name_length : short_integer;
file_name : string;
width : IN OUT short_integer;
height : IN OUT short_integer) IS
BEGIN
pyxis_create_window (
win_handle'address,
name_length'address,
file_name'address,
width'address,
height'address);
END create_window;
PROCEDURE delete_window (
win_handle : IN OUT window_handle) IS
BEGIN
pyxis_delete_window (
win_handle'address);
END delete_window;
PROCEDURE drive_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS) IS
BEGIN
pyxis_drive_form (
user_status'address,
db_handle'address,
trans_handle'address,
win_handle'address,
mp_handle'address,
input,
output);
END drive_form;
PROCEDURE fetch_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS) IS
BEGIN
pyxis_fetch (
user_status'address,
db_handle'address,
trans_handle'address,
mp_handle'address,
output);
END fetch_sub_form;
PROCEDURE insert_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS) IS
BEGIN
pyxis_insert (
user_status'address,
db_handle'address,
trans_handle'address,
mp_handle'address,
input);
END insert_sub_form;
PROCEDURE load_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : short_integer;
form_name : string) IS
BEGIN
pyxis_load_form (
user_status'address,
db_handle'address,
trans_handle'address,
frm_handle'address,
name_length'address,
form_name'address);
END load_form;
FUNCTION menu (
win_handle : window_handle;
men_handle : menu_handle;
menu_length : short_integer;
menu : blr) RETURN short_integer IS
BEGIN
return pyxis_menu (
win_handle'address,
men_handle'address,
menu_length'address,
menu'address);
END menu;
PROCEDURE pop_window (
win_handle : window_handle) IS
BEGIN
pyxis_pop_window (
win_handle'address);
END pop_window;
PROCEDURE reset_form (
user_status : OUT status_vector;
win_handle : window_handle) IS
BEGIN
pyxis_reset_form (
user_status'address,
win_handle'address);
END reset_form;
PROCEDURE drive_menu (
win_handle : IN OUT window_handle;
men_handle : IN OUT menu_handle;
blr_length : short_integer;
blr_source : blr;
title_length : short_integer;
title : string;
terminator : OUT short_integer;
entree_length : OUT short_integer;
entree_text : OUT string;
entree_value : OUT integer) IS
BEGIN
pyxis_drive_menu (
win_handle'address,
men_handle'address,
blr_length'address,
blr_source'address,
title_length'address,
title'address,
terminator'address,
entree_length'address,
entree_text'address,
entree_value'address);
END drive_menu;
PROCEDURE get_entree (
men_handle : menu_handle;
entree_length : OUT short_integer;
entree_text : OUT string;
entree_value : OUT integer;
entree_end : OUT short_integer) IS
BEGIN
pyxis_get_entree (
men_handle'address,
entree_length'address,
entree_text'address,
entree_value'address,
entree_end'address);
END get_entree;
PROCEDURE initialize_menu (
men_handle : IN OUT menu_handle) IS
BEGIN
pyxis_initialize_menu (
men_handle'address);
END initialize_menu;
PROCEDURE put_entree (
men_handle : menu_handle;
entree_length : short_integer;
entree_text : string;
entree_value : integer) IS
BEGIN
pyxis_put_entree (
men_handle'address,
entree_length'address,
entree_text'address,
entree_value'address);
END put_entree;
---
--- Internal routines
---
PROCEDURE error (
user_status : status_vector) IS
BEGIN
gds_print_status (user_status'address);
RAISE database_error;
END;
---
--- Routines sans explicit status vector
---
PROCEDURE attach_database (
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb) IS
user_status : status_vector;
BEGIN
gds_attach_database (
user_status'address,
file_length'address,
file_name'address,
db_handle'address,
dpb_length'address,
dpb_arg'address);
if user_status (1) /= 0 then error (user_status); end if;
END attach_database;
PROCEDURE cancel_blob (
blb_handle : IN OUT blob_handle) IS
user_status : status_vector;
BEGIN
gds_cancel_blob (
user_status'address,
blb_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END cancel_blob;
PROCEDURE cancel_events (
blb_handle : IN OUT blob_handle) IS
user_status : status_vector;
BEGIN
gds_cancel_events (
user_status'address,
blb_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END cancel_events;
PROCEDURE close_blob (
blb_handle : IN OUT blob_handle) IS
user_status : status_vector;
BEGIN
gds_close_blob (
user_status'address,
blb_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END close_blob;
PROCEDURE commit_retaining (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_commit_retaining (
user_status'address,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END commit_retaining;
PROCEDURE commit_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_commit_transaction (
user_status'address,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END commit_transaction;
PROCEDURE compile_request (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr) IS
user_status : status_vector;
BEGIN
gds_compile_request (
user_status'address,
db_handle'address,
req_handle'address,
blr_length'address,
blr_arg'address);
if user_status (1) /= 0 then error (user_status); end if;
END compile_request;
PROCEDURE compile_request2 (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr) IS
user_status : status_vector;
BEGIN
gds_compile_request2 (
user_status'address,
db_handle'address,
req_handle'address,
blr_length'address,
blr_arg'address);
if user_status (1) /= 0 then error (user_status); end if;
END compile_request2;
PROCEDURE create_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad) IS
user_status : status_vector;
BEGIN
gds_create_blob (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address);
if user_status (1) /= 0 then error (user_status); end if;
END create_blob;
PROCEDURE create_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : short_integer;
bpb : blr) IS
user_status : status_vector;
BEGIN
gds_create_blob2 (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address,
bpb_length'address,
bpb'address);
if user_status (1) /= 0 then error (user_status); end if;
END create_blob2;
PROCEDURE create_database (
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb;
db_type : short_integer) IS
user_status : status_vector;
BEGIN
gds_create_database (
user_status'address,
file_length'address,
file_name'address,
db_handle'address,
dpb_length'address,
dpb_arg'address,
db_type'address);
if user_status (1) /= 0 then error (user_status); end if;
END create_database;
PROCEDURE ddl (
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : short_integer;
msg : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_ddl (
user_status'address,
db_handle'address,
trans_handle'address,
msg_length'address,
msg);
if user_status (1) /= 0 then error (user_status); end if;
END ddl;
PROCEDURE detach_database (
db_handle : IN OUT database_handle) IS
user_status : status_vector;
BEGIN
gds_detach_database (
user_status'address,
db_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END detach_database;
PROCEDURE event_wait (
db_handle : database_handle;
length : short_integer;
events : string;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_event_wait (
user_status'address,
db_handle'address,
length'address,
events'address,
buffer'address);
END event_wait;
PROCEDURE get_segment (
completion_code : OUT integer;
blb_handle : blob_handle;
actual_length : OUT short_integer;
buffer_length : short_integer;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_get_segment (
user_status'address,
blb_handle'address,
actual_length'address,
buffer_length'address,
buffer'address);
if user_status (1) /= 0 and user_status (1) /= gds_segment and
user_status (1) /= gds_segstr_eof then
error (user_status);
end if;
completion_code := user_status(1);
END get_segment;
PROCEDURE get_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS;
return_length : OUT integer) IS
user_status : status_vector;
BEGIN
gds_get_slice (
user_status'address,
db_handle'address,
trans_handle'address,
blob_id'address,
sdl_length'address,
sdl'address,
param_length'address,
param'address,
slice_length'address,
slice,
return_length'address);
END get_slice;
PROCEDURE open_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad) IS
user_status : status_vector;
BEGIN
gds_open_blob (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address);
if user_status (1) /= 0 then error (user_status); end if;
END open_blob;
PROCEDURE open_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : short_integer;
bpb : blr) IS
user_status : status_vector;
BEGIN
gds_open_blob2 (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address,
bpb_length'address,
bpb'address);
if user_status (1) /= 0 then error (user_status); end if;
END open_blob2;
PROCEDURE prepare_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_prepare_transaction (
user_status'address,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END prepare_transaction;
PROCEDURE prepare_transaction2 (
trans_handle : IN OUT transaction_handle;
msg_length : short_integer;
msg : blr) IS
user_status : status_vector;
BEGIN
gds_prepare_transaction2 (
user_status'address,
trans_handle'address,
msg_length'address,
msg'address);
END prepare_transaction2;
PROCEDURE put_segment (
blb_handle : blob_handle;
length : short_integer;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_put_segment (
user_status'address,
blb_handle'address,
length'address,
buffer'address);
if user_status (1) /= 0 then error (user_status); end if;
END put_segment;
PROCEDURE put_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_put_slice (
user_status'address,
db_handle'address,
trans_handle'address,
blob_id'address,
sdl_length'address,
sdl'address,
param_length'address,
param'address,
slice_length'address,
slice);
END put_slice;
PROCEDURE queue_events (
db_handle : database_handle;
id : quad;
length : short_integer;
events : string;
ast : integer;
arg : quad) IS
user_status : status_vector;
BEGIN
gds_queue_events (
user_status'address,
db_handle'address,
id'address,
length'address,
events'address,
ast'address,
arg'address);
END queue_events;
PROCEDURE receive (
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
user_status : status_vector;
BEGIN
gds_receive (
user_status'address,
req_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
if user_status (1) /= 0 then error (user_status); end if;
END receive;
PROCEDURE rollback_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_rollback_transaction (
user_status'address,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END rollback_transaction;
PROCEDURE send (
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
user_status : status_vector;
BEGIN
gds_send (
user_status'address,
req_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
if user_status (1) /= 0 then error (user_status); end if;
END send;
PROCEDURE start_request (
req_handle : request_handle;
trans_handle : transaction_handle;
level : short_integer) IS
user_status : status_vector;
BEGIN
gds_start_request (
user_status'address,
req_handle'address,
trans_handle'address,
level'address);
if user_status (1) /= 0 then error (user_status); end if;
END start_request;
PROCEDURE start_and_send (
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
user_status : status_vector;
BEGIN
gds_start_and_send (
user_status'address,
req_handle'address,
trans_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
if user_status (1) /= 0 then error (user_status); end if;
END start_and_send;
PROCEDURE start_multiple (
trans_handle : IN OUT transaction_handle;
count : short_integer;
teb : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_start_multiple (
user_status'address,
trans_handle'address,
count'address,
teb);
if user_status (1) /= 0 then error (user_status); end if;
END start_multiple;
PROCEDURE start_transaction (
trans_handle : IN OUT transaction_handle;
count : short_integer;
db_handle : database_handle;
tpb_length : short_integer;
tpb_arg : tpb) IS
user_status : status_vector;
BEGIN
gds_start_transaction (
user_status'address,
trans_handle'address,
count'address,
db_handle'address,
tpb_length'address,
tpb_arg'address);
if user_status (1) /= 0 then error (user_status); end if;
END start_transaction;
PROCEDURE unwind_request (
req_handle : request_handle;
level : short_integer) IS
user_status : status_vector;
BEGIN
gds_unwind_request (
user_status'address,
req_handle'address,
level'address);
if user_status (1) /= 0 then error (user_status); end if;
END unwind_request;
--- Dynamic SQL procedures
PROCEDURE dsql_close (
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_close (
user_status'address,
cursor_name'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_close;
PROCEDURE dsql_declare (
statement_name : string;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_declare (
user_status'address,
statement_name'address,
cursor_name'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_declare;
PROCEDURE dsql_describe (
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_describe (
user_status'address,
statement_name'address,
descriptor'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_describe;
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_execute (
user_status'address,
trans_handle'address,
statement_name'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute;
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string) IS
user_status : status_vector;
BEGIN
gds_execute (
user_status'address,
trans_handle'address,
statement_name'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute;
PROCEDURE dsql_execute_immediate (
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : short_integer;
command : string) IS
user_status : status_vector;
BEGIN
gds_execute_immediate (
user_status'address,
db_handle'address,
trans_handle'address,
command_length'address,
command'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute_immediate;
PROCEDURE dsql_fetch (
sqlcode : OUT integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_fetch (
user_status'address,
sqlcode'address,
cursor_name'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_fetch;
PROCEDURE dsql_fetch (
sqlcode : OUT integer;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_fetch (
user_status'address,
sqlcode'address,
cursor_name'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_fetch;
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_open (
user_status'address,
trans_handle'address,
cursor_name'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_open;
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_open (
user_status'address,
trans_handle'address,
cursor_name'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_open;
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_prepare (
user_status'address,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_prepare;
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string) IS
user_status : status_vector;
BEGIN
gds_prepare (
user_status'address,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_prepare;
--- PYXIS procedures
PROCEDURE compile_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr) IS
user_status : status_vector;
BEGIN
pyxis_compile_map (
user_status'address,
frm_handle'address,
mp_handle'address,
map_length'address,
map'address);
--- if user_status (1) /= 0 then error (user_status); end if;
END compile_map;
PROCEDURE compile_sub_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr) IS
user_status : status_vector;
BEGIN
pyxis_compile_sub_map (
user_status'address,
frm_handle'address,
mp_handle'address,
map_length'address,
map'address);
--- if user_status (1) /= 0 then error (user_status); end if;
END compile_sub_map;
PROCEDURE drive_form (
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_drive_form (
user_status'address,
db_handle'address,
trans_handle'address,
win_handle'address,
mp_handle'address,
input,
output);
--- if user_status (1) /= 0 then error (user_status); end if;
END drive_form;
PROCEDURE fetch_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_fetch (
user_status'address,
db_handle'address,
trans_handle'address,
mp_handle'address,
output);
--- if user_status (1) /= 0 then error (user_status); end if;
END fetch_sub_form;
PROCEDURE insert_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_insert (
user_status'address,
db_handle'address,
trans_handle'address,
mp_handle'address,
input);
--- if user_status (1) /= 0 then error (user_status); end if;
END insert_sub_form;
PROCEDURE load_form (
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : short_integer;
form_name : string) IS
user_status : status_vector;
BEGIN
pyxis_load_form (
user_status'address,
db_handle'address,
trans_handle'address,
frm_handle'address,
name_length'address,
form_name'address);
if user_status (1) /= 0 then error (user_status); end if;
END load_form;
PROCEDURE reset_form (
win_handle : window_handle) IS
user_status : status_vector;
BEGIN
pyxis_reset_form (
user_status'address,
win_handle'address);
--- if user_status (1) /= 0 then error (user_status); end if;
END reset_form;
END interbase;');
INSERT INTO TEMPLATES (LANGUAGE, "FILE", TEMPLATE) VALUES ('ALSYS_ADA', 'interbase_alsys.a',
'WITH SYSTEM;
PACKAGE interbase IS
TYPE status_vector IS ARRAY (0..19) OF long_integer;
TYPE quad IS ARRAY (0..1) OF long_integer;
TYPE chars IS ARRAY (integer range <>) of character;
TYPE blr IS ARRAY (integer range <>) of short_integer;
TYPE dpb IS ARRAY (integer range <>) of short_integer;
TYPE tpb IS ARRAY (integer range <>) of short_integer;
SUBTYPE isc_short IS integer;
SUBTYPE isc_long IS long_integer;
SUBTYPE isc_float IS float;
SUBTYPE isc_double IS long_float;
SUBTYPE database_handle IS long_integer;
SUBTYPE request_handle IS long_integer;
SUBTYPE transaction_handle IS long_integer;
SUBTYPE blob_handle IS long_integer;
SUBTYPE form_handle IS long_integer;
SUBTYPE map_handle IS long_integer;
SUBTYPE window_handle IS long_integer;
SUBTYPE menu_handle IS long_integer;
TYPE gds_teb_t IS RECORD
dbb_ptr : SYSTEM.ADDRESS;
tpb_len : long_integer;
tpb_ptr : SYSTEM.ADDRESS;
END RECORD;
TYPE gds_tm IS RECORD
tm_sec : long_integer;
tm_min : long_integer;
tm_hour : long_integer;
tm_mday : long_integer;
tm_mon : long_integer;
tm_year : long_integer;
tm_wday : long_integer;
tm_yday : long_integer;
tm_isdst : long_integer;
END RECORD;
TYPE sqlvar is RECORD
sqltype : integer;
sqllen : integer;
sqldata : SYSTEM.ADDRESS;
sqlind : SYSTEM.ADDRESS;
sqlname_length : integer;
sqlname : chars (1..30);
END RECORD;
FOR sqlvar use record at mod 2;
sqltype at 0 range 0..15;
sqllen at 2 range 0..15;
sqldata at 4 range 0..31;
sqlind at 8 range 0..31;
sqlname_length at 12 range 0..15;
sqlname at 14 range 0..239;
END RECORD;
TYPE sqlvar_array IS ARRAY (short_integer range <>) of sqlvar;
--- Constants
gds_true : CONSTANT long_integer := 1;
gds_false : CONSTANT long_integer := 0;
$ SET SANS_DOLLAR
$ FORMAT BLR_FORMAT " %s : CONSTANT short_integer := %d;\n
$ FORMAT DYN_FORMAT " %-32s: CONSTANT short_integer := %d;\n
$ FORMAT SDL_FORMAT " %-32s: CONSTANT short_integer := %d;\n
$ FORMAT ERROR_FORMAT "%-25s: CONSTANT long_integer := %d;\n
$ FORMAT PB_FORMAT " %-29s: CONSTANT short_integer := %d;\n
$ FORMAT PYXIS_FORMAT "%-29s: CONSTANT short_integer := %d;\n
$ FORMAT OPT_FORMAT "%-32s: CONSTANT long_integer := %d;\n
$ FORMAT SQL_FORMAT "%-16s: CONSTANT integer := %d;\n
--- BLR
$ SYMBOLS BLR DTYPE BLR_FORMAT
$ SYMBOLS BLR MECH SIGNED BLR_FORMAT
$ SYMBOLS BLR STATEMENTS BLR_FORMAT
$ SYMBOLS BLR VALUES BLR_FORMAT
$ SYMBOLS BLR BOOLEANS BLR_FORMAT
$ SYMBOLS BLR RSE BLR_FORMAT
$ SYMBOLS BLR JOIN BLR_FORMAT
$ SYMBOLS BLR AGGREGATE BLR_FORMAT
$ SYMBOLS BLR NEW BLR_FORMAT
--- Dynamic Data Definition Language operators
--- Version number
$ SYMBOLS DYN MECH SIGNED DYN_FORMAT
--- Operations (may be nested)
$ SYMBOLS DYN OPERATIONS SIGNED DYN_FORMAT
--- View specific stuff
$ SYMBOLS DYN VIEW SIGNED DYN_FORMAT
--- Generic attributes
$ SYMBOLS DYN GENERIC SIGNED DYN_FORMAT
--- Relation specific attributes
$ SYMBOLS DYN RELATION SIGNED DYN_FORMAT
--- Global field specific attributes
$ SYMBOLS DYN GLOBAL SIGNED DYN_FORMAT
--- Local field specific attributes
$ SYMBOLS DYN FIELD SIGNED DYN_FORMAT
--- Index specific attributes
$ SYMBOLS DYN INDEX SIGNED DYN_FORMAT
--- Trigger specific attributes
$ SYMBOLS DYN TRIGGER SIGNED DYN_FORMAT
--- Security Class specific attributes
$ SYMBOLS DYN SECURITY SIGNED DYN_FORMAT
--- Dimension attributes
$ SYMBOLS DYN ARRAY SIGNED DYN_FORMAT
--- File specific attributes
$ SYMBOLS DYN FILES DYN_FORMAT
--- Function specific attributes
$ SYMBOLS DYN FUNCTIONS DYN_FORMAT
--- Generator specific attributes
$ SYMBOLS DYN GENERATOR DYN_FORMAT
--- Array slice description language (SDL)
$ SYMBOLS SDL SDL SIGNED SDL_FORMAT
--- Database parameter block stuff
$ SYMBOLS DPB ITEMS PB_FORMAT
$ SYMBOLS DPB BITS PB_FORMAT
--- Transaction parameter block stuff
$ SYMBOLS TPB ITEMS PB_FORMAT
--- Blob parameter block stuff
$ SYMBOLS BPB ITEMS PB_FORMAT
--- Common, structural codes
$ SYMBOLS INFO MECH PB_FORMAT
--- Database information items
$ SYMBOLS INFO DB PB_FORMAT
--- Request information items
$ SYMBOLS INFO REQUEST PB_FORMAT
--- Blob information items
$ SYMBOLS INFO BLOB PB_FORMAT
--- Transaction information items
$ SYMBOLS INFO TRANSACTION PB_FORMAT
--- Error codes
$ SYMBOLS ERROR MECH ERROR_FORMAT
$ ERROR MAJOR ERROR_FORMAT
--- Minor codes subject to change
$ ERROR MINOR ERROR_FORMAT
--- Dynamic SQL datatypes
$ SYMBOLS SQL DTYPE SQL_FORMAT
--- Forms Package definitions
--- Map definition block definitions
$ SYMBOLS PYXIS MAP SIGNED PYXIS_FORMAT
--- Field option flags for display options
$ SYMBOLS PYXIS DISPLAY OPT_FORMAT
--- Field option values following display
$ SYMBOLS PYXIS VALUE OPT_FORMAT
--- Pseudo key definitions
$ SYMBOLS PYXIS KEY OPT_FORMAT
--- Menu definition stuff
$ SYMBOLS PYXIS MENU SIGNED PYXIS_FORMAT
database_error : EXCEPTION;
null_blob : CONSTANT quad := (0, 0);
null_tpb : tpb (0..0);
null_dpb : dpb (0..0);
PROCEDURE attach_database (
user_status : OUT status_vector;
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb);
PROCEDURE blob_display (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : integer);
PROCEDURE blob_dump (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : integer);
PROCEDURE blob_edit (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : integer);
PROCEDURE blob_load (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : integer);
PROCEDURE cancel_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE cancel_events (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE close_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE commit_retaining (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE commit_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE compile_request (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr);
PROCEDURE compile_request2 (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr);
PROCEDURE create_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad);
PROCEDURE create_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : integer;
bpb : blr);
PROCEDURE create_database (
user_status : OUT status_vector;
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb;
db_type : integer);
PROCEDURE detach_database (
user_status : OUT status_vector;
db_handle : IN OUT database_handle);
PROCEDURE ddl (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : integer;
msg : SYSTEM.ADDRESS);
PROCEDURE decode_date (
date : quad;
times : IN OUT gds_tm);
PROCEDURE encode_date (
times : IN OUT gds_tm;
date : quad);
PROCEDURE event_wait (
user_status : OUT status_vector;
db_handle : database_handle;
length : integer;
events : string;
buffer : string);
PROCEDURE get_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
actual_length : OUT integer;
buffer_length : integer;
buffer : string);
PROCEDURE get_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : SYSTEM.ADDRESS;
return_length : OUT long_integer);
PROCEDURE open_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad);
PROCEDURE open_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : integer;
bpb : blr);
PROCEDURE prepare_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE prepare_transaction2 (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
msg_length : integer;
msg : blr);
PROCEDURE put_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
length : integer;
buffer : string);
PROCEDURE put_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : SYSTEM.ADDRESS);
PROCEDURE queue_events (
user_status : OUT status_vector;
db_handle : database_handle;
id : quad;
length : integer;
events : string;
ast : long_integer;
arg : quad);
PROCEDURE receive (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE rollback_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE send (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE set_debug (
debug_val : long_integer);
PROCEDURE start_and_send (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE start_request (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
level : integer);
PROCEDURE start_multiple (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : integer;
teb : SYSTEM.ADDRESS);
PROCEDURE start_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : integer;
db_handle : database_handle;
tpb_length : integer;
tpb_arg : tpb);
PROCEDURE unwind_request (
user_status : OUT status_vector;
req_handle : request_handle;
level : integer);
PROCEDURE print_status (
user_status : status_vector);
PROCEDURE print_version (
db_handle : database_handle);
FUNCTION sqlcode (
user_status : status_vector) RETURN long_integer;
--- Dynamic SQL procedures
PROCEDURE dsql_close (
user_status : OUT status_vector;
cursor_name : string);
PROCEDURE dsql_declare (
user_status : OUT status_vector;
statement_name : string;
cursor_name : string);
PROCEDURE dsql_describe (
user_status : OUT status_vector;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string);
PROCEDURE dsql_execute_immediate (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : integer;
command : string);
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT long_integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT long_integer;
cursor_name : string);
PROCEDURE dsql_finish (
db_handle : database_handle);
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string);
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string);
--- PYXIS procedures
PROCEDURE compile_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr);
PROCEDURE compile_sub_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr);
PROCEDURE create_window (
win_handle : OUT window_handle;
name_length : integer;
file_name : string;
width : IN OUT integer;
height : IN OUT integer);
PROCEDURE delete_window (
win_handle : IN OUT window_handle);
PROCEDURE drive_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS);
PROCEDURE fetch_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS);
PROCEDURE insert_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS);
PROCEDURE load_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : integer;
form_name : string);
FUNCTION menu (
win_handle : window_handle;
men_handle : menu_handle;
menu_length : integer;
menu : blr) RETURN integer;
PROCEDURE pop_window (
win_handle : window_handle);
PROCEDURE reset_form (
user_status : OUT status_vector;
win_handle : window_handle);
PROCEDURE drive_menu (
win_handle : IN OUT window_handle;
men_handle : IN OUT menu_handle;
blr_length : integer;
blr_source : blr;
title_length : integer;
title : string;
terminator : OUT integer;
entree_length : OUT integer;
entree_text : OUT string;
entree_value : OUT long_integer);
PROCEDURE get_entree (
men_handle : menu_handle;
entree_length : OUT integer;
entree_text : OUT string;
entree_value : OUT long_integer;
entree_end : OUT integer);
PROCEDURE initialize_menu (
men_handle : IN OUT menu_handle);
PROCEDURE put_entree (
men_handle : menu_handle;
entree_length : integer;
entree_text : string;
entree_value : long_integer);
---
--- Same routines, but with automatic error checking
---
PROCEDURE attach_database (
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb);
PROCEDURE cancel_blob (
blb_handle : IN OUT blob_handle);
PROCEDURE cancel_events (
blb_handle : IN OUT blob_handle);
PROCEDURE close_blob (
blb_handle : IN OUT blob_handle);
PROCEDURE commit_retaining (
trans_handle : IN OUT transaction_handle);
PROCEDURE commit_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE compile_request (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr);
PROCEDURE compile_request2 (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr);
PROCEDURE create_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad);
PROCEDURE create_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : integer;
bpb : blr);
PROCEDURE create_database (
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb;
db_type : integer);
PROCEDURE detach_database (
db_handle : IN OUT database_handle);
PROCEDURE ddl (
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : integer;
msg : SYSTEM.ADDRESS);
PROCEDURE get_segment (
completion_code : OUT long_integer;
blb_handle : blob_handle;
actual_length : OUT integer;
buffer_length : integer;
buffer : string);
PROCEDURE get_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : SYSTEM.ADDRESS;
return_length : OUT long_integer);
PROCEDURE open_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad);
PROCEDURE open_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : integer;
bpb : blr);
PROCEDURE prepare_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE prepare_transaction2 (
trans_handle : IN OUT transaction_handle;
msg_length : integer;
msg : blr);
PROCEDURE put_segment (
blb_handle : blob_handle;
length : integer;
buffer : string);
PROCEDURE put_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : SYSTEM.ADDRESS);
PROCEDURE queue_events (
db_handle : database_handle;
id : quad;
length : integer;
events : string;
ast : long_integer;
arg : quad);
PROCEDURE receive (
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE rollback_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE send (
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE start_and_send (
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE start_request (
req_handle : request_handle;
trans_handle : transaction_handle;
level : integer);
PROCEDURE start_multiple (
trans_handle : IN OUT transaction_handle;
count : integer;
teb : SYSTEM.ADDRESS);
PROCEDURE start_transaction (
trans_handle : IN OUT transaction_handle;
count : integer;
db_handle : database_handle;
tpb_length : integer;
tpb_arg : tpb);
PROCEDURE unwind_request (
req_handle : request_handle;
level : integer);
PROCEDURE dsql_close (
cursor_name : string);
PROCEDURE dsql_declare (
statement_name : string;
cursor_name : string);
PROCEDURE dsql_describe (
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string);
PROCEDURE dsql_execute_immediate (
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : integer;
command : string);
PROCEDURE dsql_fetch (
sqlcode : OUT long_integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_fetch (
sqlcode : OUT long_integer;
cursor_name : string);
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string);
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string);
--- PYXIS procedures
PROCEDURE compile_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr);
PROCEDURE compile_sub_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr);
PROCEDURE drive_form (
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS);
PROCEDURE fetch_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS);
PROCEDURE insert_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS);
PROCEDURE load_form (
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : integer;
form_name : string);
PROCEDURE reset_form (
win_handle : window_handle);
END interbase;
PACKAGE BODY interbase IS
---
--- Actual Interbase entrypoints
---
PROCEDURE gds_attach_database (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
file_length : SYSTEM.ADDRESS; -- integer;
file_name : SYSTEM.ADDRESS; -- string;
handle : SYSTEM.ADDRESS; -- IN OUT database_handle;
dpb_length : SYSTEM.ADDRESS; -- integer;
dpb : SYSTEM.ADDRESS);
PROCEDURE gds_blob_display (
blob_id : SYSTEM.ADDRESS; -- quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
field_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- integer;
PROCEDURE gds_blob_dump (
blob_id : SYSTEM.ADDRESS; -- quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
file_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- integer;
PROCEDURE gds_blob_edit (
blob_id : SYSTEM.ADDRESS; -- IN OUT quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
field_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- integer;
PROCEDURE gds_blob_load (
blob_id : SYSTEM.ADDRESS; -- quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
file_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- integer;
PROCEDURE gds_cancel_blob (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
blb_handle : SYSTEM.ADDRESS); -- IN OUT blob_handle);
PROCEDURE gds_cancel_events (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
blb_handle : SYSTEM.ADDRESS); -- IN OUT blob_handle);
PROCEDURE gds_close_blob (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
blb_handle : SYSTEM.ADDRESS); --IN OUT blob_handle);
PROCEDURE gds_commit_retaining (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle);
PROCEDURE gds_commit_transaction (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle);
PROCEDURE gds_compile_request (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
req_handle : SYSTEM.ADDRESS; -- IN OUT request_handle;
blr_length : SYSTEM.ADDRESS; -- integer;
blr : SYSTEM.ADDRESS);
PROCEDURE gds_compile_request2 (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
req_handle : SYSTEM.ADDRESS; -- IN OUT request_handle;
blr_length : SYSTEM.ADDRESS; -- integer;
blr_arg : SYSTEM.ADDRESS); -- blr;
PROCEDURE gds_create_blob (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
blb_handle : SYSTEM.ADDRESS; --IN OUT blob_handle;
blob_id : SYSTEM.ADDRESS); --OUT quad);
PROCEDURE gds_create_blob2 (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
blb_handle : SYSTEM.ADDRESS; --IN OUT blob_handle;
blob_id : SYSTEM.ADDRESS; --OUT quad;
bpb_length : SYSTEM.ADDRESS; --integer;
bpb : SYSTEM.ADDRESS); --blr;
PROCEDURE gds_create_database (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
file_length : SYSTEM.ADDRESS; --integer;
file_name : SYSTEM.ADDRESS; --string;
db_handle : SYSTEM.ADDRESS; --IN OUT database_handle;
dpb_length : SYSTEM.ADDRESS; --integer;
dpb_arg : SYSTEM.ADDRESS; --dpb;
db_type : SYSTEM.ADDRESS); --integer);
PROCEDURE gds_ddl (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
msg_length : SYSTEM.ADDRESS; -- integer;
msg : SYSTEM.ADDRESS);
PROCEDURE gds_decode_date (
date : SYSTEM.ADDRESS; -- quad;
times : SYSTEM.ADDRESS); -- gds_tm);
PROCEDURE gds_detach_database (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
handle : SYSTEM.ADDRESS); -- IN OUT database_handle);
PROCEDURE gds_encode_date (
times : SYSTEM.ADDRESS; -- gds_tm;
date : SYSTEM.ADDRESS); -- OUT quad);
PROCEDURE gds_event_wait (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
length : SYSTEM.ADDRESS; -- integer;
events : SYSTEM.ADDRESS; -- string;
buffer : SYSTEM.ADDRESS); -- string;
PROCEDURE gds_get_segment (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
blb_handle : SYSTEM.ADDRESS; --blob_handle;
actual_length : SYSTEM.ADDRESS; --OUT long_integer;
buffer_length : SYSTEM.ADDRESS; --long_integer;
buffer : SYSTEM.ADDRESS); --string;
PROCEDURE gds_get_slice (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
blob_id : SYSTEM.ADDRESS; -- quad;
sdl_length : SYSTEM.ADDRESS; -- integer;
sdl : SYSTEM.ADDRESS; -- blr;
param_length : SYSTEM.ADDRESS; -- integer;
param : SYSTEM.ADDRESS; -- string;
slice_length : SYSTEM.ADDRESS; -- long_integer;
slice : SYSTEM.ADDRESS; -- string;
return_length : SYSTEM.ADDRESS); -- OUT long_integer;
PROCEDURE gds_open_blob (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
blb_handle : SYSTEM.ADDRESS; --IN OUT blob_handle;
blob_id : SYSTEM.ADDRESS); --quad;
PROCEDURE gds_open_blob2 (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
blb_handle : SYSTEM.ADDRESS; --IN OUT blob_handle;
blob_id : SYSTEM.ADDRESS; --quad;
bpb_length : SYSTEM.ADDRESS; --integer;
bpb : SYSTEM.ADDRESS); --blr;
PROCEDURE gds_prepare_transaction (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle;
PROCEDURE gds_prepare_transaction2 (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- IN OUT transaction_handle;
msg_length : SYSTEM.ADDRESS; -- integer;
msg : SYSTEM.ADDRESS); -- blr;
PROCEDURE gds_put_segment (
user_status : SYSTEM.ADDRESS; --OUT status_vector;
blb_handle : SYSTEM.ADDRESS; --blob_handle;
length : SYSTEM.ADDRESS; --long_integer;
buffer : SYSTEM.ADDRESS); --string;
PROCEDURE gds_put_slice (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
blob_id : SYSTEM.ADDRESS; -- quad;
sdl_length : SYSTEM.ADDRESS; -- integer;
sdl : SYSTEM.ADDRESS; -- blr;
param_length : SYSTEM.ADDRESS; -- integer;
param : SYSTEM.ADDRESS; -- string;
slice_length : SYSTEM.ADDRESS; -- long_integer;
slice : SYSTEM.ADDRESS); -- string;
PROCEDURE gds_queue_events (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
id : SYSTEM.ADDRESS; -- quad;
length : SYSTEM.ADDRESS; -- integer;
events : SYSTEM.ADDRESS; -- string;
ast : SYSTEM.ADDRESS; -- long_integer;
arg : SYSTEM.ADDRESS); -- quad;
PROCEDURE gds_receive (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
msg_type : SYSTEM.ADDRESS; -- integer;
msg_length : SYSTEM.ADDRESS; -- integer;
msg : SYSTEM.ADDRESS;
level : SYSTEM.ADDRESS); --integer;
PROCEDURE gds_rollback_transaction (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle;
PROCEDURE gds_send (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
msg_type : SYSTEM.ADDRESS; -- integer;
msg_length : SYSTEM.ADDRESS; -- integer;
msg : SYSTEM.ADDRESS;
level : SYSTEM.ADDRESS); -- integer);
PROCEDURE gds_set_debug (
debug_val : SYSTEM.ADDRESS); -- integer);
PROCEDURE gds_start_and_send (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
msg_type : SYSTEM.ADDRESS; -- integer;
msg_length : SYSTEM.ADDRESS; -- integer;
msg : SYSTEM.ADDRESS;
level : SYSTEM.ADDRESS); -- integer);
PROCEDURE gds_start_request (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
level : SYSTEM.ADDRESS); -- integer);
PROCEDURE gds_start_multiple (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- IN OUT transaction_handle;
count : SYSTEM.ADDRESS; -- integer;
teb : SYSTEM.ADDRESS);
PROCEDURE gds_start_transaction (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- IN OUT transaction_handle;
count : SYSTEM.ADDRESS; -- integer;
db_handle : SYSTEM.ADDRESS; -- database_handle;
dpb_length : SYSTEM.ADDRESS; -- integer;
dpb : SYSTEM.ADDRESS);
PROCEDURE gds_unwind_request (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
level : SYSTEM.ADDRESS); -- integer);
PROCEDURE gds_print_status (
user_status : SYSTEM.ADDRESS); -- status_vector;
PROCEDURE gds_version (
db_handle : SYSTEM.ADDRESS;
ptr1 : long_integer;
ptr2 : SYSTEM.ADDRESS);
FUNCTION gds_sqlcode (
user_status : SYSTEM.ADDRESS) RETURN long_integer;
--- Dynamic SQL procedures
PROCEDURE gds_close (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
cursor_name : SYSTEM.ADDRESS); -- string);
PROCEDURE gds_declare (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
statement_name : SYSTEM.ADDRESS; -- string;
cursor_name : SYSTEM.ADDRESS); -- string);
PROCEDURE gds_describe (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
statement_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE gds_dsql_finish (
user_status : SYSTEM.ADDRESS); -- database handle;
PROCEDURE gds_execute (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
statement_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE gds_execute_immediate (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
command_length : SYSTEM.ADDRESS; -- integer;
command : SYSTEM.ADDRESS); -- string);
PROCEDURE gds_fetch (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
sqlcode : SYSTEM.ADDRESS; -- OUT integer;
cursor_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE gds_open (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
cursor_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE gds_prepare (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
statement_name : SYSTEM.ADDRESS; -- string;
command_length : SYSTEM.ADDRESS; -- integer;
command : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
--- PYXIS procedures
PROCEDURE pyxis_compile_map (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
frm_handle : SYSTEM.ADDRESS; -- form_handle;
mp_handle : SYSTEM.ADDRESS; -- OUT map_handle;
map_length : SYSTEM.ADDRESS; -- integer;
map : SYSTEM.ADDRESS); -- blr);
PROCEDURE pyxis_compile_sub_map (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
frm_handle : SYSTEM.ADDRESS; -- form_handle;
mp_handle : SYSTEM.ADDRESS; -- OUT map_handle;
map_length : SYSTEM.ADDRESS; -- integer;
map : SYSTEM.ADDRESS); -- blr);
PROCEDURE pyxis_create_window (
win_handle : SYSTEM.ADDRESS; -- OUT window_handle;
name_length : SYSTEM.ADDRESS; -- integer;
file_name : SYSTEM.ADDRESS; -- string;
width : SYSTEM.ADDRESS; -- IN OUT integer;
height : SYSTEM.ADDRESS); -- IN OUT integer);
PROCEDURE pyxis_delete_window (
win_handle : SYSTEM.ADDRESS); -- IN OUT window_handle);
PROCEDURE pyxis_drive_form (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
win_handle : SYSTEM.ADDRESS; -- window_handle;
mp_handle : SYSTEM.ADDRESS; -- map_handle;
input : SYSTEM.ADDRESS; -- SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE pyxis_fetch (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
mp_handle : SYSTEM.ADDRESS; -- map_handle;
output : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE pyxis_insert (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
mp_handle : SYSTEM.ADDRESS; -- map_handle;
input : SYSTEM.ADDRESS); -- SYSTEM.ADDRESS);
PROCEDURE pyxis_load_form (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
frm_handle : SYSTEM.ADDRESS; -- IN OUT form_handle;
name_length : SYSTEM.ADDRESS; -- integer;
form_name : SYSTEM.ADDRESS); -- string);
FUNCTION pyxis_menu (
win_handle : SYSTEM.ADDRESS; -- window_handle;
men_handle : SYSTEM.ADDRESS; -- menu_handle;
menu_length : SYSTEM.ADDRESS; -- integer;
menu : SYSTEM.ADDRESS) RETURN integer; -- blr) ;
PROCEDURE pyxis_pop_window (
win_handle : SYSTEM.ADDRESS); -- window_handle);
PROCEDURE pyxis_reset_form (
user_status : SYSTEM.ADDRESS; -- OUT status_vector;
win_handle : SYSTEM.ADDRESS); -- window_handle);
PROCEDURE pyxis_drive_menu (
win_handle : SYSTEM.ADDRESS; -- IN OUT window_handle;
men_handle : SYSTEM.ADDRESS; -- IN OUT menu_handle;
blr_length : SYSTEM.ADDRESS; -- integer;
blr_source : SYSTEM.ADDRESS; -- blr;
title_length : SYSTEM.ADDRESS; -- integer;
title : SYSTEM.ADDRESS; -- string;
terminator : SYSTEM.ADDRESS; -- OUT integer;
entree_length : SYSTEM.ADDRESS; -- OUT integer;
entree_text : SYSTEM.ADDRESS; -- OUT string;
entree_value : SYSTEM.ADDRESS); -- OUT long_integer);
PROCEDURE pyxis_get_entree (
men_handle : SYSTEM.ADDRESS; -- menu_handle;
entree_length : SYSTEM.ADDRESS; -- OUT integer;
entree_text : SYSTEM.ADDRESS; -- OUT string;
entree_value : SYSTEM.ADDRESS; -- OUT integer;
entree_end : SYSTEM.ADDRESS); -- OUT integer);
PROCEDURE pyxis_initialize_menu (
men_handle : SYSTEM.ADDRESS); -- IN OUT menu_handle);
PROCEDURE pyxis_put_entree (
men_handle : SYSTEM.ADDRESS; -- menu_handle;
entree_length : SYSTEM.ADDRESS; -- integer;
entree_text : SYSTEM.ADDRESS; -- string;
entree_value : SYSTEM.ADDRESS); -- long_integer);
pragma interface (C, gds_attach_database);
pragma interface_name (gds_attach_database, "gds_$attach_database");
pragma interface (C, gds_blob_display);
pragma interface_name (gds_blob_display, "blob_$display");
pragma interface (C, gds_blob_dump);
pragma interface_name (gds_blob_dump, "blob_$dump");
pragma interface (C, gds_blob_edit);
pragma interface_name (gds_blob_edit, "blob_$edit");
pragma interface (C, gds_blob_load);
pragma interface_name (gds_blob_load, "blob_$load");
pragma interface (C, gds_cancel_blob);
pragma interface_name (gds_cancel_blob, "gds_$cancel_blob");
pragma interface (C, gds_cancel_events);
pragma interface_name (gds_cancel_events, "gds_$cancel_events");
pragma interface (C, gds_close);
pragma interface_name (gds_close, "gds_$close");
pragma interface (C, gds_close_blob);
pragma interface_name (gds_close_blob, "gds_$close_blob");
pragma interface (C, gds_commit_retaining);
pragma interface_name (gds_commit_retaining, "gds_$commit_retaining");
pragma interface (C, gds_commit_transaction);
pragma interface_name (gds_commit_transaction, "gds_$commit_transaction");
pragma interface (C, gds_compile_request);
pragma interface_name (gds_compile_request, "gds_$compile_request");
pragma interface (C, gds_compile_request2);
pragma interface_name (gds_compile_request2, "gds_$compile_request2");
pragma interface (C, gds_create_blob);
pragma interface_name (gds_create_blob, "gds_$create_blob");
pragma interface (C, gds_create_blob2);
pragma interface_name (gds_create_blob2, "gds_$create_blob2");
pragma interface (C, gds_create_database);
pragma interface_name (gds_create_database, "gds_$create_database");
pragma interface (C, gds_ddl);
pragma interface_name (gds_ddl, "gds_$ddl");
pragma interface (C, gds_declare);
pragma interface_name (gds_declare, "gds_$declare");
pragma interface (C, gds_decode_date);
pragma interface_name (gds_decode_date, "gds_$decode_date");
pragma interface (C, gds_describe);
pragma interface_name (gds_describe, "gds_$describe");
pragma interface (C, gds_detach_database);
pragma interface_name (gds_detach_database, "gds_$detach_database");
pragma interface (C, gds_dsql_finish);
pragma interface_name (gds_dsql_finish, "gds_$dsql_finish");
pragma interface (C, gds_encode_date);
pragma interface_name (gds_encode_date, "gds_$encode_date");
pragma interface (C, gds_event_wait);
pragma interface_name (gds_event_wait, "gds_$event_wait");
pragma interface (C, gds_execute);
pragma interface_name (gds_execute, "gds_$execute");
pragma interface (C, gds_execute_immediate);
pragma interface_name (gds_execute_immediate, "gds_$execute_immediate");
pragma interface (C, gds_fetch);
pragma interface_name (gds_fetch, "gds_$fetch_a");
pragma interface (C, gds_get_segment);
pragma interface_name (gds_get_segment, "gds_$get_segment");
pragma interface (C, gds_get_slice);
pragma interface_name (gds_get_slice, "gds_$get_slice");
pragma interface (C, gds_open);
pragma interface_name (gds_open, "gds_$open");
pragma interface (C, gds_open_blob);
pragma interface_name (gds_open_blob, "gds_$open_blob");
pragma interface (C, gds_open_blob2);
pragma interface_name (gds_open_blob2, "gds_$open_blob2");
pragma interface (C, gds_prepare);
pragma interface_name (gds_prepare, "gds_$prepare");
pragma interface (C, gds_prepare_transaction);
pragma interface_name (gds_prepare_transaction, "gds_$prepare_transaction");
pragma interface (C, gds_prepare_transaction2);
pragma interface_name (gds_prepare_transaction2, "gds_$prepare_transaction2");
pragma interface (C, gds_print_status);
pragma interface_name (gds_print_status, "gds_$print_status");
pragma interface (C, gds_put_segment);
pragma interface_name (gds_put_segment, "gds_$put_segment");
pragma interface (C, gds_put_slice);
pragma interface_name (gds_put_slice, "gds_$put_slice");
pragma interface (C, gds_queue_events);
pragma interface_name (gds_queue_events, "gds_$que_events");
pragma interface (C, gds_receive);
pragma interface_name (gds_receive, "gds_$receive");
pragma interface (C, gds_rollback_transaction);
pragma interface_name (gds_rollback_transaction, "gds_$rollback_transaction");
pragma interface (C, gds_send);
pragma interface_name (gds_send, "gds_$send");
pragma interface (C, gds_set_debug);
pragma interface_name (gds_set_debug, "gds_$set_debug");
pragma interface (C, gds_sqlcode);
pragma interface_name (gds_sqlcode, "gds_$sqlcode");
pragma interface (C, gds_start_and_send);
pragma interface_name (gds_start_and_send, "gds_$start_and_send");
pragma interface (C, gds_start_multiple);
pragma interface_name (gds_start_multiple, "gds_$start_multiple");
pragma interface (C, gds_start_request);
pragma interface_name (gds_start_request, "gds_$start_request");
pragma interface (C, gds_start_transaction);
pragma interface_name (gds_start_transaction, "gds_$start_transaction");
pragma interface (C, gds_unwind_request);
pragma interface_name (gds_unwind_request, "gds_$unwind_request");
pragma interface (C, gds_version);
pragma interface_name (gds_version, "gds_$version");
pragma interface (C, pyxis_compile_map);
pragma interface_name (pyxis_compile_map, "pyxis_$compile_map");
pragma interface (C, pyxis_compile_sub_map);
pragma interface_name (pyxis_compile_sub_map, "pyxis_$compile_sub_map");
pragma interface (C, pyxis_create_window);
pragma interface_name (pyxis_create_window, "pyxis_$create_window");
pragma interface (C, pyxis_delete_window);
pragma interface_name (pyxis_delete_window, "pyxis_$delete_window");
pragma interface (C, pyxis_drive_form);
pragma interface_name (pyxis_drive_form, "pyxis_$drive_form");
pragma interface (C, pyxis_drive_menu);
pragma interface_name (pyxis_drive_menu, "pyxis_$drive_menu");
pragma interface (C, pyxis_fetch);
pragma interface_name (pyxis_fetch, "pyxis_$fetch");
pragma interface (C, pyxis_get_entree);
pragma interface_name (pyxis_get_entree, "pyxis_$get_entree");
pragma interface (C, pyxis_initialize_menu);
pragma interface_name (pyxis_initialize_menu, "pyxis_$initialize_menu");
pragma interface (C, pyxis_insert);
pragma interface_name (pyxis_insert, "pyxis_$insert");
pragma interface (C, pyxis_load_form);
pragma interface_name (pyxis_load_form, "pyxis_$load_form");
pragma interface (C, pyxis_menu);
pragma interface_name (pyxis_menu, "pyxis_$menu");
pragma interface (C, pyxis_pop_window);
pragma interface_name (pyxis_pop_window, "pyxis_$pop_window");
pragma interface (C, pyxis_put_entree);
pragma interface_name (pyxis_put_entree, "pyxis_$put_entree");
pragma interface (C, pyxis_reset_form);
pragma interface_name (pyxis_reset_form, "pyxis_$reset_form");
---
--- Interface routines that return status vector
---
PROCEDURE attach_database (
user_status : OUT status_vector;
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb) IS
BEGIN
gds_attach_database (
user_status'address,
file_length'address,
file_name'address,
db_handle'address,
dpb_length'address,
dpb_arg'address);
END attach_database;
PROCEDURE blob_display (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : integer) IS
BEGIN
gds_blob_display (
blob_id'address,
db_handle'address,
tra_handle'address,
field_name'address,
name_length'address);
END blob_display;
PROCEDURE blob_dump (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : integer) IS
BEGIN
gds_blob_dump (
blob_id'address,
db_handle'address,
tra_handle'address,
file_name'address,
name_length'address);
END blob_dump;
PROCEDURE blob_edit (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : integer) IS
BEGIN
gds_blob_edit (
blob_id'address,
db_handle'address,
tra_handle'address,
field_name'address,
name_length'address);
END blob_edit;
PROCEDURE blob_load (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : integer) IS
BEGIN
gds_blob_load (
blob_id'address,
db_handle'address,
tra_handle'address,
file_name'address,
name_length'address);
END blob_load;
PROCEDURE cancel_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle) IS
BEGIN
gds_cancel_blob (
user_status'address,
blb_handle'address);
END cancel_blob;
PROCEDURE cancel_events (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle) IS
BEGIN
gds_cancel_events (
user_status'address,
blb_handle'address);
END cancel_events;
PROCEDURE close_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle) IS
BEGIN
gds_close_blob (
user_status'address,
blb_handle'address);
END close_blob;
PROCEDURE commit_retaining (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_commit_retaining (
user_status'address,
trans_handle'address);
END commit_retaining;
PROCEDURE commit_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_commit_transaction (
user_status'address,
trans_handle'address);
END commit_transaction;
PROCEDURE compile_request (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr) IS
BEGIN
gds_compile_request (
user_status'address,
db_handle'address,
req_handle'address,
blr_length'address,
blr_arg'address);
END compile_request;
PROCEDURE compile_request2 (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr) IS
BEGIN
gds_compile_request2 (
user_status'address,
db_handle'address,
req_handle'address,
blr_length'address,
blr_arg'address);
END compile_request2;
PROCEDURE create_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad) IS
BEGIN
gds_create_blob (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address);
END create_blob;
PROCEDURE create_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : integer;
bpb : blr) IS
BEGIN
gds_create_blob2 (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address,
bpb_length'address,
bpb'address);
END create_blob2;
PROCEDURE create_database (
user_status : OUT status_vector;
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb;
db_type : integer) IS
BEGIN
gds_create_database (
user_status'address,
file_length'address,
file_name'address,
db_handle'address,
dpb_length'address,
dpb_arg'address,
db_type'address);
END create_database;
PROCEDURE ddl (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : integer;
msg : SYSTEM.ADDRESS) IS
BEGIN
gds_ddl (
user_status'address,
db_handle'address,
trans_handle'address,
msg_length'address,
msg);
END ddl;
PROCEDURE decode_date (
date : quad;
times : IN OUT gds_tm) IS
BEGIN
gds_decode_date (
date'address,
times'address);
END decode_date;
PROCEDURE detach_database (
user_status : OUT status_vector;
db_handle : IN OUT database_handle) IS
BEGIN
gds_detach_database (
user_status'address,
db_handle'address);
END detach_database;
PROCEDURE encode_date (
times : IN OUT gds_tm;
date : quad) IS
BEGIN
gds_encode_date (
times'address,
date'address);
END encode_date;
PROCEDURE event_wait (
user_status : OUT status_vector;
db_handle : database_handle;
length : integer;
events : string;
buffer : string) IS
BEGIN
gds_event_wait (
user_status'address,
db_handle'address,
length'address,
events'address,
buffer'address);
END event_wait;
PROCEDURE get_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
actual_length : OUT integer;
buffer_length : integer;
buffer : string) IS
BEGIN
gds_get_segment (
user_status'address,
blb_handle'address,
actual_length'address,
buffer_length'address,
buffer'address);
END get_segment;
PROCEDURE get_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : SYSTEM.ADDRESS;
return_length : OUT long_integer) IS
BEGIN
gds_get_slice (
user_status'address,
db_handle'address,
trans_handle'address,
blob_id'address,
sdl_length'address,
sdl'address,
param_length'address,
param'address,
slice_length'address,
slice,
return_length'address);
END get_slice;
PROCEDURE open_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad) IS
BEGIN
gds_open_blob (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address);
END open_blob;
PROCEDURE open_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : integer;
bpb : blr) IS
BEGIN
gds_open_blob2 (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address,
bpb_length'address,
bpb'address);
END open_blob2;
PROCEDURE prepare_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_prepare_transaction (
user_status'address,
trans_handle'address);
END prepare_transaction;
PROCEDURE prepare_transaction2 (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
msg_length : integer;
msg : blr) IS
BEGIN
gds_prepare_transaction2 (
user_status'address,
trans_handle'address,
msg_length'address,
msg'address);
END prepare_transaction2;
PROCEDURE put_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
length : integer;
buffer : string) IS
BEGIN
gds_put_segment (
user_status'address,
blb_handle'address,
length'address,
buffer'address);
END put_segment;
PROCEDURE put_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : SYSTEM.ADDRESS) IS
BEGIN
gds_put_slice (
user_status'address,
db_handle'address,
trans_handle'address,
blob_id'address,
sdl_length'address,
sdl'address,
param_length'address,
param'address,
slice_length'address,
slice);
END put_slice;
PROCEDURE queue_events (
user_status : OUT status_vector;
db_handle : database_handle;
id : quad;
length : integer;
events : string;
ast : long_integer;
arg : quad) IS
BEGIN
gds_queue_events (
user_status'address,
db_handle'address,
id'address,
length'address,
events'address,
ast'address,
arg'address);
END queue_events;
PROCEDURE receive (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
BEGIN
gds_receive (
user_status'address,
req_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
END receive;
PROCEDURE rollback_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_rollback_transaction (
user_status'address,
trans_handle'address);
END rollback_transaction;
PROCEDURE send (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
BEGIN
gds_send (
user_status'address,
req_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
END send;
PROCEDURE set_debug (
debug_val : long_integer) IS
BEGIN
gds_set_debug (
debug_val'address);
END set_debug;
PROCEDURE start_request (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
level : integer) IS
BEGIN
gds_start_request (
user_status'address,
req_handle'address,
trans_handle'address,
level'address);
END start_request;
PROCEDURE start_and_send (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
BEGIN
gds_start_and_send (
user_status'address,
req_handle'address,
trans_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
END start_and_send;
PROCEDURE start_multiple (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : integer;
teb : SYSTEM.ADDRESS) IS
BEGIN
gds_start_multiple (
user_status'address,
trans_handle'address,
count'address,
teb);
END start_multiple;
PROCEDURE start_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : integer;
db_handle : database_handle;
tpb_length : integer;
tpb_arg : tpb) IS
BEGIN
gds_start_transaction (
user_status'address,
trans_handle'address,
count'address,
db_handle'address,
tpb_length'address,
tpb_arg'address);
END start_transaction;
PROCEDURE unwind_request (
user_status : OUT status_vector;
req_handle : request_handle;
level : integer) IS
BEGIN
gds_unwind_request (
user_status'address,
req_handle'address,
level'address);
END unwind_request;
PROCEDURE print_status (
user_status : status_vector) IS
BEGIN
gds_print_status (
user_status'address);
END print_status;
PROCEDURE print_version (
db_handle: interbase.database_handle) IS
ptr : long_integer := 0;
BEGIN
gds_version (
db_handle'address,
0,
ptr'address);
END print_version;
FUNCTION sqlcode (
user_status : status_vector) RETURN long_integer IS
BEGIN
return gds_sqlcode (user_status'address);
end sqlcode;
--- Dynamic SQL procedures
PROCEDURE dsql_close (
user_status : OUT status_vector;
cursor_name : string) IS
BEGIN
gds_close (
user_status'address,
cursor_name'address);
END dsql_close;
PROCEDURE dsql_declare (
user_status : OUT status_vector;
statement_name : string;
cursor_name : string) IS
BEGIN
gds_declare (
user_status'address,
statement_name'address,
cursor_name'address);
END dsql_declare;
PROCEDURE dsql_describe (
user_status : OUT status_vector;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_describe (
user_status'address,
statement_name'address,
descriptor);
END dsql_describe;
PROCEDURE dsql_finish (
db_handle : database_handle) IS
BEGIN
gds_dsql_finish (
db_handle'address);
END dsql_finish;
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_execute (
user_status'address,
trans_handle'address,
statement_name'address,
descriptor);
END dsql_execute;
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string) IS
BEGIN
gds_execute (
user_status'address,
trans_handle'address,
statement_name'address,
null_blob'address);
END dsql_execute;
PROCEDURE dsql_execute_immediate (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : integer;
command : string) IS
BEGIN
gds_execute_immediate (
user_status'address,
db_handle'address,
trans_handle'address,
command_length'address,
command'address);
END dsql_execute_immediate;
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT long_integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_fetch (
user_status'address,
sqlcode'address,
cursor_name'address,
descriptor);
END dsql_fetch;
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT long_integer;
cursor_name : string) IS
BEGIN
gds_fetch (
user_status'address,
sqlcode'address,
cursor_name'address,
null_blob'address);
END dsql_fetch;
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_open (
user_status'address,
trans_handle'address,
cursor_name'address,
descriptor);
END dsql_open;
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string) IS
BEGIN
gds_open (
user_status'address,
trans_handle'address,
cursor_name'address,
null_blob'address);
END dsql_open;
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_prepare (
user_status'address,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
descriptor);
END dsql_prepare;
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string) IS
BEGIN
gds_prepare (
user_status'address,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
null_blob'address);
END dsql_prepare;
--- PYXIS procedures
PROCEDURE compile_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr) IS
BEGIN
pyxis_compile_map (
user_status'address,
frm_handle'address,
mp_handle'address,
map_length'address,
map'address);
END compile_map;
PROCEDURE compile_sub_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr) IS
BEGIN
pyxis_compile_sub_map (
user_status'address,
frm_handle'address,
mp_handle'address,
map_length'address,
map'address);
END compile_sub_map;
PROCEDURE create_window (
win_handle : OUT window_handle;
name_length : integer;
file_name : string;
width : IN OUT integer;
height : IN OUT integer) IS
BEGIN
pyxis_create_window (
win_handle'address,
name_length'address,
file_name'address,
width'address,
height'address);
END create_window;
PROCEDURE delete_window (
win_handle : IN OUT window_handle) IS
BEGIN
pyxis_delete_window (
win_handle'address);
END delete_window;
PROCEDURE drive_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS) IS
BEGIN
pyxis_drive_form (
user_status'address,
db_handle'address,
trans_handle'address,
win_handle'address,
mp_handle'address,
input,
output);
END drive_form;
PROCEDURE fetch_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS) IS
BEGIN
pyxis_fetch (
user_status'address,
db_handle'address,
trans_handle'address,
mp_handle'address,
output);
END fetch_sub_form;
PROCEDURE insert_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS) IS
BEGIN
pyxis_insert (
user_status'address,
db_handle'address,
trans_handle'address,
mp_handle'address,
input);
END insert_sub_form;
PROCEDURE load_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : integer;
form_name : string) IS
BEGIN
pyxis_load_form (
user_status'address,
db_handle'address,
trans_handle'address,
frm_handle'address,
name_length'address,
form_name'address);
END load_form;
FUNCTION menu (
win_handle : window_handle;
men_handle : menu_handle;
menu_length : integer;
menu : blr) RETURN integer IS
BEGIN
return pyxis_menu (
win_handle'address,
men_handle'address,
menu_length'address,
menu'address);
END menu;
PROCEDURE pop_window (
win_handle : window_handle) IS
BEGIN
pyxis_pop_window (
win_handle'address);
END pop_window;
PROCEDURE reset_form (
user_status : OUT status_vector;
win_handle : window_handle) IS
BEGIN
pyxis_reset_form (
user_status'address,
win_handle'address);
END reset_form;
PROCEDURE drive_menu (
win_handle : IN OUT window_handle;
men_handle : IN OUT menu_handle;
blr_length : integer;
blr_source : blr;
title_length : integer;
title : string;
terminator : OUT integer;
entree_length : OUT integer;
entree_text : OUT string;
entree_value : OUT long_integer) IS
BEGIN
pyxis_drive_menu (
win_handle'address,
men_handle'address,
blr_length'address,
blr_source'address,
title_length'address,
title'address,
terminator'address,
entree_length'address,
entree_text'address,
entree_value'address);
END drive_menu;
PROCEDURE get_entree (
men_handle : menu_handle;
entree_length : OUT integer;
entree_text : OUT string;
entree_value : OUT long_integer;
entree_end : OUT integer) IS
BEGIN
pyxis_get_entree (
men_handle'address,
entree_length'address,
entree_text'address,
entree_value'address,
entree_end'address);
END get_entree;
PROCEDURE initialize_menu (
men_handle : IN OUT menu_handle) IS
BEGIN
pyxis_initialize_menu (
men_handle'address);
END initialize_menu;
PROCEDURE put_entree (
men_handle : menu_handle;
entree_length : integer;
entree_text : string;
entree_value : long_integer) IS
BEGIN
pyxis_put_entree (
men_handle'address,
entree_length'address,
entree_text'address,
entree_value'address);
END put_entree;
---
--- Internal routines
---
PROCEDURE error (
user_status : status_vector) IS
BEGIN
gds_print_status (user_status'address);
RAISE database_error;
END;
---
--- Routines sans explicit status vector
---
PROCEDURE attach_database (
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb) IS
user_status : status_vector;
BEGIN
gds_attach_database (
user_status'address,
file_length'address,
file_name'address,
db_handle'address,
dpb_length'address,
dpb_arg'address);
if user_status (1) /= 0 then error (user_status); end if;
END attach_database;
PROCEDURE cancel_blob (
blb_handle : IN OUT blob_handle) IS
user_status : status_vector;
BEGIN
gds_cancel_blob (
user_status'address,
blb_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END cancel_blob;
PROCEDURE cancel_events (
blb_handle : IN OUT blob_handle) IS
user_status : status_vector;
BEGIN
gds_cancel_events (
user_status'address,
blb_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END cancel_events;
PROCEDURE close_blob (
blb_handle : IN OUT blob_handle) IS
user_status : status_vector;
BEGIN
gds_close_blob (
user_status'address,
blb_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END close_blob;
PROCEDURE commit_retaining (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_commit_retaining (
user_status'address,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END commit_retaining;
PROCEDURE commit_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_commit_transaction (
user_status'address,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END commit_transaction;
PROCEDURE compile_request (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr) IS
user_status : status_vector;
BEGIN
gds_compile_request (
user_status'address,
db_handle'address,
req_handle'address,
blr_length'address,
blr_arg'address);
if user_status (1) /= 0 then error (user_status); end if;
END compile_request;
PROCEDURE compile_request2 (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr) IS
user_status : status_vector;
BEGIN
gds_compile_request2 (
user_status'address,
db_handle'address,
req_handle'address,
blr_length'address,
blr_arg'address);
if user_status (1) /= 0 then error (user_status); end if;
END compile_request2;
PROCEDURE create_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad) IS
user_status : status_vector;
BEGIN
gds_create_blob (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address);
if user_status (1) /= 0 then error (user_status); end if;
END create_blob;
PROCEDURE create_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : integer;
bpb : blr) IS
user_status : status_vector;
BEGIN
gds_create_blob2 (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address,
bpb_length'address,
bpb'address);
if user_status (1) /= 0 then error (user_status); end if;
END create_blob2;
PROCEDURE create_database (
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb;
db_type : integer) IS
user_status : status_vector;
BEGIN
gds_create_database (
user_status'address,
file_length'address,
file_name'address,
db_handle'address,
dpb_length'address,
dpb_arg'address,
db_type'address);
if user_status (1) /= 0 then error (user_status); end if;
END create_database;
PROCEDURE ddl (
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : integer;
msg : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_ddl (
user_status'address,
db_handle'address,
trans_handle'address,
msg_length'address,
msg);
if user_status (1) /= 0 then error (user_status); end if;
END ddl;
PROCEDURE detach_database (
db_handle : IN OUT database_handle) IS
user_status : status_vector;
BEGIN
gds_detach_database (
user_status'address,
db_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END detach_database;
PROCEDURE event_wait (
db_handle : database_handle;
length : integer;
events : string;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_event_wait (
user_status'address,
db_handle'address,
length'address,
events'address,
buffer'address);
END event_wait;
PROCEDURE get_segment (
completion_code : OUT long_integer;
blb_handle : blob_handle;
actual_length : OUT integer;
buffer_length : integer;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_get_segment (
user_status'address,
blb_handle'address,
actual_length'address,
buffer_length'address,
buffer'address);
if user_status (1) /= 0 and user_status (1) /= gds_segment and
user_status (1) /= gds_segstr_eof then
error (user_status);
end if;
completion_code := user_status(1);
END get_segment;
PROCEDURE get_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : SYSTEM.ADDRESS;
return_length : OUT long_integer) IS
user_status : status_vector;
BEGIN
gds_get_slice (
user_status'address,
db_handle'address,
trans_handle'address,
blob_id'address,
sdl_length'address,
sdl'address,
param_length'address,
param'address,
slice_length'address,
slice,
return_length'address);
END get_slice;
PROCEDURE open_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad) IS
user_status : status_vector;
BEGIN
gds_open_blob (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address);
if user_status (1) /= 0 then error (user_status); end if;
END open_blob;
PROCEDURE open_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : integer;
bpb : blr) IS
user_status : status_vector;
BEGIN
gds_open_blob2 (
user_status'address,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id'address,
bpb_length'address,
bpb'address);
if user_status (1) /= 0 then error (user_status); end if;
END open_blob2;
PROCEDURE prepare_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_prepare_transaction (
user_status'address,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END prepare_transaction;
PROCEDURE prepare_transaction2 (
trans_handle : IN OUT transaction_handle;
msg_length : integer;
msg : blr) IS
user_status : status_vector;
BEGIN
gds_prepare_transaction2 (
user_status'address,
trans_handle'address,
msg_length'address,
msg'address);
END prepare_transaction2;
PROCEDURE put_segment (
blb_handle : blob_handle;
length : integer;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_put_segment (
user_status'address,
blb_handle'address,
length'address,
buffer'address);
if user_status (1) /= 0 then error (user_status); end if;
END put_segment;
PROCEDURE put_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_put_slice (
user_status'address,
db_handle'address,
trans_handle'address,
blob_id'address,
sdl_length'address,
sdl'address,
param_length'address,
param'address,
slice_length'address,
slice);
END put_slice;
PROCEDURE queue_events (
db_handle : database_handle;
id : quad;
length : integer;
events : string;
ast : long_integer;
arg : quad) IS
user_status : status_vector;
BEGIN
gds_queue_events (
user_status'address,
db_handle'address,
id'address,
length'address,
events'address,
ast'address,
arg'address);
END queue_events;
PROCEDURE receive (
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
user_status : status_vector;
BEGIN
gds_receive (
user_status'address,
req_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
if user_status (1) /= 0 then error (user_status); end if;
END receive;
PROCEDURE rollback_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_rollback_transaction (
user_status'address,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END rollback_transaction;
PROCEDURE send (
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
user_status : status_vector;
BEGIN
gds_send (
user_status'address,
req_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
if user_status (1) /= 0 then error (user_status); end if;
END send;
PROCEDURE start_request (
req_handle : request_handle;
trans_handle : transaction_handle;
level : integer) IS
user_status : status_vector;
BEGIN
gds_start_request (
user_status'address,
req_handle'address,
trans_handle'address,
level'address);
if user_status (1) /= 0 then error (user_status); end if;
END start_request;
PROCEDURE start_and_send (
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
user_status : status_vector;
BEGIN
gds_start_and_send (
user_status'address,
req_handle'address,
trans_handle'address,
msg_type'address,
msg_length'address,
msg,
level'address);
if user_status (1) /= 0 then error (user_status); end if;
END start_and_send;
PROCEDURE start_multiple (
trans_handle : IN OUT transaction_handle;
count : integer;
teb : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_start_multiple (
user_status'address,
trans_handle'address,
count'address,
teb);
if user_status (1) /= 0 then error (user_status); end if;
END start_multiple;
PROCEDURE start_transaction (
trans_handle : IN OUT transaction_handle;
count : integer;
db_handle : database_handle;
tpb_length : integer;
tpb_arg : tpb) IS
user_status : status_vector;
BEGIN
gds_start_transaction (
user_status'address,
trans_handle'address,
count'address,
db_handle'address,
tpb_length'address,
tpb_arg'address);
if user_status (1) /= 0 then error (user_status); end if;
END start_transaction;
PROCEDURE unwind_request (
req_handle : request_handle;
level : integer) IS
user_status : status_vector;
BEGIN
gds_unwind_request (
user_status'address,
req_handle'address,
level'address);
if user_status (1) /= 0 then error (user_status); end if;
END unwind_request;
--- Dynamic SQL procedures
PROCEDURE dsql_close (
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_close (
user_status'address,
cursor_name'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_close;
PROCEDURE dsql_declare (
statement_name : string;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_declare (
user_status'address,
statement_name'address,
cursor_name'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_declare;
PROCEDURE dsql_describe (
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_describe (
user_status'address,
statement_name'address,
descriptor'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_describe;
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_execute (
user_status'address,
trans_handle'address,
statement_name'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute;
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string) IS
user_status : status_vector;
BEGIN
gds_execute (
user_status'address,
trans_handle'address,
statement_name'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute;
PROCEDURE dsql_execute_immediate (
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : integer;
command : string) IS
user_status : status_vector;
BEGIN
gds_execute_immediate (
user_status'address,
db_handle'address,
trans_handle'address,
command_length'address,
command'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute_immediate;
PROCEDURE dsql_fetch (
sqlcode : OUT long_integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_fetch (
user_status'address,
sqlcode'address,
cursor_name'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_fetch;
PROCEDURE dsql_fetch (
sqlcode : OUT long_integer;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_fetch (
user_status'address,
sqlcode'address,
cursor_name'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_fetch;
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_open (
user_status'address,
trans_handle'address,
cursor_name'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_open;
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_open (
user_status'address,
trans_handle'address,
cursor_name'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_open;
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_prepare (
user_status'address,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_prepare;
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string) IS
user_status : status_vector;
BEGIN
gds_prepare (
user_status'address,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_prepare;
--- PYXIS procedures
PROCEDURE compile_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr) IS
user_status : status_vector;
BEGIN
pyxis_compile_map (
user_status'address,
frm_handle'address,
mp_handle'address,
map_length'address,
map'address);
--- if user_status (1) /= 0 then error (user_status); end if;
END compile_map;
PROCEDURE compile_sub_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr) IS
user_status : status_vector;
BEGIN
pyxis_compile_sub_map (
user_status'address,
frm_handle'address,
mp_handle'address,
map_length'address,
map'address);
--- if user_status (1) /= 0 then error (user_status); end if;
END compile_sub_map;
PROCEDURE drive_form (
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_drive_form (
user_status'address,
db_handle'address,
trans_handle'address,
win_handle'address,
mp_handle'address,
input,
output);
--- if user_status (1) /= 0 then error (user_status); end if;
END drive_form;
PROCEDURE fetch_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_fetch (
user_status'address,
db_handle'address,
trans_handle'address,
mp_handle'address,
output);
--- if user_status (1) /= 0 then error (user_status); end if;
END fetch_sub_form;
PROCEDURE insert_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_insert (
user_status'address,
db_handle'address,
trans_handle'address,
mp_handle'address,
input);
--- if user_status (1) /= 0 then error (user_status); end if;
END insert_sub_form;
PROCEDURE load_form (
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : integer;
form_name : string) IS
user_status : status_vector;
BEGIN
pyxis_load_form (
user_status'address,
db_handle'address,
trans_handle'address,
frm_handle'address,
name_length'address,
form_name'address);
if user_status (1) /= 0 then error (user_status); end if;
END load_form;
PROCEDURE reset_form (
win_handle : window_handle) IS
user_status : status_vector;
BEGIN
pyxis_reset_form (
user_status'address,
win_handle'address);
--- if user_status (1) /= 0 then error (user_status); end if;
END reset_form;
END interbase;');
INSERT INTO TEMPLATES (LANGUAGE, "FILE", TEMPLATE) VALUES ('VMS_ADA', 'interbase_vms.a',
'WITH SYSTEM;
PACKAGE interbase IS
TYPE status_vector IS ARRAY (0..19) OF INTEGER;
TYPE quad IS ARRAY (0..1) OF INTEGER;
TYPE chars is array (integer range <>) of character;
TYPE blr IS ARRAY (integer range <>) of short_short_integer;
TYPE dpb IS ARRAY (integer range <>) of short_short_integer;
TYPE tpb IS ARRAY (integer range <>) of short_short_integer;
SUBTYPE isc_short IS short_integer;
SUBTYPE isc_long IS integer;
SUBTYPE isc_float IS float;
SUBTYPE isc_double IS system.g_float;
SUBTYPE double IS system.g_float;
SUBTYPE database_handle IS integer;
SUBTYPE request_handle IS integer;
SUBTYPE transaction_handle IS integer;
SUBTYPE blob_handle IS integer;
SUBTYPE form_handle IS integer;
SUBTYPE map_handle IS integer;
SUBTYPE window_handle IS integer;
SUBTYPE menu_handle IS integer;
TYPE gds_teb_t IS RECORD
dbb_ptr : SYSTEM.ADDRESS;
tpb_len : integer;
tpb_ptr : SYSTEM.ADDRESS;
END RECORD;
TYPE gds_tm IS RECORD
tm_sec : integer;
tm_min : integer;
tm_hour : integer;
tm_mday : integer;
tm_mon : integer;
tm_year : integer;
tm_wday : integer;
tm_yday : integer;
tm_isdst : integer;
END RECORD;
TYPE sqlvar is RECORD
sqltype : short_integer;
sqllen : short_integer;
sqldata : SYSTEM.ADDRESS;
sqlind : SYSTEM.ADDRESS;
sqlname_length : short_integer;
sqlname : chars (1..30);
END RECORD;
TYPE sqlvar_array IS ARRAY (short_integer range <>) of sqlvar;
TYPE sqlda (size: short_integer) IS RECORD
sqldaid : chars (1..8);
sqldabc : integer;
sqln : short_integer := size;
sqld : short_integer;
sqlvars : sqlvar_array (1..size);
END RECORD;
--- Constants
gds_true : CONSTANT integer := 1;
gds_false : CONSTANT integer := 0;
--- BLR
$ SET SANS_DOLLAR
$ FORMAT BLR_FORMAT " %s : CONSTANT short_short_integer := %d;\n
$ FORMAT DYN_FORMAT " %-32s: CONSTANT short_short_integer := %d;\n
$ FORMAT SDL_FORMAT " %-32s: CONSTANT short_short_integer := %d;\n
$ FORMAT ERROR_FORMAT "%-25s: CONSTANT integer := %d;\n
$ FORMAT PB_FORMAT " %-29s: CONSTANT short_short_integer := %d;\n
$ FORMAT PYXIS_FORMAT "%-29s: CONSTANT short_short_integer := %d;\n
$ FORMAT OPT_FORMAT "%-32s: CONSTANT integer := %d;\n
$ FORMAT SQL_FORMAT "%-16s: CONSTANT short_integer := %d;\n
$ SYMBOLS BLR DTYPE BLR_FORMAT
$ SYMBOLS BLR MECH SIGNED BLR_FORMAT
$ SYMBOLS BLR STATEMENTS BLR_FORMAT
$ SYMBOLS BLR VALUES BLR_FORMAT
$ SYMBOLS BLR BOOLEANS BLR_FORMAT
$ SYMBOLS BLR RSE BLR_FORMAT
$ SYMBOLS BLR JOIN BLR_FORMAT
$ SYMBOLS BLR AGGREGATE BLR_FORMAT
$ SYMBOLS BLR NEW BLR_FORMAT
--- Dynamic Data Definition Language operators
--- Version number
$ SYMBOLS DYN MECH SIGNED DYN_FORMAT
--- Operations (may be nested)
$ SYMBOLS DYN OPERATIONS SIGNED DYN_FORMAT
--- View specific stuff
$ SYMBOLS DYN VIEW SIGNED DYN_FORMAT
--- Generic attributes
$ SYMBOLS DYN GENERIC SIGNED DYN_FORMAT
--- Relation specific attributes
$ SYMBOLS DYN RELATION SIGNED DYN_FORMAT
--- Global field specific attributes
$ SYMBOLS DYN GLOBAL SIGNED DYN_FORMAT
--- Local field specific attributes
$ SYMBOLS DYN FIELD SIGNED DYN_FORMAT
--- Index specific attributes
$ SYMBOLS DYN INDEX SIGNED DYN_FORMAT
--- Trigger specific attributes
$ SYMBOLS DYN TRIGGER SIGNED DYN_FORMAT
--- Security Class specific attributes
$ SYMBOLS DYN SECURITY SIGNED DYN_FORMAT
--- Dimension attributes
$ SYMBOLS DYN ARRAY SIGNED DYN_FORMAT
--- File specific attributes
$ SYMBOLS DYN FILES DYN_FORMAT
--- Function specific attributes
$ SYMBOLS DYN FUNCTIONS DYN_FORMAT
--- Generator specific attributes
$ SYMBOLS DYN GENERATOR DYN_FORMAT
--- Array slice description language (SDL)
$ SYMBOLS SDL SDL SIGNED SDL_FORMAT
--- Database parameter block stuff
$ SYMBOLS DPB ITEMS PB_FORMAT
$ SYMBOLS DPB BITS PB_FORMAT
--- Transaction parameter block stuff
$ SYMBOLS TPB ITEMS PB_FORMAT
--- Blob parameter block stuff
$ SYMBOLS BPB ITEMS PB_FORMAT
--- Common, structural codes
$ SYMBOLS INFO MECH PB_FORMAT
--- Database information items
$ SYMBOLS INFO DB PB_FORMAT
--- Request information items
$ SYMBOLS INFO REQUEST PB_FORMAT
--- Blob information items
$ SYMBOLS INFO BLOB PB_FORMAT
--- Transaction information items
$ SYMBOLS INFO TRANSACTION PB_FORMAT
--- Error codes
$ SYMBOLS ERROR MECH ERROR_FORMAT
$ ERROR MAJOR ERROR_FORMAT
--- Minor codes subject to change
$ ERROR MINOR ERROR_FORMAT
--- Dynamic SQL datatypes
$ SYMBOLS SQL DTYPE SQL_FORMAT
--- Forms Package definitions
--- Map definition block definitions
$ SYMBOLS PYXIS MAP SIGNED PYXIS_FORMAT
--- Field option flags for display options
$ SYMBOLS PYXIS DISPLAY OPT_FORMAT
--- Field option values following display
$ SYMBOLS PYXIS VALUE OPT_FORMAT
--- Pseudo key definitions
$ SYMBOLS PYXIS KEY OPT_FORMAT
--- Menu definition stuff
$ SYMBOLS PYXIS MENU SIGNED PYXIS_FORMAT blr_text : CONSTANT short_short_integer := 14;
database_error : EXCEPTION;
null_blob : CONSTANT quad := (0, 0);
null_tpb : tpb (0..0);
null_dpb : dpb (0..0);
PROCEDURE attach_database (
user_status : OUT status_vector;
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb);
PROCEDURE blob_display (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : short_integer);
PROCEDURE blob_dump (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : short_integer);
PROCEDURE blob_edit (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : short_integer);
PROCEDURE blob_load (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : short_integer);
PROCEDURE cancel_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE cancel_events (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle;
id : integer);
PROCEDURE close_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE commit_retaining (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE commit_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE compile_request (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr);
PROCEDURE compile_request2 (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr);
PROCEDURE create_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad);
PROCEDURE create_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : short_integer;
bpb : blr);
PROCEDURE create_database (
user_status : OUT status_vector;
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb;
db_type : short_integer);
PROCEDURE detach_database (
user_status : OUT status_vector;
db_handle : IN OUT database_handle);
PROCEDURE ddl (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : short_integer;
msg : SYSTEM.ADDRESS);
PROCEDURE encode_date (
times : gds_tm;
date : IN OUT quad);
PROCEDURE decode_date (
date : quad;
times : IN OUT gds_tm);
PROCEDURE event_wait (
user_status : OUT status_vector;
db_handle : database_handle;
length : short_integer;
events : string;
buffer : string);
PROCEDURE get_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
actual_length : OUT short_integer;
buffer_length : short_integer;
buffer : string);
PROCEDURE get_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS;
return_length : OUT integer);
PROCEDURE open_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad);
PROCEDURE open_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : short_integer;
bpb : blr);
PROCEDURE prepare_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE prepare_transaction2 (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
msg_length : short_integer;
msg : blr);
PROCEDURE print_status (
user_status : status_vector);
PROCEDURE put_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
length : short_integer;
buffer : string);
PROCEDURE put_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS);
PROCEDURE que_events (
user_status : OUT status_vector;
db_handle : database_handle;
id : quad;
length : short_integer;
events : string;
ast : integer;
arg : quad);
PROCEDURE receive (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE rollback_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE send (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE print_version (
db_handle : database_handle);
FUNCTION sqlcode (
user_status : status_vector) RETURN integer;
PROCEDURE start_and_send (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE start_request (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
level : short_integer);
PROCEDURE start_multiple (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : short_integer;
teb : SYSTEM.ADDRESS);
PROCEDURE start_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : short_integer;
db_handle : database_handle;
tpb_length : short_integer;
tpb_arg : tpb);
PROCEDURE unwind_request (
user_status : OUT status_vector;
req_handle : request_handle;
level : short_integer);
--- Dynamic SQL procedures
PROCEDURE dsql_close (
user_status : OUT status_vector;
cursor_name : string);
PROCEDURE dsql_declare (
user_status : OUT status_vector;
statement_name : string;
cursor_name : string);
PROCEDURE dsql_describe (
user_status : OUT status_vector;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string);
PROCEDURE dsql_execute_immediate (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : short_integer;
command : string);
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT integer;
cursor_name : string);
PROCEDURE dsql_finish (
db_handle : database_handle);
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string);
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string);
--- PYXIS procedures
PROCEDURE compile_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr);
PROCEDURE compile_sub_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr);
PROCEDURE create_window (
win_handle : OUT window_handle;
name_length : short_integer;
file_name : string;
width : IN OUT short_integer;
height : IN OUT short_integer);
PROCEDURE delete_window (
win_handle : IN OUT window_handle);
PROCEDURE drive_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS);
PROCEDURE fetch_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS);
PROCEDURE insert_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS);
PROCEDURE load_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : short_integer;
form_name : string);
FUNCTION menu (
win_handle : window_handle;
men_handle : menu_handle;
menu_length : short_integer;
menu : blr) RETURN short_integer;
PROCEDURE pop_window (
win_handle : window_handle);
PROCEDURE reset_form (
user_status : OUT status_vector;
win_handle : window_handle);
PROCEDURE drive_menu (
win_handle : IN OUT window_handle;
men_handle : IN OUT menu_handle;
blr_length : short_integer;
blr_source : blr;
title_length : short_integer;
title : string;
terminator : OUT short_integer;
entree_length : OUT short_integer;
entree_text : OUT string;
entree_value : OUT integer);
PROCEDURE get_entree (
men_handle : menu_handle;
entree_length : OUT short_integer;
entree_text : OUT string;
entree_value : OUT integer;
entree_end : OUT short_integer);
PROCEDURE initialize_menu (
men_handle : IN OUT menu_handle);
PROCEDURE put_entree (
men_handle : menu_handle;
entree_length : short_integer;
entree_text : string;
entree_value : integer);
---
--- Same routines, but with automatic error checking
---
PROCEDURE attach_database (
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb);
PROCEDURE cancel_blob (
blb_handle : IN OUT blob_handle);
PROCEDURE cancel_events (
blb_handle : IN OUT blob_handle;
id : integer);
PROCEDURE close_blob (
blb_handle : IN OUT blob_handle);
PROCEDURE commit_retaining (
trans_handle : IN OUT transaction_handle);
PROCEDURE commit_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE compile_request (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr);
PROCEDURE create_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad);
PROCEDURE create_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : short_integer;
bpb : blr);
PROCEDURE create_database (
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb;
db_type : short_integer);
PROCEDURE detach_database (
db_handle : IN OUT database_handle);
PROCEDURE ddl (
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : short_integer;
msg : SYSTEM.ADDRESS);
PROCEDURE get_segment (
completion_code : OUT integer;
blb_handle : blob_handle;
actual_length : OUT short_integer;
buffer_length : short_integer;
buffer : string);
PROCEDURE get_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS;
return_length : OUT integer);
PROCEDURE open_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad);
PROCEDURE open_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : short_integer;
bpb : blr);
PROCEDURE prepare_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE prepare_transaction2 (
trans_handle : IN OUT transaction_handle;
msg_length : short_integer;
msg : blr);
PROCEDURE put_segment (
blb_handle : blob_handle;
length : short_integer;
buffer : string);
PROCEDURE put_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS);
PROCEDURE que_events (
db_handle : database_handle;
id : quad;
length : short_integer;
events : string;
ast : integer;
arg : quad);
PROCEDURE receive (
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE rollback_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE send (
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE start_and_send (
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE start_request (
req_handle : request_handle;
trans_handle : transaction_handle;
level : short_integer);
PROCEDURE start_multiple (
trans_handle : IN OUT transaction_handle;
count : short_integer;
teb : SYSTEM.ADDRESS);
PROCEDURE start_transaction (
trans_handle : IN OUT transaction_handle;
count : short_integer;
db_handle : database_handle;
tpb_length : short_integer;
tpb_arg : tpb);
PROCEDURE unwind_request (
req_handle : request_handle;
level : short_integer);
PROCEDURE dsql_close (
cursor_name : string);
PROCEDURE dsql_declare (
statement_name : string;
cursor_name : string);
PROCEDURE dsql_describe (
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string);
PROCEDURE dsql_execute_immediate (
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : short_integer;
command : string);
PROCEDURE dsql_fetch (
sqlcode : OUT integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_fetch (
sqlcode : OUT integer;
cursor_name : string);
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string);
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string);
--- PYXIS procedures
PROCEDURE compile_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr);
PROCEDURE compile_sub_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr);
PROCEDURE drive_form (
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS);
PROCEDURE fetch_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS);
PROCEDURE insert_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS);
PROCEDURE load_form (
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : short_integer;
form_name : string);
PROCEDURE reset_form (
win_handle : window_handle);
END interbase;
PACKAGE BODY interbase IS
---
--- Actual Interbase entrypoints
---
PROCEDURE gds_attach_database (
user_status : OUT status_vector;
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb);
PROCEDURE gds_blob_display (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : short_integer);
PROCEDURE gds_blob_dump (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : short_integer);
PROCEDURE gds_blob_edit (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : short_integer);
PROCEDURE gds_blob_load (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : short_integer);
PROCEDURE gds_cancel_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE gds_cancel_events (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle;
id : integer);
PROCEDURE gds_close_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE gds_commit_retaining (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE gds_commit_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE gds_compile_request (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr);
PROCEDURE gds_compile_request2 (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr);
PROCEDURE gds_create_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad);
PROCEDURE gds_create_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : short_integer;
bpb : blr);
PROCEDURE gds_create_database (
user_status : OUT status_vector;
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb;
db_type : short_integer);
PROCEDURE gds_ddl (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : short_integer;
msg : SYSTEM.ADDRESS);
PROCEDURE gds_decode_date (
date : quad;
times : IN OUT gds_tm);
PROCEDURE gds_detach_database (
user_status : OUT status_vector;
db_handle : IN OUT database_handle);
PROCEDURE gds_encode_date (
times : gds_tm;
date : IN OUT quad);
PROCEDURE gds_event_wait (
user_status : OUT status_vector;
db_handle : database_handle;
length : short_integer;
events : string;
buffer : string);
PROCEDURE gds_get_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
actual_length : OUT short_integer;
buffer_length : short_integer;
buffer : string);
PROCEDURE gds_get_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS;
return_length : OUT integer);
PROCEDURE gds_open_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad);
PROCEDURE gds_open_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : short_integer;
bpb : blr);
PROCEDURE gds_prepare_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE gds_prepare_transaction2 (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
msg_length : short_integer;
msg : blr);
PROCEDURE gds_print_status (
user_status : status_vector);
PROCEDURE gds_put_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
length : short_integer;
buffer : string);
PROCEDURE gds_put_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS);
PROCEDURE gds_que_events (
user_status : OUT status_vector;
db_handle : database_handle;
id : quad;
length : short_integer;
events : string;
ast : integer;
arg : quad);
PROCEDURE gds_receive (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE gds_rollback_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE gds_send (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE gds_version (
db_handle : database_handle;
ptr1 : integer;
ptr2 : SYSTEM.ADDRESS);
FUNCTION gds_sqlcode (
user_status : status_vector) RETURN integer;
PROCEDURE gds_start_and_send (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer);
PROCEDURE gds_start_request (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
level : short_integer);
PROCEDURE gds_start_multiple (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : short_integer;
teb : SYSTEM.ADDRESS);
PROCEDURE gds_start_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : short_integer;
db_handle : database_handle;
tpb_length : short_integer;
tpb_arg : tpb);
PROCEDURE gds_unwind_request (
user_status : OUT status_vector;
req_handle : request_handle;
level : short_integer);
--- Dynamic SQL procedures
PROCEDURE gds_close (
user_status : OUT status_vector;
cursor_name : string);
PROCEDURE gds_declare (
user_status : OUT status_vector;
statement_name : string;
cursor_name : string);
PROCEDURE gds_describe (
user_status : OUT status_vector;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE gds_dsql_finish (
db_handle : database_handle);
PROCEDURE gds_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE gds_execute_immediate (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : short_integer;
command : string);
PROCEDURE gds_fetch (
user_status : OUT status_vector;
sqlcode : OUT integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE gds_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE gds_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string;
descriptor : SYSTEM.ADDRESS);
--- PYXIS procedures
PROCEDURE pyxis_compile_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr);
PROCEDURE pyxis_compile_sub_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr);
PROCEDURE pyxis_create_window (
win_handle : OUT window_handle;
name_length : short_integer;
file_name : string;
width : IN OUT short_integer;
height : IN OUT short_integer);
PROCEDURE pyxis_delete_window (
win_handle : IN OUT window_handle);
PROCEDURE pyxis_drive_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS);
PROCEDURE pyxis_fetch (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS);
PROCEDURE pyxis_insert (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS);
PROCEDURE pyxis_load_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : short_integer;
form_name : string);
FUNCTION pyxis_menu (
win_handle : window_handle;
men_handle : menu_handle;
menu_length : short_integer;
menu : blr) RETURN short_integer;
PROCEDURE pyxis_pop_window (
win_handle : window_handle);
PROCEDURE pyxis_reset_form (
user_status : OUT status_vector;
win_handle : window_handle);
PROCEDURE pyxis_drive_menu (
win_handle : IN OUT window_handle;
men_handle : IN OUT menu_handle;
blr_length : short_integer;
blr_source : blr;
title_length : short_integer;
title : string;
terminator : OUT short_integer;
entree_length : OUT short_integer;
entree_text : OUT string;
entree_value : OUT integer);
PROCEDURE pyxis_get_entree (
men_handle : menu_handle;
entree_length : OUT short_integer;
entree_text : OUT string;
entree_value : OUT integer;
entree_end : OUT short_integer);
PROCEDURE pyxis_initialize_menu (
men_handle : IN OUT menu_handle);
PROCEDURE pyxis_put_entree (
men_handle : menu_handle;
entree_length : short_integer;
entree_text : string;
entree_value : integer);
pragma interface (C, gds_attach_database);
pragma interface (C, gds_blob_display);
pragma interface (C, gds_blob_dump);
pragma interface (C, gds_blob_edit);
pragma interface (C, gds_blob_load);
pragma interface (C, gds_cancel_blob);
pragma interface (C, gds_cancel_events);
pragma interface (C, gds_close);
pragma interface (C, gds_close_blob);
pragma interface (C, gds_commit_retaining);
pragma interface (C, gds_commit_transaction);
pragma interface (C, gds_compile_request);
pragma interface (C, gds_compile_request2);
pragma interface (C, gds_create_blob);
pragma interface (C, gds_create_blob2);
pragma interface (C, gds_create_database);
pragma interface (C, gds_ddl);
pragma interface (C, gds_declare);
pragma interface (C, gds_decode_date);
pragma interface (C, gds_describe);
pragma interface (C, gds_detach_database);
pragma interface (C, gds_dsql_finish);
pragma interface (C, gds_encode_date);
pragma interface (C, gds_event_wait);
pragma interface (C, gds_execute);
pragma interface (C, gds_execute_immediate);
pragma interface (C, gds_fetch);
pragma interface (C, gds_get_segment);
pragma interface (C, gds_get_slice);
pragma interface (C, gds_open);
pragma interface (C, gds_open_blob);
pragma interface (C, gds_open_blob2);
pragma interface (C, gds_prepare);
pragma interface (C, gds_prepare_transaction);
pragma interface (C, gds_prepare_transaction2);
pragma interface (C, gds_print_status);
pragma interface (C, gds_put_segment);
pragma interface (C, gds_put_slice);
pragma interface (C, gds_que_events);
pragma interface (C, gds_receive);
pragma interface (C, gds_rollback_transaction);
pragma interface (C, gds_send);
pragma interface (C, gds_sqlcode);
pragma interface (C, gds_start_and_send);
pragma interface (C, gds_start_multiple);
pragma interface (C, gds_start_request);
pragma interface (C, gds_start_transaction);
pragma interface (C, gds_unwind_request);
pragma interface (C, gds_version);
pragma interface (C, pyxis_compile_map);
pragma interface (C, pyxis_compile_sub_map);
pragma interface (C, pyxis_create_window);
pragma interface (C, pyxis_delete_window);
pragma interface (C, pyxis_drive_form);
pragma interface (C, pyxis_drive_menu);
pragma interface (C, pyxis_fetch);
pragma interface (C, pyxis_get_entree);
pragma interface (C, pyxis_initialize_menu);
pragma interface (C, pyxis_insert);
pragma interface (C, pyxis_load_form);
pragma interface (C, pyxis_menu);
pragma interface (C, pyxis_pop_window);
pragma interface (C, pyxis_put_entree);
pragma interface (C, pyxis_reset_form);
pragma import_procedure (gds_attach_database, "gds_$attach_database",
mechanism => (reference, value, reference, reference, value, reference));
pragma import_procedure (gds_blob_display, "blob_$display",
mechanism => (reference, reference, reference, reference, reference));
pragma import_procedure (gds_blob_dump, "blob_$dump",
mechanism => (reference, reference, reference, reference, reference));
pragma import_procedure (gds_blob_edit, "blob_$edit",
mechanism => (reference, reference, reference, reference, reference));
pragma import_procedure (gds_blob_load, "blob_$load",
mechanism => (reference, reference, reference, reference, reference));
pragma import_procedure (gds_cancel_blob, "gds_$cancel_blob",
mechanism => (reference, reference));
pragma import_procedure (gds_cancel_events, "gds_$cancel_events",
mechanism => (reference, reference, reference));
pragma import_procedure (gds_close, "gds_$close",
mechanism => (reference, reference));
pragma import_procedure (gds_close_blob, "gds_$close_blob",
mechanism => (reference, reference));
pragma import_procedure (gds_commit_retaining, "gds_$commit_retaining",
mechanism => (reference, reference));
pragma import_procedure (gds_commit_transaction, "gds_$commit_transaction",
mechanism => (reference, reference));
pragma import_procedure (gds_compile_request, "gds_$compile_request",
mechanism => (reference, reference, reference, value, reference));
pragma import_procedure (gds_compile_request2, "gds_$compile_request2",
mechanism => (reference, reference, reference, value, reference));
pragma import_procedure (gds_create_blob, "gds_$create_blob",
mechanism => (reference, reference, reference, reference, reference));
pragma import_procedure (gds_create_blob2, "gds_$create_blob2",
mechanism => (reference, reference, reference, reference, reference, value, reference));
pragma import_procedure (gds_create_database, "gds_$create_database",
mechanism => (reference, value, reference, reference, value, reference, value));
pragma import_procedure (gds_ddl, "gds_$ddl",
mechanism => (reference, reference, reference, value, value));
pragma import_procedure (gds_declare, "gds_$declare",
mechanism => (reference, reference, reference));
pragma import_procedure (gds_decode_date, "gds_$decode_date",
mechanism => (reference, reference));
pragma import_procedure (gds_describe, "gds_$describe",
mechanism => (reference, reference, value));
pragma import_procedure (gds_detach_database, "gds_$detach_database",
mechanism => (reference, reference));
pragma import_procedure (gds_dsql_finish, "gds_$dsql_finish",
mechanism => (reference));
pragma import_procedure (gds_encode_date, "gds_$encode_date",
mechanism => (reference, reference));
pragma import_procedure (gds_event_wait, "gds_$event_wait",
mechanism => (reference, reference, value, reference, reference));
pragma import_procedure (gds_execute, "gds_$execute",
mechanism => (reference, reference, reference, value));
pragma import_procedure (gds_execute_immediate, "gds_$execute_immediate",
mechanism => (reference, reference, reference, reference, reference));
pragma import_procedure (gds_fetch, "gds_$fetch_a",
mechanism => (reference, reference, reference, value));
pragma import_procedure (gds_get_segment, "gds_$get_segment",
mechanism => (reference, reference, reference, value, reference));
pragma import_procedure (gds_get_slice, "gds_$get_slice",
mechanism => (reference, reference, reference, reference, value, reference,
value, reference, value, value, reference));
pragma import_procedure (gds_open, "gds_$open",
mechanism => (reference, reference, reference, value));
pragma import_procedure (gds_open_blob, "gds_$open_blob",
mechanism => (reference, reference, reference, reference, reference));
pragma import_procedure (gds_open_blob2, "gds_$open_blob2",
mechanism => (reference, reference, reference, reference, reference, value, reference));
pragma import_procedure (gds_prepare, "gds_$prepare",
mechanism => (reference, reference, reference, reference, reference, reference, value));
pragma import_procedure (gds_prepare_transaction, "gds_$prepare_transaction",
mechanism => (reference, reference));
pragma import_procedure (gds_prepare_transaction2, "gds_$prepare_transaction2",
mechanism => (reference, reference, value, reference));
pragma import_procedure (gds_print_status, "gds_$print_status",
mechanism => (reference));
pragma import_procedure (gds_put_segment, "gds_$put_segment",
mechanism => (reference, reference, value, reference));
pragma import_procedure (gds_put_slice, "gds_$put_slice",
mechanism => (reference, reference, reference, reference, value,
reference, value, reference, value, value));
pragma import_procedure (gds_que_events, "gds_$que_events",
mechanism => (reference, reference, reference, value, reference,
value, reference));
pragma import_procedure (gds_receive, "gds_$receive",
mechanism => (reference, reference, value, value, value, value));
pragma import_procedure (gds_rollback_transaction, "gds_$rollback_transaction",
mechanism => (reference, reference));
pragma import_function (gds_sqlcode, "gds_$sqlcode",
mechanism => (reference));
pragma import_procedure (gds_send, "gds_$send",
mechanism => (reference, reference, value, value, value, value));
pragma import_procedure (gds_start_and_send, "gds_$start_and_send",
mechanism => (reference, reference, reference, value, value, value, value));
pragma import_procedure (gds_start_multiple, "gds_$start_multiple",
mechanism => (reference, reference, value, value));
pragma import_procedure (gds_start_request, "gds_$start_request",
mechanism => (reference, reference, reference, value));
pragma import_procedure (gds_start_transaction, "gds_$start_transaction",
mechanism => (reference, reference, value, reference, value, reference));
pragma import_procedure (gds_unwind_request, "gds_$unwind_request",
mechanism => (reference, reference, value));
pragma import_procedure (gds_version, "gds_$version",
mechanism => (reference, value, reference));
pragma import_procedure (pyxis_compile_map, "pyxis_$compile_map",
mechanism => (reference, reference, reference, reference, reference));
pragma import_procedure (pyxis_compile_sub_map, "pyxis_$compile_sub_map",
mechanism => (reference, reference, reference, reference, reference));
pragma import_procedure (pyxis_create_window, "pyxis_$create_window",
mechanism => (reference, reference, reference, reference, reference));
pragma import_procedure (pyxis_delete_window, "pyxis_$delete_window",
mechanism => (reference));
pragma import_procedure (pyxis_drive_form, "pyxis_$drive_form",
mechanism => (reference, reference, reference, reference, reference, value, value));
pragma import_procedure (pyxis_drive_menu, "pyxis_$drive_menu",
mechanism => (reference, reference, reference, reference, reference, reference,
reference, reference, reference, reference));
pragma import_procedure (pyxis_fetch, "pyxis_$fetch",
mechanism => (reference, reference, reference, reference, value));
pragma import_procedure (pyxis_get_entree, "pyxis_$get_entree",
mechanism => (reference, reference, reference, reference, reference));
pragma import_procedure (pyxis_initialize_menu, "pyxis_$initialize_menu",
mechanism => (reference));
pragma import_procedure (pyxis_insert, "pyxis_$insert",
mechanism => (reference, reference, reference, reference, value));
pragma import_procedure (pyxis_load_form, "pyxis_$load_form",
mechanism => (reference, reference, reference, reference, reference, reference));
pragma import_function (pyxis_menu, "pyxis_$menu",
mechanism => (reference, reference, reference, reference));
pragma import_procedure (pyxis_pop_window, "pyxis_$pop_window",
mechanism => (reference));
pragma import_procedure (pyxis_put_entree, "pyxis_$put_entree",
mechanism => (reference, reference, reference, reference));
pragma import_procedure (pyxis_reset_form, "pyxis_$reset_form",
mechanism => (reference, reference));
---
--- Interface routines that return status vector
---
PROCEDURE attach_database (
user_status : OUT status_vector;
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb) IS
BEGIN
gds_attach_database (
user_status,
file_length,
file_name,
db_handle,
dpb_length,
dpb_arg);
END attach_database;
PROCEDURE blob_display (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : short_integer) IS
BEGIN
gds_blob_display (
blob_id,
db_handle,
tra_handle,
field_name,
name_length);
END blob_display;
PROCEDURE blob_dump (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : short_integer) IS
BEGIN
gds_blob_dump (
blob_id,
db_handle,
tra_handle,
file_name,
name_length);
END blob_dump;
PROCEDURE blob_edit (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : short_integer) IS
BEGIN
gds_blob_edit (
blob_id,
db_handle,
tra_handle,
field_name,
name_length);
END blob_edit;
PROCEDURE blob_load (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : short_integer) IS
BEGIN
gds_blob_load (
blob_id,
db_handle,
tra_handle,
file_name,
name_length);
END blob_load;
PROCEDURE cancel_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle) IS
BEGIN
gds_cancel_blob (
user_status,
blb_handle);
END cancel_blob;
PROCEDURE cancel_events (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle;
id : integer) IS
BEGIN
gds_cancel_events (
user_status,
blb_handle,
id);
END cancel_events;
PROCEDURE close_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle) IS
BEGIN
gds_close_blob (
user_status,
blb_handle);
END close_blob;
PROCEDURE commit_retaining (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_commit_retaining (
user_status,
trans_handle);
END commit_retaining;
PROCEDURE commit_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_commit_transaction (
user_status,
trans_handle);
END commit_transaction;
PROCEDURE compile_request (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr) IS
BEGIN
gds_compile_request (
user_status,
db_handle,
req_handle,
blr_length,
blr_arg);
END compile_request;
PROCEDURE compile_request2 (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr) IS
BEGIN
gds_compile_request2 (
user_status,
db_handle,
req_handle,
blr_length,
blr_arg);
END compile_request2;
PROCEDURE create_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad) IS
BEGIN
gds_create_blob (
user_status,
db_handle,
trans_handle,
blb_handle,
blob_id);
END create_blob;
PROCEDURE create_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : short_integer;
bpb : blr) IS
BEGIN
gds_create_blob2 (
user_status,
db_handle,
trans_handle,
blb_handle,
blob_id,
bpb_length,
bpb);
END create_blob2;
PROCEDURE create_database (
user_status : OUT status_vector;
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb;
db_type : short_integer) IS
BEGIN
gds_create_database (
user_status,
file_length,
file_name,
db_handle,
dpb_length,
dpb_arg,
db_type);
END create_database;
PROCEDURE ddl (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : short_integer;
msg : SYSTEM.ADDRESS) IS
BEGIN
gds_ddl (
user_status,
db_handle,
trans_handle,
msg_length,
msg);
END ddl;
PROCEDURE decode_date (
date : quad;
times : IN OUT gds_tm) IS
BEGIN
gds_decode_date (
date,
times);
END decode_date;
PROCEDURE detach_database (
user_status : OUT status_vector;
db_handle : IN OUT database_handle) IS
BEGIN
gds_detach_database (
user_status,
db_handle);
END detach_database;
PROCEDURE encode_date (
times : gds_tm;
date : IN OUT quad) IS
BEGIN
gds_encode_date (
times,
date);
END encode_date;
PROCEDURE event_wait (
user_status : OUT status_vector;
db_handle : database_handle;
length : short_integer;
events : string;
buffer : string) IS
BEGIN
gds_event_wait (
user_status,
db_handle,
length,
events,
buffer);
END event_wait;
PROCEDURE get_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
actual_length : OUT short_integer;
buffer_length : short_integer;
buffer : string) IS
BEGIN
gds_get_segment (
user_status,
blb_handle,
actual_length,
buffer_length,
buffer);
END get_segment;
PROCEDURE get_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS;
return_length : OUT integer) IS
BEGIN
gds_get_slice (
user_status,
db_handle,
trans_handle,
blob_id,
sdl_length,
sdl,
param_length,
param,
slice_length,
slice,
return_length);
END get_slice;
PROCEDURE open_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad) IS
BEGIN
gds_open_blob (
user_status,
db_handle,
trans_handle,
blb_handle,
blob_id);
END open_blob;
PROCEDURE open_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : short_integer;
bpb : blr) IS
BEGIN
gds_open_blob2 (
user_status,
db_handle,
trans_handle,
blb_handle,
blob_id,
bpb_length,
bpb);
END open_blob2;
PROCEDURE prepare_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_prepare_transaction (
user_status,
trans_handle);
END prepare_transaction;
PROCEDURE prepare_transaction2 (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
msg_length : short_integer;
msg : blr) IS
BEGIN
gds_prepare_transaction2 (
user_status,
trans_handle,
msg_length,
msg);
END prepare_transaction2;
PROCEDURE put_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
length : short_integer;
buffer : string) IS
BEGIN
gds_put_segment (
user_status,
blb_handle,
length,
buffer);
END put_segment;
PROCEDURE put_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS) IS
BEGIN
gds_put_slice (
user_status,
db_handle,
trans_handle,
blob_id,
sdl_length,
sdl,
param_length,
param,
slice_length,
slice);
END put_slice;
PROCEDURE print_status (
user_status : status_vector) IS
BEGIN
gds_print_status (user_status);
end print_status;
PROCEDURE que_events (
user_status : OUT status_vector;
db_handle : database_handle;
id : quad;
length : short_integer;
events : string;
ast : integer;
arg : quad) IS
BEGIN
gds_que_events (
user_status,
db_handle,
id,
length,
events,
ast,
arg);
END que_events;
PROCEDURE receive (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
BEGIN
gds_receive (
user_status,
req_handle,
msg_type,
msg_length,
msg,
level);
END receive;
PROCEDURE rollback_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_rollback_transaction (
user_status,
trans_handle);
END rollback_transaction;
PROCEDURE print_version (
db_handle: database_handle) IS
ptr : integer := 0;
BEGIN
gds_version (
db_handle,
0,
ptr'address);
END print_version;
FUNCTION sqlcode (
user_status : status_vector) RETURN integer IS
BEGIN
return gds_sqlcode (user_status);
end sqlcode;
PROCEDURE send (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
BEGIN
gds_send (
user_status,
req_handle,
msg_type,
msg_length,
msg,
level);
END send;
PROCEDURE start_request (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
level : short_integer) IS
BEGIN
gds_start_request (
user_status,
req_handle,
trans_handle,
level);
END start_request;
PROCEDURE start_and_send (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
BEGIN
gds_start_and_send (
user_status,
req_handle,
trans_handle,
msg_type,
msg_length,
msg,
level);
END start_and_send;
PROCEDURE start_multiple (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : short_integer;
teb : SYSTEM.ADDRESS) IS
BEGIN
gds_start_multiple (
user_status,
trans_handle,
count,
teb);
END start_multiple;
PROCEDURE start_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : short_integer;
db_handle : database_handle;
tpb_length : short_integer;
tpb_arg : tpb) IS
BEGIN
gds_start_transaction (
user_status,
trans_handle,
count,
db_handle,
tpb_length,
tpb_arg);
END start_transaction;
PROCEDURE unwind_request (
user_status : OUT status_vector;
req_handle : request_handle;
level : short_integer) IS
BEGIN
gds_unwind_request (
user_status,
req_handle,
level);
END unwind_request;
--- Dynamic SQL procedures
PROCEDURE dsql_close (
user_status : OUT status_vector;
cursor_name : string) IS
BEGIN
gds_close (
user_status,
cursor_name);
END dsql_close;
PROCEDURE dsql_declare (
user_status : OUT status_vector;
statement_name : string;
cursor_name : string) IS
BEGIN
gds_declare (
user_status,
statement_name,
cursor_name);
END dsql_declare;
PROCEDURE dsql_describe (
user_status : OUT status_vector;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_describe (
user_status,
statement_name,
descriptor);
END dsql_describe;
PROCEDURE dsql_finish (
db_handle : database_handle) IS
BEGIN
gds_dsql_finish (
db_handle);
END dsql_finish;
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_execute (
user_status,
trans_handle,
statement_name,
descriptor);
END dsql_execute;
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string) IS
BEGIN
gds_execute (
user_status,
trans_handle,
statement_name,
null_blob'address);
END dsql_execute;
PROCEDURE dsql_execute_immediate (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : short_integer;
command : string) IS
BEGIN
gds_execute_immediate (
user_status,
db_handle,
trans_handle,
command_length,
command);
END dsql_execute_immediate;
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_fetch (
user_status,
sqlcode,
cursor_name,
descriptor);
END dsql_fetch;
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT integer;
cursor_name : string) IS
BEGIN
gds_fetch (
user_status,
sqlcode,
cursor_name,
null_blob'address);
END dsql_fetch;
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_open (
user_status,
trans_handle,
cursor_name,
descriptor);
END dsql_open;
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string) IS
BEGIN
gds_open (
user_status,
trans_handle,
cursor_name,
null_blob'address);
END dsql_open;
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_prepare (
user_status,
db_handle,
trans_handle,
statement_name,
command_length,
command,
descriptor);
END dsql_prepare;
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string) IS
BEGIN
gds_prepare (
user_status,
db_handle,
trans_handle,
statement_name,
command_length,
command,
null_blob'address);
END dsql_prepare;
--- PYXIS procedures
PROCEDURE compile_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr) IS
BEGIN
pyxis_compile_map (
user_status,
frm_handle,
mp_handle,
map_length,
map);
END compile_map;
PROCEDURE compile_sub_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr) IS
BEGIN
pyxis_compile_sub_map (
user_status,
frm_handle,
mp_handle,
map_length,
map);
END compile_sub_map;
PROCEDURE create_window (
win_handle : OUT window_handle;
name_length : short_integer;
file_name : string;
width : IN OUT short_integer;
height : IN OUT short_integer) IS
BEGIN
pyxis_create_window (
win_handle,
name_length,
file_name,
width,
height);
END create_window;
PROCEDURE delete_window (
win_handle : IN OUT window_handle) IS
BEGIN
pyxis_delete_window (
win_handle);
END delete_window;
PROCEDURE drive_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS) IS
BEGIN
pyxis_drive_form (
user_status,
db_handle,
trans_handle,
win_handle,
mp_handle,
input,
output);
END drive_form;
PROCEDURE fetch_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS) IS
BEGIN
pyxis_fetch (
user_status,
db_handle,
trans_handle,
mp_handle,
output);
END fetch_sub_form;
PROCEDURE insert_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS) IS
BEGIN
pyxis_insert (
user_status,
db_handle,
trans_handle,
mp_handle,
input);
END insert_sub_form;
PROCEDURE load_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : short_integer;
form_name : string) IS
BEGIN
pyxis_load_form (
user_status,
db_handle,
trans_handle,
frm_handle,
name_length,
form_name);
END load_form;
FUNCTION menu (
win_handle : window_handle;
men_handle : menu_handle;
menu_length : short_integer;
menu : blr) RETURN short_integer IS
BEGIN
return pyxis_menu (
win_handle,
men_handle,
menu_length,
menu);
END menu;
PROCEDURE pop_window (
win_handle : window_handle) IS
BEGIN
pyxis_pop_window (
win_handle);
END pop_window;
PROCEDURE reset_form (
user_status : OUT status_vector;
win_handle : window_handle) IS
BEGIN
pyxis_reset_form (
user_status,
win_handle);
END reset_form;
PROCEDURE drive_menu (
win_handle : IN OUT window_handle;
men_handle : IN OUT menu_handle;
blr_length : short_integer;
blr_source : blr;
title_length : short_integer;
title : string;
terminator : OUT short_integer;
entree_length : OUT short_integer;
entree_text : OUT string;
entree_value : OUT integer) IS
BEGIN
pyxis_drive_menu (
win_handle,
men_handle,
blr_length,
blr_source,
title_length,
title,
terminator,
entree_length,
entree_text,
entree_value);
END drive_menu;
PROCEDURE get_entree (
men_handle : menu_handle;
entree_length : OUT short_integer;
entree_text : OUT string;
entree_value : OUT integer;
entree_end : OUT short_integer) IS
BEGIN
pyxis_get_entree (
men_handle,
entree_length,
entree_text,
entree_value,
entree_end);
END get_entree;
PROCEDURE initialize_menu (
men_handle : IN OUT menu_handle) IS
BEGIN
pyxis_initialize_menu (
men_handle);
END initialize_menu;
PROCEDURE put_entree (
men_handle : menu_handle;
entree_length : short_integer;
entree_text : string;
entree_value : integer) IS
BEGIN
pyxis_put_entree (
men_handle,
entree_length,
entree_text,
entree_value);
END put_entree;
---
--- Internal routines
---
PROCEDURE error (
user_status : status_vector) IS
BEGIN
gds_print_status (user_status);
RAISE database_error;
END;
---
--- Routines sans explicit status vector
---
PROCEDURE attach_database (
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb) IS
user_status : status_vector;
BEGIN
gds_attach_database (
user_status,
file_length,
file_name,
db_handle,
dpb_length,
dpb_arg);
if user_status (1) /= 0 then error (user_status); end if;
END attach_database;
PROCEDURE cancel_blob (
blb_handle : IN OUT blob_handle) IS
user_status : status_vector;
BEGIN
gds_cancel_blob (
user_status,
blb_handle);
if user_status (1) /= 0 then error (user_status); end if;
END cancel_blob;
PROCEDURE cancel_events (
blb_handle : IN OUT blob_handle;
id : integer) IS
user_status : status_vector;
BEGIN
gds_cancel_events (
user_status,
blb_handle,
id);
if user_status (1) /= 0 then error (user_status); end if;
END cancel_events;
PROCEDURE close_blob (
blb_handle : IN OUT blob_handle) IS
user_status : status_vector;
BEGIN
gds_close_blob (
user_status,
blb_handle);
if user_status (1) /= 0 then error (user_status); end if;
END close_blob;
PROCEDURE commit_retaining (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_commit_retaining (
user_status,
trans_handle);
if user_status (1) /= 0 then error (user_status); end if;
END commit_retaining;
PROCEDURE commit_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_commit_transaction (
user_status,
trans_handle);
if user_status (1) /= 0 then error (user_status); end if;
END commit_transaction;
PROCEDURE compile_request (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr) IS
user_status : status_vector;
BEGIN
gds_compile_request (
user_status,
db_handle,
req_handle,
blr_length,
blr_arg);
if user_status (1) /= 0 then error (user_status); end if;
END compile_request;
PROCEDURE compile_request2 (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : short_integer;
blr_arg : blr) IS
user_status : status_vector;
BEGIN
gds_compile_request2 (
user_status,
db_handle,
req_handle,
blr_length,
blr_arg);
if user_status (1) /= 0 then error (user_status); end if;
END compile_request2;
PROCEDURE create_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad) IS
user_status : status_vector;
BEGIN
gds_create_blob (
user_status,
db_handle,
trans_handle,
blb_handle,
blob_id);
if user_status (1) /= 0 then error (user_status); end if;
END create_blob;
PROCEDURE create_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : short_integer;
bpb : blr) IS
user_status : status_vector;
BEGIN
gds_create_blob2 (
user_status,
db_handle,
trans_handle,
blb_handle,
blob_id,
bpb_length,
bpb);
if user_status (1) /= 0 then error (user_status); end if;
END create_blob2;
PROCEDURE create_database (
file_length : short_integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : short_integer;
dpb_arg : dpb;
db_type : short_integer) IS
user_status : status_vector;
BEGIN
gds_create_database (
user_status,
file_length,
file_name,
db_handle,
dpb_length,
dpb_arg,
db_type);
if user_status (1) /= 0 then error (user_status); end if;
END create_database;
PROCEDURE ddl (
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : short_integer;
msg : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_ddl (
user_status,
db_handle,
trans_handle,
msg_length,
msg);
if user_status (1) /= 0 then error (user_status); end if;
END ddl;
PROCEDURE detach_database (
db_handle : IN OUT database_handle) IS
user_status : status_vector;
BEGIN
gds_detach_database (
user_status,
db_handle);
if user_status (1) /= 0 then error (user_status); end if;
END detach_database;
PROCEDURE event_wait (
db_handle : database_handle;
length : short_integer;
events : string;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_event_wait (
user_status,
db_handle,
length,
events,
buffer);
END event_wait;
PROCEDURE get_segment (
completion_code : OUT integer;
blb_handle : blob_handle;
actual_length : OUT short_integer;
buffer_length : short_integer;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_get_segment (
user_status,
blb_handle,
actual_length,
buffer_length,
buffer);
if user_status (1) /= 0 and user_status (1) /= gds_segment and
user_status (1) /= gds_segstr_eof then
error (user_status);
end if;
completion_code := user_status(1);
END get_segment;
PROCEDURE get_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS;
return_length : OUT integer) IS
user_status : status_vector;
BEGIN
gds_get_slice (
user_status,
db_handle,
trans_handle,
blob_id,
sdl_length,
sdl,
param_length,
param,
slice_length,
slice,
return_length);
END get_slice;
PROCEDURE open_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad) IS
user_status : status_vector;
BEGIN
gds_open_blob (
user_status,
db_handle,
trans_handle,
blb_handle,
blob_id);
if user_status (1) /= 0 then error (user_status); end if;
END open_blob;
PROCEDURE open_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : short_integer;
bpb : blr) IS
user_status : status_vector;
BEGIN
gds_open_blob2 (
user_status,
db_handle,
trans_handle,
blb_handle,
blob_id,
bpb_length,
bpb);
if user_status (1) /= 0 then error (user_status); end if;
END open_blob2;
PROCEDURE prepare_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_prepare_transaction (
user_status,
trans_handle);
if user_status (1) /= 0 then error (user_status); end if;
END prepare_transaction;
PROCEDURE prepare_transaction2 (
trans_handle : IN OUT transaction_handle;
msg_length : short_integer;
msg : blr) IS
user_status : status_vector;
BEGIN
gds_prepare_transaction2 (
user_status,
trans_handle,
msg_length,
msg);
END prepare_transaction2;
PROCEDURE put_segment (
blb_handle : blob_handle;
length : short_integer;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_put_segment (
user_status,
blb_handle,
length,
buffer);
if user_status (1) /= 0 then error (user_status); end if;
END put_segment;
PROCEDURE put_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : short_integer;
sdl : blr;
param_length : short_integer;
param : string;
slice_length : integer;
slice : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_put_slice (
user_status,
db_handle,
trans_handle,
blob_id,
sdl_length,
sdl,
param_length,
param,
slice_length,
slice);
END put_slice;
PROCEDURE que_events (
db_handle : database_handle;
id : quad;
length : short_integer;
events : string;
ast : integer;
arg : quad) IS
user_status : status_vector;
BEGIN
gds_que_events (
user_status,
db_handle,
id,
length,
events,
ast,
arg);
END que_events;
PROCEDURE receive (
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
user_status : status_vector;
BEGIN
gds_receive (
user_status,
req_handle,
msg_type,
msg_length,
msg,
level);
if user_status (1) /= 0 then error (user_status); end if;
END receive;
PROCEDURE rollback_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_rollback_transaction (
user_status,
trans_handle);
if user_status (1) /= 0 then error (user_status); end if;
END rollback_transaction;
PROCEDURE send (
req_handle : request_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
user_status : status_vector;
BEGIN
gds_send (
user_status,
req_handle,
msg_type,
msg_length,
msg,
level);
if user_status (1) /= 0 then error (user_status); end if;
END send;
PROCEDURE start_request (
req_handle : request_handle;
trans_handle : transaction_handle;
level : short_integer) IS
user_status : status_vector;
BEGIN
gds_start_request (
user_status,
req_handle,
trans_handle,
level);
if user_status (1) /= 0 then error (user_status); end if;
END start_request;
PROCEDURE start_and_send (
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : short_integer;
msg_length : short_integer;
msg : SYSTEM.ADDRESS;
level : short_integer) IS
user_status : status_vector;
BEGIN
gds_start_and_send (
user_status,
req_handle,
trans_handle,
msg_type,
msg_length,
msg,
level);
if user_status (1) /= 0 then error (user_status); end if;
END start_and_send;
PROCEDURE start_multiple (
trans_handle : IN OUT transaction_handle;
count : short_integer;
teb : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_start_multiple (
user_status,
trans_handle,
count,
teb);
if user_status (1) /= 0 then error (user_status); end if;
END start_multiple;
PROCEDURE start_transaction (
trans_handle : IN OUT transaction_handle;
count : short_integer;
db_handle : database_handle;
tpb_length : short_integer;
tpb_arg : tpb) IS
user_status : status_vector;
BEGIN
gds_start_transaction (
user_status,
trans_handle,
count,
db_handle,
tpb_length,
tpb_arg);
if user_status (1) /= 0 then error (user_status); end if;
END start_transaction;
PROCEDURE unwind_request (
req_handle : request_handle;
level : short_integer) IS
user_status : status_vector;
BEGIN
gds_unwind_request (
user_status,
req_handle,
level);
if user_status (1) /= 0 then error (user_status); end if;
END unwind_request;
--- Dynamic SQL procedures
PROCEDURE dsql_close (
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_close (
user_status,
cursor_name);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_close;
PROCEDURE dsql_declare (
statement_name : string;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_declare (
user_status,
statement_name,
cursor_name);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_declare;
PROCEDURE dsql_describe (
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_describe (
user_status,
statement_name,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_describe;
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_execute (
user_status,
trans_handle,
statement_name,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute;
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string) IS
user_status : status_vector;
BEGIN
gds_execute (
user_status,
trans_handle,
statement_name,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute;
PROCEDURE dsql_execute_immediate (
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : short_integer;
command : string) IS
user_status : status_vector;
BEGIN
gds_execute_immediate (
user_status,
db_handle,
trans_handle,
command_length,
command);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute_immediate;
PROCEDURE dsql_fetch (
sqlcode : OUT integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_fetch (
user_status,
sqlcode,
cursor_name,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_fetch;
PROCEDURE dsql_fetch (
sqlcode : OUT integer;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_fetch (
user_status,
sqlcode,
cursor_name,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_fetch;
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_open (
user_status,
trans_handle,
cursor_name,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_open;
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_open (
user_status,
trans_handle,
cursor_name,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_open;
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_prepare (
user_status,
db_handle,
trans_handle,
statement_name,
command_length,
command,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_prepare;
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : short_integer;
command : string) IS
user_status : status_vector;
BEGIN
gds_prepare (
user_status,
db_handle,
trans_handle,
statement_name,
command_length,
command,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_prepare;
--- PYXIS procedures
PROCEDURE compile_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr) IS
user_status : status_vector;
BEGIN
pyxis_compile_map (
user_status,
frm_handle,
mp_handle,
map_length,
map);
--- if user_status (1) /= 0 then error (user_status); end if;
END compile_map;
PROCEDURE compile_sub_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : short_integer;
map : blr) IS
user_status : status_vector;
BEGIN
pyxis_compile_sub_map (
user_status,
frm_handle,
mp_handle,
map_length,
map);
--- if user_status (1) /= 0 then error (user_status); end if;
END compile_sub_map;
PROCEDURE drive_form (
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_drive_form (
user_status,
db_handle,
trans_handle,
win_handle,
mp_handle,
input,
output);
--- if user_status (1) /= 0 then error (user_status); end if;
END drive_form;
PROCEDURE fetch_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_fetch (
user_status,
db_handle,
trans_handle,
mp_handle,
output);
--- if user_status (1) /= 0 then error (user_status); end if;
END fetch_sub_form;
PROCEDURE insert_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_insert (
user_status,
db_handle,
trans_handle,
mp_handle,
input);
--- if user_status (1) /= 0 then error (user_status); end if;
END insert_sub_form;
PROCEDURE load_form (
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : short_integer;
form_name : string) IS
user_status : status_vector;
BEGIN
pyxis_load_form (
user_status,
db_handle,
trans_handle,
frm_handle,
name_length,
form_name);
if user_status (1) /= 0 then error (user_status); end if;
END load_form;
PROCEDURE reset_form (
win_handle : window_handle) IS
user_status : status_vector;
BEGIN
pyxis_reset_form (
user_status,
win_handle);
--- if user_status (1) /= 0 then error (user_status); end if;
END reset_form;
END interbase;');
INSERT INTO TEMPLATES (LANGUAGE, "FILE", TEMPLATE) VALUES ('SUN_ADA', 'interbase_sun.a',
'WITH SYSTEM;
PACKAGE interbase IS
TYPE status_vector IS ARRAY (0..19) of long_integer;
TYPE quad IS ARRAY (0..1) of long_integer;
SUBTYPE chars is string;
TYPE blr IS ARRAY (integer RANGE <>) of long_integer;
TYPE dpb IS ARRAY (integer RANGE <>) of long_integer;
TYPE tpb IS ARRAY (integer RANGE <>) of long_integer;
SUBTYPE database_handle IS long_integer;
SUBTYPE request_handle IS long_integer;
SUBTYPE transaction_handle IS long_integer;
SUBTYPE blob_handle IS long_integer;
SUBTYPE form_handle IS long_integer;
SUBTYPE map_handle IS long_integer;
SUBTYPE window_handle IS long_integer;
SUBTYPE menu_handle IS long_integer;
TYPE gds_teb_t IS RECORD
dbb_ptr : SYSTEM.ADDRESS;
tpb_len : long_integer;
tpb_ptr : SYSTEM.ADDRESS;
END RECORD;
TYPE gds_tm IS RECORD
tm_sec : integer;
tm_min : integer;
tm_hour : integer;
tm_mday : integer;
tm_mon : integer;
tm_year : integer;
tm_wday : integer;
tm_yday : integer;
tm_isdst : integer;
END RECORD;
TYPE sqlvar is RECORD
sqltype : integer;
sqllen : integer;
sqldata : SYSTEM.ADDRESS;
sqlind : SYSTEM.ADDRESS;
sqlname_length : integer;
sqlname : chars (1..30);
END RECORD;
FOR sqlvar use record at mod 2;
sqltype at 0 range 0..15;
sqllen at 2 range 0..15;
sqldata at 4 range 0..31;
sqlind at 8 range 0..31;
sqlname_length at 12 range 0..15;
sqlname at 14 range 0..239;
END RECORD;
TYPE sqlvar_array IS ARRAY (integer range <>) of sqlvar;
--- Constants
gds_true : CONSTANT integer := 1;
gds_false : CONSTANT integer := 0;
--- BLR
$ SET SANS_DOLLAR
$ FORMAT BLR_FORMAT " %s : CONSTANT integer := %d;\n
$ FORMAT DYN_FORMAT " %-32s: CONSTANT integer := %d;\n
$ FORMAT SDL_FORMAT " %-32s: CONSTANT integer := %d;\n
$ FORMAT ERROR_FORMAT "%-25s: CONSTANT long_integer := %d;\n
$ FORMAT PB_FORMAT " %-29s: CONSTANT integer := %d;\n
$ FORMAT PYXIS_FORMAT "%-29s: CONSTANT integer := %d;\n
$ FORMAT OPT_FORMAT "%-32s: CONSTANT integer := %d;\n
$ FORMAT SQL_FORMAT "%-16s: CONSTANT integer := %d;\n
$ SYMBOLS BLR DTYPE BLR_FORMAT
$ SYMBOLS BLR MECH BYTE BLR_FORMAT
$ SYMBOLS BLR STATEMENTS BLR_FORMAT
$ SYMBOLS BLR VALUES BLR_FORMAT
$ SYMBOLS BLR BOOLEANS BLR_FORMAT
$ SYMBOLS BLR RSE BLR_FORMAT
$ SYMBOLS BLR JOIN BLR_FORMAT
$ SYMBOLS BLR AGGREGATE BLR_FORMAT
$ SYMBOLS BLR NEW BLR_FORMAT
--- Dynamic Data Definition Language operators
--- Version number
$ SYMBOLS DYN MECH BYTE DYN_FORMAT
--- Operations (may be nested)
$ SYMBOLS DYN OPERATIONS BYTE DYN_FORMAT
--- View specific stuff
$ SYMBOLS DYN VIEW BYTE DYN_FORMAT
--- Generic attributes
$ SYMBOLS DYN GENERIC BYTE DYN_FORMAT
--- Relation specific attributes
$ SYMBOLS DYN RELATION BYTE DYN_FORMAT
--- Global field specific attributes
$ SYMBOLS DYN GLOBAL BYTE DYN_FORMAT
--- Local field specific attributes
$ SYMBOLS DYN FIELD BYTE DYN_FORMAT
--- Index specific attributes
$ SYMBOLS DYN INDEX BYTE DYN_FORMAT
--- Trigger specific attributes
$ SYMBOLS DYN TRIGGER BYTE DYN_FORMAT
--- Security Class specific attributes
$ SYMBOLS DYN SECURITY BYTE DYN_FORMAT
--- Dimension attributes
$ SYMBOLS DYN ARRAY BYTE DYN_FORMAT
--- File specific attributes
$ SYMBOLS DYN FILES DYN_FORMAT
--- Function specific attributes
$ SYMBOLS DYN FUNCTIONS DYN_FORMAT
--- Generator specific attributes
$ SYMBOLS DYN GENERATOR DYN_FORMAT
--- Array slice description language (SDL)
$ SYMBOLS SDL SDL BYTE SDL_FORMAT
--- Database parameter block stuff
$ SYMBOLS DPB ITEMS PB_FORMAT
$ SYMBOLS DPB BITS PB_FORMAT
--- Transaction parameter block stuff
$ SYMBOLS TPB ITEMS PB_FORMAT
--- Blob parameter block stuff
$ SYMBOLS BPB ITEMS PB_FORMAT
--- Common, structural codes
$ SYMBOLS INFO MECH PB_FORMAT
--- Database information items
$ SYMBOLS INFO DB PB_FORMAT
--- Request information items
$ SYMBOLS INFO REQUEST PB_FORMAT
--- Blob information items
$ SYMBOLS INFO BLOB PB_FORMAT
--- Transaction information items
$ SYMBOLS INFO TRANSACTION PB_FORMAT
--- Error codes
$ SYMBOLS ERROR MECH ERROR_FORMAT
$ ERROR MAJOR ERROR_FORMAT
--- Minor codes subject to change
$ ERROR MINOR ERROR_FORMAT
--- Dynamic SQL datatypes
$ SYMBOLS SQL DTYPE SQL_FORMAT
--- Forms Package definitions
--- Map definition block definitions
$ SYMBOLS PYXIS MAP BYTE PYXIS_FORMAT
--- Field option flags for display options
$ SYMBOLS PYXIS DISPLAY OPT_FORMAT
--- Field option values following display
$ SYMBOLS PYXIS VALUE OPT_FORMAT
--- Pseudo key definitions
$ SYMBOLS PYXIS KEY OPT_FORMAT
--- Menu definition stuff
$ SYMBOLS PYXIS MENU SIGNED PYXIS_FORMAT blr_text : CONSTANT integer := 14;
database_error : EXCEPTION;
null_blob : CONSTANT quad := (0, 0);
null_tpb : CONSTANT tpb (1..2) := (0, 0);
null_dpb : CONSTANT dpb (1..2) := (0, 0);
PROCEDURE attach_database (
user_status : OUT status_vector;
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb);
PROCEDURE blob_display (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : integer);
PROCEDURE blob_dump (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : integer);
PROCEDURE blob_edit (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : integer);
PROCEDURE blob_load (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : integer);
PROCEDURE cancel_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE cancel_events (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE close_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle);
PROCEDURE commit_retaining (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE commit_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE compile_request (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr);
PROCEDURE compile_request2 (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr);
PROCEDURE create_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad);
PROCEDURE create_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : integer;
bpb : blr);
PROCEDURE create_database (
user_status : OUT status_vector;
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb;
db_type : integer);
PROCEDURE detach_database (
user_status : OUT status_vector;
db_handle : IN OUT database_handle);
PROCEDURE ddl (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : integer;
msg : blr);
PROCEDURE encode_date (
times : gds_tm;
date : IN OUT quad);
PROCEDURE decode_date (
date : quad;
times : IN OUT gds_tm);
PROCEDURE event_wait (
user_status : OUT status_vector;
db_handle : database_handle;
length : integer;
events : string;
buffer : string);
PROCEDURE get_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
actual_length : OUT integer;
buffer_length : integer;
buffer : string);
PROCEDURE get_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : string;
return_length : long_integer);
PROCEDURE open_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad);
PROCEDURE open_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : integer;
bpb : blr);
PROCEDURE prepare_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE prepare_transaction2 (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
msg_length : integer;
msg : blr);
PROCEDURE put_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
length : integer;
buffer : string);
PROCEDURE put_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : string);
PROCEDURE queue_events (
user_status : OUT status_vector;
db_handle : database_handle;
id : quad;
length : integer;
events : string;
ast : long_integer;
arg : quad);
PROCEDURE receive (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE rollback_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle);
PROCEDURE send (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE start_and_send (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE start_request (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
level : integer);
PROCEDURE start_multiple (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : integer;
teb : SYSTEM.ADDRESS);
PROCEDURE start_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : integer;
db_handle : database_handle;
tpb_length : integer;
tpb_arg : tpb);
PROCEDURE unwind_request (
user_status : OUT status_vector;
req_handle : request_handle;
level : integer);
PROCEDURE print_status (
user_status : status_vector);
PROCEDURE print_version (
db_handle : database_handle);
FUNCTION sqlcode (
user_status : status_vector) RETURN long_integer;
--- Dynamic SQL procedures
PROCEDURE dsql_close (
user_status : OUT status_vector;
cursor_name : string);
PROCEDURE dsql_declare (
user_status : OUT status_vector;
statement_name : string;
cursor_name : string);
PROCEDURE dsql_describe (
user_status : OUT status_vector;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string);
PROCEDURE dsql_execute_immediate (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : integer;
command : string);
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT long_integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT long_integer;
cursor_name : string);
PROCEDURE dsql_finish (
db_handle : database_handle);
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string);
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string);
--- PYXIS procedures
PROCEDURE compile_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr);
PROCEDURE compile_sub_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr);
PROCEDURE create_window (
win_handle : OUT window_handle;
name_length : integer;
file_name : string;
width : IN OUT integer;
height : IN OUT integer);
PROCEDURE delete_window (
win_handle : IN OUT window_handle);
PROCEDURE drive_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS);
PROCEDURE fetch_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS);
PROCEDURE insert_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS);
PROCEDURE load_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : integer;
form_name : string);
FUNCTION menu (
win_handle : window_handle;
men_handle : menu_handle;
menu_length : integer;
menu : blr) RETURN integer;
PROCEDURE pop_window (
win_handle : window_handle);
PROCEDURE reset_form (
user_status : OUT status_vector;
win_handle : window_handle);
PROCEDURE drive_menu (
win_handle : IN OUT window_handle;
men_handle : IN OUT menu_handle;
blr_length : integer;
blr_source : blr;
title_length : integer;
title : string;
terminator : OUT integer;
entree_length : OUT integer;
entree_text : OUT string;
entree_value : OUT long_integer);
PROCEDURE get_entree (
men_handle : menu_handle;
entree_length : OUT integer;
entree_text : OUT string;
entree_value : OUT long_integer;
entree_end : OUT integer);
PROCEDURE initialize_menu (
men_handle : IN OUT menu_handle);
PROCEDURE put_entree (
men_handle : menu_handle;
entree_length : integer;
entree_text : string;
entree_value : long_integer);
---
--- Same routines, but with automatic error checking
---
PROCEDURE attach_database (
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb);
PROCEDURE cancel_blob (
blb_handle : IN OUT blob_handle);
PROCEDURE cancel_events (
blb_handle : IN OUT blob_handle);
PROCEDURE close_blob (
blb_handle : IN OUT blob_handle);
PROCEDURE commit_retaining (
trans_handle : IN OUT transaction_handle);
PROCEDURE commit_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE compile_request (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr);
PROCEDURE compile_request2 (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr);
PROCEDURE create_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad);
PROCEDURE create_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : integer;
bpb : blr);
PROCEDURE create_database (
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb;
db_type : integer);
PROCEDURE detach_database (
db_handle : IN OUT database_handle);
PROCEDURE ddl (
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : integer;
msg : blr);
PROCEDURE get_segment (
completion_code : OUT long_integer;
blb_handle : blob_handle;
actual_length : OUT integer;
buffer_length : integer;
buffer : string);
PROCEDURE get_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : string;
return_length : long_integer);
PROCEDURE open_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad);
PROCEDURE open_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : integer;
bpb : blr);
PROCEDURE prepare_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE prepare_transaction2 (
trans_handle : IN OUT transaction_handle;
msg_length : integer;
msg : blr);
PROCEDURE put_segment (
blb_handle : blob_handle;
length : integer;
buffer : string);
PROCEDURE put_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : string);
PROCEDURE queue_events (
db_handle : database_handle;
id : quad;
length : integer;
events : string;
ast : long_integer;
arg : quad);
PROCEDURE receive (
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE rollback_transaction (
trans_handle : IN OUT transaction_handle);
PROCEDURE send (
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE start_and_send (
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE start_request (
req_handle : request_handle;
trans_handle : transaction_handle;
level : integer);
PROCEDURE start_multiple (
trans_handle : IN OUT transaction_handle;
count : integer;
teb : SYSTEM.ADDRESS);
PROCEDURE start_transaction (
trans_handle : IN OUT transaction_handle;
count : integer;
db_handle : database_handle;
tpb_length : integer;
tpb_arg : tpb);
PROCEDURE unwind_request (
req_handle : request_handle;
level : integer);
PROCEDURE dsql_close (
cursor_name : string);
PROCEDURE dsql_declare (
statement_name : string;
cursor_name : string);
PROCEDURE dsql_describe (
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string);
PROCEDURE dsql_execute_immediate (
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : integer;
command : string);
PROCEDURE dsql_fetch (
sqlcode : OUT long_integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_fetch (
sqlcode : OUT long_integer;
cursor_name : string);
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string);
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string);
--- PYXIS procedures
PROCEDURE compile_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr);
PROCEDURE compile_sub_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr);
PROCEDURE drive_form (
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS);
PROCEDURE fetch_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS);
PROCEDURE insert_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS);
PROCEDURE load_form (
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : integer;
form_name : string);
PROCEDURE reset_form (
win_handle : window_handle);
END interbase;
PACKAGE BODY interbase IS
---
--- Actual Interbase entrypoints
---
PROCEDURE gds_attach_database (
user_status : OUT status_vector;
file_length : integer;
file_name : SYSTEM.ADDRESS; -- string;
db_handle : SYSTEM.ADDRESS; -- IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb);
PROCEDURE gds_blob_display (
blob_id : quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
field_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- integer);
PROCEDURE gds_blob_dump (
blob_id : quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
file_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- integer);
PROCEDURE gds_blob_edit (
blob_id : IN OUT quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
file_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- integer);
PROCEDURE gds_blob_load (
blob_id : IN OUT quad;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tra_handle : SYSTEM.ADDRESS; -- transaction_handle;
file_name : SYSTEM.ADDRESS; -- string;
name_length : SYSTEM.ADDRESS); -- integer);
PROCEDURE gds_cancel_blob (
user_status : OUT status_vector;
blb_handle : SYSTEM.ADDRESS); -- IN OUT blob_handle;
PROCEDURE gds_cancel_events (
user_status : OUT status_vector;
blb_handle : SYSTEM.ADDRESS); -- IN OUT blob_handle;
PROCEDURE gds_close_blob (
user_status : OUT status_vector;
blb_handle : SYSTEM.ADDRESS); -- IN OUT blob_handle;
PROCEDURE gds_commit_retaining (
user_status : OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle;
PROCEDURE gds_commit_transaction (
user_status : OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle;
PROCEDURE gds_compile_request (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
req_handle : SYSTEM.ADDRESS; -- IN OUT request_handle;
blr_length : integer;
blr_arg : blr);
PROCEDURE gds_compile_request2 (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
req_handle : SYSTEM.ADDRESS; -- IN OUT request_handle;
blr_length : integer;
blr_arg : blr); -- blr;
PROCEDURE gds_create_blob (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
blb_handle : SYSTEM.ADDRESS; -- IN OUT blob_handle;
blob_id : OUT quad);
PROCEDURE gds_create_blob2 (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
blb_handle : SYSTEM.ADDRESS; --IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : integer;
bpb : blr);
PROCEDURE gds_create_database (
user_status : OUT status_vector;
file_length : integer;
file_name : SYSTEM.ADDRESS; -- string;
db_handle : SYSTEM.ADDRESS; -- IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb;
db_type : integer);
PROCEDURE gds_detach_database (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS); -- IN OUT database_handle);
PROCEDURE gds_ddl (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
msg_length : integer;
msg : blr);
PROCEDURE gds_decode_date (
date : quad; -- quad;
times : SYSTEM.ADDRESS); -- IN OUT gds_tm);
PROCEDURE gds_encode_date (
times : SYSTEM.ADDRESS; -- gds_tm;
date : IN OUT quad); -- IN OUT quad);
PROCEDURE gds_event_wait (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
length : integer;
events : SYSTEM.ADDRESS; -- string;
buffer : SYSTEM.ADDRESS); -- string;
PROCEDURE gds_get_segment (
user_status : OUT status_vector;
blb_handle : SYSTEM.ADDRESS; -- blob_handle;
actual_length : SYSTEM.ADDRESS; -- OUT integer;
buffer_length : integer;
buffer : SYSTEM.ADDRESS); -- string);
PROCEDURE gds_get_slice (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
blob_id : quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : SYSTEM.ADDRESS; -- string;
slice_length : long_integer;
slice : SYSTEM.ADDRESS; -- string;
return_length : long_integer); -- OUT long_integer;
PROCEDURE gds_open_blob (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
blb_handle : SYSTEM.ADDRESS; -- IN OUT blob_handle;
blob_id : quad);
PROCEDURE gds_open_blob2 (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; --database_handle;
trans_handle : SYSTEM.ADDRESS; --transaction_handle;
blb_handle : SYSTEM.ADDRESS; --IN OUT blob_handle;
blob_id : quad;
bpb_length : integer;
bpb : blr);
PROCEDURE gds_prepare_transaction (
user_status : OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle);
PROCEDURE gds_prepare_transaction2 (
user_status : OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- IN OUT transaction_handle;
msg_length : integer;
msg : blr); -- blr;
PROCEDURE gds_put_segment (
user_status : OUT status_vector;
blb_handle : SYSTEM.ADDRESS; -- blob_handle;
length : integer;
buffer : SYSTEM.ADDRESS); -- string);
PROCEDURE gds_put_slice (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
blob_id : IN OUT quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : SYSTEM.ADDRESS; -- string;
slice_length : long_integer;
slice : SYSTEM.ADDRESS); -- string;
PROCEDURE gds_queue_events (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
id : quad;
length : integer;
events : SYSTEM.ADDRESS; -- string;
ast : long_integer;
arg : quad); -- quad;
PROCEDURE gds_receive (
user_status : OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE gds_rollback_transaction (
user_status : OUT status_vector;
trans_handle : SYSTEM.ADDRESS); -- IN OUT transaction_handle);
PROCEDURE gds_send (
user_status : OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE gds_start_and_send (
user_status : OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer);
PROCEDURE gds_start_request (
user_status : OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
level : integer);
PROCEDURE gds_start_multiple (
user_status : OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- IN OUT transaction_handle;
count : integer;
teb : SYSTEM.ADDRESS);
PROCEDURE gds_start_transaction (
user_status : OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- IN OUT transaction_handle;
count : integer;
db_handle : SYSTEM.ADDRESS; -- database_handle;
tpb_length : integer;
tpb_arg : tpb);
PROCEDURE gds_unwind_request (
user_status : OUT status_vector;
req_handle : SYSTEM.ADDRESS; -- request_handle;
level : integer);
PROCEDURE gds_print_status (
user_status : status_vector);
PROCEDURE gds_version (
db_handle : SYSTEM.ADDRESS;
ptr1 : long_integer;
ptr2 : SYSTEM.ADDRESS);
FUNCTION gds_sqlcode (
user_status : status_vector) RETURN long_integer;
--- Dynamic SQL procedures
PROCEDURE gds_close (
user_status : OUT status_vector;
cursor_name : SYSTEM.ADDRESS); -- string);
PROCEDURE gds_declare (
user_status : OUT status_vector;
statement_name : SYSTEM.ADDRESS; -- string;
cursor_name : SYSTEM.ADDRESS); -- string);
PROCEDURE gds_describe (
user_status : OUT status_vector;
statement_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE gds_dsql_finish (
db_handle : SYSTEM.ADDRESS); -- database_handle);
PROCEDURE gds_execute (
user_status : OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
statement_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE gds_execute_immediate (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
command_length : SYSTEM.ADDRESS; -- integer;
command : SYSTEM.ADDRESS); -- string);
PROCEDURE gds_fetch (
user_status : OUT status_vector;
sqlcode : SYSTEM.ADDRESS; -- OUT long_integer;
cursor_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE gds_open (
user_status : OUT status_vector;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
cursor_name : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS);
PROCEDURE gds_prepare (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
statement_name : SYSTEM.ADDRESS; -- string;
command_length : SYSTEM.ADDRESS; -- integer;
command : SYSTEM.ADDRESS; -- string;
descriptor : SYSTEM.ADDRESS);
--- PYXIS procedures
PROCEDURE pyxis_compile_map (
user_status : OUT status_vector;
frm_handle : SYSTEM.ADDRESS; -- form_handle;
mp_handle : SYSTEM.ADDRESS; -- OUT map_handle;
map_length : SYSTEM.ADDRESS; -- integer;
map : blr);
PROCEDURE pyxis_compile_sub_map (
user_status : OUT status_vector;
frm_handle : SYSTEM.ADDRESS; -- form_handle;
mp_handle : SYSTEM.ADDRESS; -- OUT map_handle;
map_length : SYSTEM.ADDRESS; -- integer;
map : blr);
PROCEDURE pyxis_create_window (
win_handle : SYSTEM.ADDRESS; -- OUT window_handle;
name_length : SYSTEM.ADDRESS; -- integer;
file_name : SYSTEM.ADDRESS; -- string;
width : SYSTEM.ADDRESS; -- IN OUT integer;
height : SYSTEM.ADDRESS); -- IN OUT integer);
PROCEDURE pyxis_delete_window (
win_handle : SYSTEM.ADDRESS); -- IN OUT window_handle);
PROCEDURE pyxis_drive_form (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
win_handle : SYSTEM.ADDRESS; -- window_handle;
mp_handle : SYSTEM.ADDRESS; -- map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS);
PROCEDURE pyxis_fetch (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
mp_handle : SYSTEM.ADDRESS; -- map_handle;
output : SYSTEM.ADDRESS);
PROCEDURE pyxis_insert (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
mp_handle : SYSTEM.ADDRESS; -- map_handle;
input : SYSTEM.ADDRESS);
PROCEDURE pyxis_load_form (
user_status : OUT status_vector;
db_handle : SYSTEM.ADDRESS; -- database_handle;
trans_handle : SYSTEM.ADDRESS; -- transaction_handle;
frm_handle : SYSTEM.ADDRESS; -- IN OUT form_handle;
name_length : SYSTEM.ADDRESS; -- integer;
form_name : SYSTEM.ADDRESS); -- string);
FUNCTION pyxis_menu (
win_handle : SYSTEM.ADDRESS; -- window_handle;
men_handle : SYSTEM.ADDRESS; -- menu_handle;
menu_length : SYSTEM.ADDRESS; -- integer;
menu : blr) RETURN integer;
PROCEDURE pyxis_pop_window (
win_handle : SYSTEM.ADDRESS); -- window_handle);
PROCEDURE pyxis_reset_form (
user_status : OUT status_vector;
win_handle : SYSTEM.ADDRESS); -- window_handle);
PROCEDURE pyxis_drive_menu (
win_handle : SYSTEM.ADDRESS; -- IN OUT window_handle;
men_handle : SYSTEM.ADDRESS; -- IN OUT menu_handle;
blr_length : integer;
blr_source : blr;
title_length : integer;
title : SYSTEM.ADDRESS; -- string;
terminator : SYSTEM.ADDRESS; -- OUT integer;
entree_length : SYSTEM.ADDRESS; -- OUT integer;
entree_text : SYSTEM.ADDRESS; -- OUT string;
entree_value : SYSTEM.ADDRESS); -- OUT integer);
PROCEDURE pyxis_get_entree (
men_handle : menu_handle;
entree_length : SYSTEM.ADDRESS; -- OUT integer;
entree_text : SYSTEM.ADDRESS; -- OUT string;
entree_value : SYSTEM.ADDRESS; -- OUT long_integer;
entree_end : SYSTEM.ADDRESS); -- OUT integer);
PROCEDURE pyxis_initialize_menu (
men_handle : SYSTEM.ADDRESS); -- IN OUT menu_handle);
PROCEDURE pyxis_put_entree (
men_handle : menu_handle;
entree_length : integer;
entree_text : SYSTEM.ADDRESS; -- string;
entree_value : long_integer);
pragma interface (C, gds_attach_database);
pragma linkname (gds_attach_database, "gds_$attach_database");
pragma interface (C, gds_blob_display);
pragma linkname (gds_blob_display, "blob_$display");
pragma interface (C, gds_blob_dump);
pragma linkname (gds_blob_dump, "blob_$dump");
pragma interface (C, gds_blob_edit);
pragma linkname (gds_blob_edit, "blob_$edit");
pragma interface (C, gds_blob_load);
pragma linkname (gds_blob_load, "blob_$load");
pragma interface (C, gds_cancel_blob);
pragma linkname (gds_cancel_blob, "gds_$cancel_blob");
pragma interface (C, gds_cancel_events);
pragma linkname (gds_cancel_events, "gds_$cancel_events");
pragma interface (C, gds_close);
pragma linkname (gds_close, "gds_$close");
pragma interface (C, gds_close_blob);
pragma linkname (gds_close_blob, "gds_$close_blob");
pragma interface (C, gds_commit_retaining);
pragma linkname (gds_commit_retaining, "gds_$commit_retaining");
pragma interface (C, gds_commit_transaction);
pragma linkname (gds_commit_transaction, "gds_$commit_transaction");
pragma interface (C, gds_compile_request);
pragma linkname (gds_compile_request, "gds_$compile_request");
pragma interface (C, gds_compile_request2);
pragma linkname (gds_compile_request2, "gds_$compile_request2");
pragma interface (C, gds_create_blob);
pragma linkname (gds_create_blob, "gds_$create_blob");
pragma interface (C, gds_create_blob2);
pragma linkname (gds_create_blob2, "gds_$create_blob2");
pragma interface (C, gds_create_database);
pragma linkname (gds_create_database, "gds_$create_database");
pragma interface (C, gds_ddl);
pragma linkname (gds_ddl, "gds_$ddl");
pragma interface (C, gds_declare);
pragma linkname (gds_declare, "gds_$declare");
pragma interface (C, gds_decode_date);
pragma linkname (gds_decode_date, "gds_$decode_date");
pragma interface (C, gds_describe);
pragma linkname (gds_describe, "gds_$describe");
pragma interface (C, gds_detach_database);
pragma linkname (gds_detach_database, "gds_$detach_database");
pragma interface (C, gds_dsql_finish);
pragma linkname (gds_dsql_finish, "gds_$dsql_finish");
pragma interface (C, gds_encode_date);
pragma linkname (gds_encode_date, "gds_$encode_date");
pragma interface (C, gds_event_wait);
pragma linkname (gds_event_wait, "gds_$event_wait");
pragma interface (C, gds_execute);
pragma linkname (gds_execute, "gds_$execute");
pragma interface (C, gds_execute_immediate);
pragma linkname (gds_execute_immediate, "gds_$execute_immediate");
pragma interface (C, gds_fetch);
pragma linkname (gds_fetch, "gds_$fetch_a");
pragma interface (C, gds_get_segment);
pragma linkname (gds_get_segment, "gds_$get_segment");
pragma interface (C, gds_get_slice);
pragma linkname (gds_get_slice, "gds_$get_slice");
pragma interface (C, gds_open);
pragma linkname (gds_open, "gds_$open");
pragma interface (C, gds_open_blob);
pragma linkname (gds_open_blob, "gds_$open_blob");
pragma interface (C, gds_open_blob2);
pragma linkname (gds_open_blob2, "gds_$open_blob2");
pragma interface (C, gds_prepare);
pragma linkname (gds_prepare, "gds_$prepare");
pragma interface (C, gds_prepare_transaction);
pragma linkname (gds_prepare_transaction, "gds_$prepare_transaction");
pragma interface (C, gds_prepare_transaction2);
pragma linkname (gds_prepare_transaction2, "gds_$prepare_transaction2");
pragma interface (C, gds_print_status);
pragma linkname (gds_print_status, "gds_$print_status");
pragma interface (C, gds_put_segment);
pragma linkname (gds_put_segment, "gds_$put_segment");
pragma interface (C, gds_put_slice);
pragma linkname (gds_put_slice, "gds_$put_slice");
pragma interface (C, gds_queue_events);
pragma linkname (gds_queue_events, "gds_$que_events");
pragma interface (C, gds_receive);
pragma linkname (gds_receive, "gds_$receive");
pragma interface (C, gds_rollback_transaction);
pragma linkname (gds_rollback_transaction, "gds_$rollback_transaction");
pragma interface (C, gds_send);
pragma linkname (gds_send, "gds_$send");
pragma interface (C, gds_sqlcode);
pragma linkname (gds_sqlcode, "gds_$sqlcode");
pragma interface (C, gds_start_and_send);
pragma linkname (gds_start_and_send, "gds_$start_and_send");
pragma interface (C, gds_start_multiple);
pragma linkname (gds_start_multiple, "gds_$start_multiple");
pragma interface (C, gds_start_request);
pragma linkname (gds_start_request, "gds_$start_request");
pragma interface (C, gds_start_transaction);
pragma linkname (gds_start_transaction, "gds_$start_transaction");
pragma interface (C, gds_unwind_request);
pragma linkname (gds_unwind_request, "gds_$unwind_request");
pragma interface (C, gds_version);
pragma linkname (gds_version, "gds_$version");
pragma interface (C, pyxis_compile_map);
pragma linkname (pyxis_compile_map, "pyxis_$compile_map");
pragma interface (C, pyxis_compile_sub_map);
pragma linkname (pyxis_compile_sub_map, "pyxis_$compile_sub_map");
pragma interface (C, pyxis_create_window);
pragma linkname (pyxis_create_window, "pyxis_$create_window");
pragma interface (C, pyxis_delete_window);
pragma linkname (pyxis_delete_window, "pyxis_$delete_window");
pragma interface (C, pyxis_drive_form);
pragma linkname (pyxis_drive_form, "pyxis_$drive_form");
pragma interface (C, pyxis_drive_menu);
pragma linkname (pyxis_drive_menu, "pyxis_$drive_menu");
pragma interface (C, pyxis_fetch);
pragma linkname (pyxis_fetch, "pyxis_$fetch");
pragma interface (C, pyxis_get_entree);
pragma linkname (pyxis_get_entree, "pyxis_$get_entree");
pragma interface (C, pyxis_initialize_menu);
pragma linkname (pyxis_initialize_menu, "pyxis_$initialize_menu");
pragma interface (C, pyxis_insert);
pragma linkname (pyxis_insert, "pyxis_$insert");
pragma interface (C, pyxis_load_form);
pragma linkname (pyxis_load_form, "pyxis_$load_form");
pragma interface (C, pyxis_menu);
pragma linkname (pyxis_menu, "pyxis_$menu");
pragma interface (C, pyxis_pop_window);
pragma linkname (pyxis_pop_window, "pyxis_$pop_window");
pragma interface (C, pyxis_put_entree);
pragma linkname (pyxis_put_entree, "pyxis_$put_entree");
pragma interface (C, pyxis_reset_form);
pragma linkname (pyxis_reset_form, "pyxis_$reset_form");
---
--- Interface routines that return status vector
---
PROCEDURE attach_database (
user_status : OUT status_vector;
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb) IS
BEGIN
gds_attach_database (
user_status,
file_length,
file_name'address,
db_handle'address,
dpb_length,
dpb_arg);
END attach_database;
PROCEDURE blob_display (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
field_name : string;
name_length : integer) IS
BEGIN
gds_blob_display (
blob_id,
db_handle'address,
tra_handle'address,
field_name'address,
name_length'address);
END blob_display;
PROCEDURE blob_dump (
blob_id : quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : integer) IS
BEGIN
gds_blob_dump (
blob_id,
db_handle'address,
tra_handle'address,
file_name'address,
name_length'address);
END blob_dump;
PROCEDURE blob_edit (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : integer) IS
BEGIN
gds_blob_edit (
blob_id,
db_handle'address,
tra_handle'address,
file_name'address,
name_length'address);
END blob_edit;
PROCEDURE blob_load (
blob_id : IN OUT quad;
db_handle : database_handle;
tra_handle : transaction_handle;
file_name : string;
name_length : integer) IS
BEGIN
gds_blob_load (
blob_id,
db_handle'address,
tra_handle'address,
file_name'address,
name_length'address);
END blob_load;
PROCEDURE cancel_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle) IS
BEGIN
gds_cancel_blob (
user_status,
blb_handle'address);
END cancel_blob;
PROCEDURE cancel_events (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle) IS
BEGIN
gds_cancel_events (
user_status,
blb_handle'address);
END cancel_events;
PROCEDURE close_blob (
user_status : OUT status_vector;
blb_handle : IN OUT blob_handle) IS
BEGIN
gds_close_blob (
user_status,
blb_handle'address);
END close_blob;
PROCEDURE commit_retaining (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_commit_retaining (
user_status,
trans_handle'address);
END commit_retaining;
PROCEDURE commit_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_commit_transaction (
user_status,
trans_handle'address);
END commit_transaction;
PROCEDURE compile_request (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr) IS
BEGIN
gds_compile_request (
user_status,
db_handle'address,
req_handle'address,
blr_length,
blr_arg);
END compile_request;
PROCEDURE compile_request2 (
user_status : OUT status_vector;
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr) IS
BEGIN
gds_compile_request2 (
user_status,
db_handle'address,
req_handle'address,
blr_length,
blr_arg);
END compile_request2;
PROCEDURE create_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad) IS
BEGIN
gds_create_blob (
user_status,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id);
END create_blob;
PROCEDURE create_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : integer;
bpb : blr) IS
BEGIN
gds_create_blob2 (
user_status,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id,
bpb_length,
bpb);
END create_blob2;
PROCEDURE create_database (
user_status : OUT status_vector;
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb;
db_type : integer) IS
BEGIN
gds_create_database (
user_status,
file_length,
file_name'address,
db_handle'address,
dpb_length,
dpb_arg,
db_type);
END create_database;
PROCEDURE ddl (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : integer;
msg : blr) IS
BEGIN
gds_ddl (
user_status,
db_handle'address,
trans_handle'address,
msg_length,
msg);
END ddl;
PROCEDURE decode_date (
date : quad;
times : IN OUT gds_tm) IS
BEGIN
gds_decode_date (
date,
times'address);
END decode_date;
PROCEDURE detach_database (
user_status : OUT status_vector;
db_handle : IN OUT database_handle) IS
BEGIN
gds_detach_database (
user_status,
db_handle'address);
END detach_database;
PROCEDURE encode_date (
times : gds_tm;
date : IN OUT quad) IS
BEGIN
gds_encode_date (
times'address,
date);
END encode_date;
PROCEDURE event_wait (
user_status : OUT status_vector;
db_handle : database_handle;
length : integer;
events : string;
buffer : string) IS
BEGIN
gds_event_wait (
user_status,
db_handle'address,
length,
events'address,
buffer'address);
END event_wait;
PROCEDURE get_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
actual_length : OUT integer;
buffer_length : integer;
buffer : string) IS
BEGIN
gds_get_segment (
user_status,
blb_handle'address,
actual_length'address,
buffer_length,
buffer'address);
END get_segment;
PROCEDURE get_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : string;
return_length : long_integer) IS
BEGIN
gds_get_slice (
user_status,
db_handle'address,
trans_handle'address,
blob_id,
sdl_length,
sdl,
param_length,
param'address,
slice_length,
slice'address,
return_length);
END get_slice;
PROCEDURE open_blob (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad) IS
BEGIN
gds_open_blob (
user_status,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id);
END open_blob;
PROCEDURE open_blob2 (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : integer;
bpb : blr) IS
BEGIN
gds_open_blob2 (
user_status,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id,
bpb_length,
bpb);
END open_blob2;
PROCEDURE prepare_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_prepare_transaction (
user_status,
trans_handle'address);
END prepare_transaction;
PROCEDURE prepare_transaction2 (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
msg_length : integer;
msg : blr) IS
BEGIN
gds_prepare_transaction2 (
user_status,
trans_handle'address,
msg_length,
msg);
END prepare_transaction2;
PROCEDURE put_segment (
user_status : OUT status_vector;
blb_handle : blob_handle;
length : integer;
buffer : string) IS
BEGIN
gds_put_segment (
user_status,
blb_handle'address,
length,
buffer'address);
END put_segment;
PROCEDURE put_slice (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : string) IS
BEGIN
gds_put_slice (
user_status,
db_handle'address,
trans_handle'address,
blob_id,
sdl_length,
sdl,
param_length,
param'address,
slice_length,
slice'address);
END put_slice;
PROCEDURE queue_events (
user_status : OUT status_vector;
db_handle : database_handle;
id : quad;
length : integer;
events : string;
ast : long_integer;
arg : quad) IS
BEGIN
gds_queue_events (
user_status,
db_handle'address,
id,
length,
events'address,
ast,
arg);
END queue_events;
PROCEDURE receive (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
BEGIN
gds_receive (
user_status,
req_handle'address,
msg_type,
msg_length,
msg,
level);
END receive;
PROCEDURE rollback_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle) IS
BEGIN
gds_rollback_transaction (
user_status,
trans_handle'address);
END rollback_transaction;
PROCEDURE send (
user_status : OUT status_vector;
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
BEGIN
gds_send (
user_status,
req_handle'address,
msg_type,
msg_length,
msg,
level);
END send;
PROCEDURE start_request (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
level : integer) IS
BEGIN
gds_start_request (
user_status,
req_handle'address,
trans_handle'address,
level);
END start_request;
PROCEDURE start_and_send (
user_status : OUT status_vector;
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
BEGIN
gds_start_and_send (
user_status,
req_handle'address,
trans_handle'address,
msg_type,
msg_length,
msg,
level);
END start_and_send;
PROCEDURE start_multiple (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : integer;
teb : SYSTEM.ADDRESS) IS
BEGIN
gds_start_multiple (
user_status,
trans_handle'address,
count,
teb);
END start_multiple;
PROCEDURE start_transaction (
user_status : OUT status_vector;
trans_handle : IN OUT transaction_handle;
count : integer;
db_handle : database_handle;
tpb_length : integer;
tpb_arg : tpb) IS
BEGIN
gds_start_transaction (
user_status,
trans_handle'address,
count,
db_handle'address,
tpb_length,
tpb_arg);
END start_transaction;
PROCEDURE unwind_request (
user_status : OUT status_vector;
req_handle : request_handle;
level : integer) IS
BEGIN
gds_unwind_request (
user_status,
req_handle'address,
level);
END unwind_request;
PROCEDURE print_status (
user_status : status_vector) IS
BEGIN
gds_print_status (user_status);
end print_status;
PROCEDURE print_version (
db_handle: database_handle) IS
ptr : long_integer := 0;
BEGIN
gds_version (
db_handle'address,
0,
ptr'address);
END print_version;
FUNCTION sqlcode (
user_status : status_vector) RETURN long_integer IS
BEGIN
return gds_sqlcode (user_status);
end sqlcode;
--- Dynamic SQL procedures
PROCEDURE dsql_close (
user_status : OUT status_vector;
cursor_name : string) IS
BEGIN
gds_close (
user_status,
cursor_name'address);
END dsql_close;
PROCEDURE dsql_declare (
user_status : OUT status_vector;
statement_name : string;
cursor_name : string) IS
BEGIN
gds_declare (
user_status,
statement_name'address,
cursor_name'address);
END dsql_declare;
PROCEDURE dsql_describe (
user_status : OUT status_vector;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_describe (
user_status,
statement_name'address,
descriptor);
END dsql_describe;
PROCEDURE dsql_finish (
db_handle : database_handle) IS
BEGIN
gds_dsql_finish (
db_handle'address);
END dsql_finish;
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_execute (
user_status,
trans_handle'address,
statement_name'address,
descriptor);
END dsql_execute;
PROCEDURE dsql_execute (
user_status : OUT status_vector;
trans_handle : transaction_handle;
statement_name : string) IS
BEGIN
gds_execute (
user_status,
trans_handle'address,
statement_name'address,
null_blob'address);
END dsql_execute;
PROCEDURE dsql_execute_immediate (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : integer;
command : string) IS
BEGIN
gds_execute_immediate (
user_status,
db_handle'address,
trans_handle'address,
command_length'address,
command'address);
END dsql_execute_immediate;
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT long_integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_fetch (
user_status,
sqlcode'address,
cursor_name'address,
descriptor);
END dsql_fetch;
PROCEDURE dsql_fetch (
user_status : OUT status_vector;
sqlcode : OUT long_integer;
cursor_name : string) IS
BEGIN
gds_fetch (
user_status,
sqlcode'address,
cursor_name'address,
null_blob'address);
END dsql_fetch;
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_open (
user_status,
trans_handle'address,
cursor_name'address,
descriptor);
END dsql_open;
PROCEDURE dsql_open (
user_status : OUT status_vector;
trans_handle : transaction_handle;
cursor_name : string) IS
BEGIN
gds_open (
user_status,
trans_handle'address,
cursor_name'address,
null_blob'address);
END dsql_open;
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string;
descriptor : SYSTEM.ADDRESS) IS
BEGIN
gds_prepare (
user_status,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
descriptor);
END dsql_prepare;
PROCEDURE dsql_prepare (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string) IS
BEGIN
gds_prepare (
user_status,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
null_blob'address);
END dsql_prepare;
--- PYXIS procedures
PROCEDURE compile_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr) IS
BEGIN
pyxis_compile_map (
user_status,
frm_handle'address,
mp_handle'address,
map_length'address,
map);
END compile_map;
PROCEDURE compile_sub_map (
user_status : OUT status_vector;
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr) IS
BEGIN
pyxis_compile_sub_map (
user_status,
frm_handle'address,
mp_handle'address,
map_length'address,
map);
END compile_sub_map;
PROCEDURE create_window (
win_handle : OUT window_handle;
name_length : integer;
file_name : string;
width : IN OUT integer;
height : IN OUT integer) IS
BEGIN
pyxis_create_window (
win_handle'address,
name_length'address,
file_name'address,
width'address,
height'address);
END create_window;
PROCEDURE delete_window (
win_handle : IN OUT window_handle) IS
BEGIN
pyxis_delete_window (
win_handle'address);
END delete_window;
PROCEDURE drive_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS) IS
BEGIN
pyxis_drive_form (
user_status,
db_handle'address,
trans_handle'address,
win_handle'address,
mp_handle'address,
input,
output);
END drive_form;
PROCEDURE fetch_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS) IS
BEGIN
pyxis_fetch (
user_status,
db_handle'address,
trans_handle'address,
mp_handle'address,
output);
END fetch_sub_form;
PROCEDURE insert_sub_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS) IS
BEGIN
pyxis_insert (
user_status,
db_handle'address,
trans_handle'address,
mp_handle'address,
input);
END insert_sub_form;
PROCEDURE load_form (
user_status : OUT status_vector;
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : integer;
form_name : string) IS
BEGIN
pyxis_load_form (
user_status,
db_handle'address,
trans_handle'address,
frm_handle'address,
name_length'address,
form_name'address);
END load_form;
FUNCTION menu (
win_handle : window_handle;
men_handle : menu_handle;
menu_length : integer;
menu : blr) RETURN integer IS
BEGIN
return pyxis_menu (
win_handle'address,
men_handle'address,
menu_length'address,
menu);
END menu;
PROCEDURE pop_window (
win_handle : window_handle) IS
BEGIN
pyxis_pop_window (
win_handle'address);
END pop_window;
PROCEDURE reset_form (
user_status : OUT status_vector;
win_handle : window_handle) IS
BEGIN
pyxis_reset_form (
user_status,
win_handle'address);
END reset_form;
PROCEDURE drive_menu (
win_handle : IN OUT window_handle;
men_handle : IN OUT menu_handle;
blr_length : integer;
blr_source : blr;
title_length : integer;
title : string;
terminator : OUT integer;
entree_length : OUT integer;
entree_text : OUT string;
entree_value : OUT long_integer) IS
BEGIN
pyxis_drive_menu (
win_handle'address,
men_handle'address,
blr_length,
blr_source,
title_length,
title'address,
terminator'address,
entree_length'address,
entree_text'address,
entree_value'address);
END drive_menu;
PROCEDURE get_entree (
men_handle : menu_handle;
entree_length : OUT integer;
entree_text : OUT string;
entree_value : OUT long_integer;
entree_end : OUT integer) IS
BEGIN
pyxis_get_entree (
men_handle,
entree_length'address,
entree_text'address,
entree_value'address,
entree_end'address);
END get_entree;
PROCEDURE initialize_menu (
men_handle : IN OUT menu_handle) IS
BEGIN
pyxis_initialize_menu (
men_handle'address);
END initialize_menu;
PROCEDURE put_entree (
men_handle : menu_handle;
entree_length : integer;
entree_text : string;
entree_value : long_integer) IS
BEGIN
pyxis_put_entree (
men_handle,
entree_length,
entree_text'address,
entree_value);
END put_entree;
---
--- Internal routines
---
PROCEDURE error (
user_status : status_vector) IS
BEGIN
gds_print_status (user_status);
RAISE database_error;
END;
---
--- Routines sans explicit status vector
---
PROCEDURE attach_database (
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb) IS
user_status : status_vector;
BEGIN
gds_attach_database (
user_status,
file_length,
file_name'address,
db_handle'address,
dpb_length,
dpb_arg);
if user_status (1) /= 0 then error (user_status); end if;
END attach_database;
PROCEDURE cancel_blob (
blb_handle : IN OUT blob_handle) IS
user_status : status_vector;
BEGIN
gds_cancel_blob (
user_status,
blb_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END cancel_blob;
PROCEDURE cancel_events (
blb_handle : IN OUT blob_handle) IS
user_status : status_vector;
BEGIN
gds_cancel_events (
user_status,
blb_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END cancel_events;
PROCEDURE close_blob (
blb_handle : IN OUT blob_handle) IS
user_status : status_vector;
BEGIN
gds_close_blob (
user_status,
blb_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END close_blob;
PROCEDURE commit_retaining (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_commit_retaining (
user_status,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END commit_retaining;
PROCEDURE commit_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_commit_transaction (
user_status,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END commit_transaction;
PROCEDURE compile_request (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr) IS
user_status : status_vector;
BEGIN
gds_compile_request (
user_status,
db_handle'address,
req_handle'address,
blr_length,
blr_arg);
if user_status (1) /= 0 then error (user_status); end if;
END compile_request;
PROCEDURE compile_request2 (
db_handle : database_handle;
req_handle : IN OUT request_handle;
blr_length : integer;
blr_arg : blr) IS
user_status : status_vector;
BEGIN
gds_compile_request2 (
user_status,
db_handle'address,
req_handle'address,
blr_length,
blr_arg);
if user_status (1) /= 0 then error (user_status); end if;
END compile_request2;
PROCEDURE create_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad) IS
user_status : status_vector;
BEGIN
gds_create_blob (
user_status,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id);
if user_status (1) /= 0 then error (user_status); end if;
END create_blob;
PROCEDURE create_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : OUT quad;
bpb_length : integer;
bpb : blr) IS
user_status : status_vector;
BEGIN
gds_create_blob2 (
user_status,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id,
bpb_length,
bpb);
if user_status (1) /= 0 then error (user_status); end if;
END create_blob2;
PROCEDURE create_database (
file_length : integer;
file_name : string;
db_handle : IN OUT database_handle;
dpb_length : integer;
dpb_arg : dpb;
db_type : integer) IS
user_status : status_vector;
BEGIN
gds_create_database (
user_status,
file_length,
file_name'address,
db_handle'address,
dpb_length,
dpb_arg,
db_type);
if user_status (1) /= 0 then error (user_status); end if;
END create_database;
PROCEDURE ddl (
db_handle : database_handle;
trans_handle : transaction_handle;
msg_length : integer;
msg : blr) IS
user_status : status_vector;
BEGIN
gds_ddl (
user_status,
db_handle'address,
trans_handle'address,
msg_length,
msg);
if user_status (1) /= 0 then error (user_status); end if;
END ddl;
PROCEDURE detach_database (
db_handle : IN OUT database_handle) IS
user_status : status_vector;
BEGIN
gds_detach_database (
user_status,
db_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END detach_database;
PROCEDURE event_wait (
db_handle : database_handle;
length : integer;
events : string;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_event_wait (
user_status,
db_handle'address,
length,
events'address,
buffer'address);
END event_wait;
PROCEDURE get_segment (
completion_code : OUT long_integer;
blb_handle : blob_handle;
actual_length : OUT integer;
buffer_length : integer;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_get_segment (
user_status,
blb_handle'address,
actual_length'address,
buffer_length,
buffer'address);
if user_status (1) /= 0 and user_status (1) /= gds_segment and
user_status (1) /= gds_segstr_eof then
error (user_status);
end if;
completion_code := user_status(1);
END get_segment;
PROCEDURE get_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : string;
return_length : long_integer) IS
user_status : status_vector;
BEGIN
gds_get_slice (
user_status,
db_handle'address,
trans_handle'address,
blob_id,
sdl_length,
sdl,
param_length,
param'address,
slice_length,
slice'address,
return_length);
END get_slice;
PROCEDURE open_blob (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad) IS
user_status : status_vector;
BEGIN
gds_open_blob (
user_status,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id);
if user_status (1) /= 0 then error (user_status); end if;
END open_blob;
PROCEDURE open_blob2 (
db_handle : database_handle;
trans_handle : transaction_handle;
blb_handle : IN OUT blob_handle;
blob_id : quad;
bpb_length : integer;
bpb : blr) IS
user_status : status_vector;
BEGIN
gds_open_blob2 (
user_status,
db_handle'address,
trans_handle'address,
blb_handle'address,
blob_id,
bpb_length,
bpb);
if user_status (1) /= 0 then error (user_status); end if;
END open_blob2;
PROCEDURE prepare_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_prepare_transaction (
user_status,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END prepare_transaction;
PROCEDURE prepare_transaction2 (
trans_handle : IN OUT transaction_handle;
msg_length : integer;
msg : blr) IS
user_status : status_vector;
BEGIN
gds_prepare_transaction2 (
user_status,
trans_handle'address,
msg_length,
msg);
END prepare_transaction2;
PROCEDURE put_segment (
blb_handle : blob_handle;
length : integer;
buffer : string) IS
user_status : status_vector;
BEGIN
gds_put_segment (
user_status,
blb_handle'address,
length,
buffer'address);
if user_status (1) /= 0 then error (user_status); end if;
END put_segment;
PROCEDURE put_slice (
db_handle : database_handle;
trans_handle : transaction_handle;
blob_id : IN OUT quad;
sdl_length : integer;
sdl : blr;
param_length : integer;
param : string;
slice_length : long_integer;
slice : string) IS
user_status : status_vector;
BEGIN
gds_put_slice (
user_status,
db_handle'address,
trans_handle'address,
blob_id,
sdl_length,
sdl,
param_length,
param'address,
slice_length,
slice'address);
END put_slice;
PROCEDURE queue_events (
db_handle : database_handle;
id : quad;
length : integer;
events : string;
ast : long_integer;
arg : quad) IS
user_status : status_vector;
BEGIN
gds_queue_events (
user_status,
db_handle'address,
id,
length,
events'address,
ast,
arg);
END queue_events;
PROCEDURE receive (
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
user_status : status_vector;
BEGIN
gds_receive (
user_status,
req_handle'address,
msg_type,
msg_length,
msg,
level);
if user_status (1) /= 0 then error (user_status); end if;
END receive;
PROCEDURE rollback_transaction (
trans_handle : IN OUT transaction_handle) IS
user_status : status_vector;
BEGIN
gds_rollback_transaction (
user_status,
trans_handle'address);
if user_status (1) /= 0 then error (user_status); end if;
END rollback_transaction;
PROCEDURE send (
req_handle : request_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
user_status : status_vector;
BEGIN
gds_send (
user_status,
req_handle'address,
msg_type,
msg_length,
msg,
level);
if user_status (1) /= 0 then error (user_status); end if;
END send;
PROCEDURE start_request (
req_handle : request_handle;
trans_handle : transaction_handle;
level : integer) IS
user_status : status_vector;
BEGIN
gds_start_request (
user_status,
req_handle'address,
trans_handle'address,
level);
if user_status (1) /= 0 then error (user_status); end if;
END start_request;
PROCEDURE start_and_send (
req_handle : request_handle;
trans_handle : transaction_handle;
msg_type : integer;
msg_length : integer;
msg : SYSTEM.ADDRESS;
level : integer) IS
user_status : status_vector;
BEGIN
gds_start_and_send (
user_status,
req_handle'address,
trans_handle'address,
msg_type,
msg_length,
msg,
level);
if user_status (1) /= 0 then error (user_status); end if;
END start_and_send;
PROCEDURE start_multiple (
trans_handle : IN OUT transaction_handle;
count : integer;
teb : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_start_multiple (
user_status,
trans_handle'address,
count,
teb);
if user_status (1) /= 0 then error (user_status); end if;
END start_multiple;
PROCEDURE start_transaction (
trans_handle : IN OUT transaction_handle;
count : integer;
db_handle : database_handle;
tpb_length : integer;
tpb_arg : tpb) IS
user_status : status_vector;
BEGIN
gds_start_transaction (
user_status,
trans_handle'address,
count,
db_handle'address,
tpb_length,
tpb_arg);
if user_status (1) /= 0 then error (user_status); end if;
END start_transaction;
PROCEDURE unwind_request (
req_handle : request_handle;
level : integer) IS
user_status : status_vector;
BEGIN
gds_unwind_request (
user_status,
req_handle'address,
level);
if user_status (1) /= 0 then error (user_status); end if;
END unwind_request;
--- Dynamic SQL procedures
PROCEDURE dsql_close (
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_close (
user_status,
cursor_name'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_close;
PROCEDURE dsql_declare (
statement_name : string;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_declare (
user_status,
statement_name'address,
cursor_name'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_declare;
PROCEDURE dsql_describe (
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_describe (
user_status,
statement_name'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_describe;
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_execute (
user_status,
trans_handle'address,
statement_name'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute;
PROCEDURE dsql_execute (
trans_handle : transaction_handle;
statement_name : string) IS
user_status : status_vector;
BEGIN
gds_execute (
user_status,
trans_handle'address,
statement_name'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute;
PROCEDURE dsql_execute_immediate (
db_handle : database_handle;
trans_handle : transaction_handle;
command_length : integer;
command : string) IS
user_status : status_vector;
BEGIN
gds_execute_immediate (
user_status,
db_handle'address,
trans_handle'address,
command_length'address,
command'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_execute_immediate;
PROCEDURE dsql_fetch (
sqlcode : OUT long_integer;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_fetch (
user_status,
sqlcode'address,
cursor_name'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_fetch;
PROCEDURE dsql_fetch (
sqlcode : OUT long_integer;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_fetch (
user_status,
sqlcode'address,
cursor_name'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_fetch;
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_open (
user_status,
trans_handle'address,
cursor_name'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_open;
PROCEDURE dsql_open (
trans_handle : transaction_handle;
cursor_name : string) IS
user_status : status_vector;
BEGIN
gds_open (
user_status,
trans_handle'address,
cursor_name'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_open;
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string;
descriptor : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
gds_prepare (
user_status,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
descriptor);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_prepare;
PROCEDURE dsql_prepare (
db_handle : database_handle;
trans_handle : transaction_handle;
statement_name : string;
command_length : integer;
command : string) IS
user_status : status_vector;
BEGIN
gds_prepare (
user_status,
db_handle'address,
trans_handle'address,
statement_name'address,
command_length'address,
command'address,
null_blob'address);
if user_status (1) /= 0 then error (user_status); end if;
END dsql_prepare;
--- PYXIS procedures
PROCEDURE compile_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr) IS
user_status : status_vector;
BEGIN
pyxis_compile_map (
user_status,
frm_handle'address,
mp_handle'address,
map_length'address,
map);
--- if user_status (1) /= 0 then error (user_status); end if;
END compile_map;
PROCEDURE compile_sub_map (
frm_handle : form_handle;
mp_handle : OUT map_handle;
map_length : integer;
map : blr) IS
user_status : status_vector;
BEGIN
pyxis_compile_sub_map (
user_status,
frm_handle'address,
mp_handle'address,
map_length'address,
map);
--- if user_status (1) /= 0 then error (user_status); end if;
END compile_sub_map;
PROCEDURE drive_form (
db_handle : database_handle;
trans_handle : transaction_handle;
win_handle : window_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS;
output : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_drive_form (
user_status,
db_handle'address,
trans_handle'address,
win_handle'address,
mp_handle'address,
input,
output);
--- if user_status (1) /= 0 then error (user_status); end if;
END drive_form;
PROCEDURE fetch_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
output : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_fetch (
user_status,
db_handle'address,
trans_handle'address,
mp_handle'address,
output);
--- if user_status (1) /= 0 then error (user_status); end if;
END fetch_sub_form;
PROCEDURE insert_sub_form (
db_handle : database_handle;
trans_handle : transaction_handle;
mp_handle : map_handle;
input : SYSTEM.ADDRESS) IS
user_status : status_vector;
BEGIN
pyxis_insert (
user_status,
db_handle'address,
trans_handle'address,
mp_handle'address,
input);
--- if user_status (1) /= 0 then error (user_status); end if;
END insert_sub_form;
PROCEDURE load_form (
db_handle : database_handle;
trans_handle : transaction_handle;
frm_handle : IN OUT form_handle;
name_length : integer;
form_name : string) IS
user_status : status_vector;
BEGIN
pyxis_load_form (
user_status,
db_handle'address,
trans_handle'address,
frm_handle'address,
name_length'address,
form_name'address);
if user_status (1) /= 0 then error (user_status); end if;
END load_form;
PROCEDURE reset_form (
win_handle : window_handle) IS
user_status : status_vector;
BEGIN
pyxis_reset_form (
user_status,
win_handle'address);
--- if user_status (1) /= 0 then error (user_status); end if;
END reset_form;
END interbase;');
INSERT INTO TEMPLATES (LANGUAGE, "FILE", TEMPLATE) VALUES ('PLI', 'gds.pli',
'/*
* PROGRAM: PLI preprocessor
* MODULE: gds.pli
* DESCRIPTION: BLR constants
*
* copyright (c) 1984, 1990 by Interbase Software Corporation
*/
%REPLACE GDS_$TRUE BY 1;
%REPLACE GDS_$FALSE BY 0;
$ FORMAT BLR_FORMAT "%%REPLACE %-32s BY %d;\n
$ FORMAT DYN_FORMAT "%%REPLACE %-32s BY %d;\n
$ FORMAT SDL_FORMAT "%%REPLACE %-32s BY %d;\n
$ FORMAT ERROR_FORMAT "%%REPLACE %-32s BY %d;\n
$ FORMAT PB_FORMAT "%%REPLACE %-32s BY %d;\n
$ FORMAT PYXIS_FORMAT "%%REPLACE %-32s BY %d;\n
$ FORMAT OPT_FORMAT "%%REPLACE %-32s BY %d;\n
$ FORMAT SQL_FORMAT "%%REPLACE %-32s BY %%d;\n
$ SYMBOLS BLR DTYPE BLR_FORMAT
$ SYMBOLS BLR MECH SIGNED BLR_FORMAT
$ SYMBOLS BLR STATEMENTS BLR_FORMAT
$ SYMBOLS BLR VALUES BLR_FORMAT
$ SYMBOLS BLR BOOLEANS BLR_FORMAT
$ SYMBOLS BLR RSE BLR_FORMAT
$ SYMBOLS BLR JOIN BLR_FORMAT
$ SYMBOLS BLR AGGREGATE BLR_FORMAT
$ SYMBOLS BLR NEW BLR_FORMAT
/* Array slice description language (SDL) */
$ SYMBOLS SDL SDL SDL_FORMAT
%REPLACE dsc$k_dtype_t BY 14;
%REPLACE dsc$k_dtype_vt BY 37;
%REPLACE dsc$k_dtype_w BY 7;
%REPLACE dsc$k_dtype_l BY 8;
%REPLACE dsc$k_dtype_q BY 9;
%REPLACE dsc$k_dtype_f BY 10;
%REPLACE dsc$k_dtype_g BY 27;
%REPLACE dsc$k_dtype_adt BY 35;
%REPLACE rdb$k_dpb_cdd_pathname BY 1;
%REPLACE rdb$k_dpb_allocation BY 2;
%REPLACE rdb$k_dpb_aij BY 3;
%REPLACE rdb$k_dpb_page_size BY 4;
%REPLACE rdb$k_dpb_num_buff BY 5;
%REPLACE rdb$k_dpb_buffer_length BY 6;
%REPLACE rdb$k_dpb_debug BY 7;
%REPLACE rdb$k_dpb_garbage_collect BY 8;
%REPLACE rdb$k_dpb_verify BY 9;
%REPLACE rdb$k_dpb_sweep BY 10;
%REPLACE rdb$k_dpb_enable_journal BY 11;
%REPLACE rdb$k_dpb_disable_journal BY 12;
%REPLACE rdb$k_dpb_dbkey_scope BY 13;
%REPLACE rdb$k_dpb_number_of_users BY 14;
%REPLACE rdb$k_db_type_default BY 0;
%REPLACE rdb$k_db_type_vms BY 1;
%REPLACE rdb$k_db_type_eln BY 2;
%REPLACE rdb$k_db_type_gds BY -1;
/* Database parameter block stuff */
$ SYMBOLS DPB ITEMS PB_FORMAT
$ SYMBOLS DPB BITS PB_FORMAT
/* Bit assignments in RDB$SYSTEM_FLAG */
$ SYMBOLS RDB FLAG PB_FORMAT
/* Transaction parameter blob stuff */
$ SYMBOLS TPB ITEMS PB_FORMAT
/* Blob parameter block stuff */
$ SYMBOLS BPB ITEMS PB_FORMAT
/* Information call declarations */
/* Common, structural codes */
$ SYMBOLS INFO MECH PB_FORMAT
/* Database information items */
$ SYMBOLS INFO DB PB_FORMAT
/* Request information items */
$ SYMBOLS INFO REQUEST PB_FORMAT
/* Blob information items */
$ SYMBOLS INFO BLOB PB_FORMAT
/* Transaction information items */
$ SYMBOLS INFO TRANSACTION PB_FORMAT
/* Error codes */
$ SYMBOLS ERROR MECH ERROR_FORMAT
$ ERROR MAJOR ERROR_FORMAT
/* Minor codes subject to change */
$ ERROR MINOR ERROR_FORMAT
DECLARE GDS_$SQLCODE ENTRY(
(20) FIXED) /* status vector */
RETURNS (FIXED);
DECLARE GDS_$ATTACH_DATABASE ENTRY(
ANY VALUE, /* status vector */
FIXED BINARY (15) VALUE, /* file name length */
ANY, /* file name */
ANY, /* database handle */
FIXED BINARY (15) VALUE, /* dpb length */
ANY VALUE); /* dpb */
DECLARE GDS_$CANCEL_BLOB ENTRY(
ANY VALUE, /* status vector */
ANY); /* blob handle */
DECLARE GDS_$CANCEL_EVENTS ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY); /* id */
DECLARE GDS_$CLOSE_BLOB ENTRY(
ANY VALUE, /* status vector */
ANY); /* blob handle */
DECLARE GDS_$COMMIT_RETAINING ENTRY(
ANY VALUE, /* status vector */
ANY); /* transaction handle */
DECLARE GDS_$COMMIT_TRANSACTION ENTRY(
ANY VALUE, /* status vector */
ANY); /* transaction handle */
DECLARE GDS_$COMPILE_REQUEST ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* request handle */
FIXED BINARY (15) VALUE, /* blr length */
ANY); /* blr */
DECLARE GDS_$COMPILE_REQUEST2 ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* request handle */
FIXED BINARY (15) VALUE, /* blr length */
ANY); /* blr */
DECLARE GDS_$CREATE_BLOB ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* blob handle */
(2) FIXED); /* blob id */
DECLARE GDS_$CREATE_BLOB2 ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* blob handle */
(2) FIXED, /* blob id */
FIXED BINARY (15) VALUE, /* blob parameter block length */
ANY); /* blob parameter block */
DECLARE GDS_$CREATE_DATABASE ENTRY(
ANY VALUE, /* status vector */
FIXED BINARY (15) VALUE, /* file name length */
ANY, /* file name */
ANY, /* database handle */
FIXED BINARY (15) VALUE, /* dpb length */
ANY VALUE, /* dpb */
FIXED BINARY (15) VALUE); /* database type */
DECLARE GDS_$DDL ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* transaction handle */
FIXED BINARY (15) VALUE, /* mblr length */
ANY); /* mblr */
DECLARE GDS_$DETACH_DATABASE ENTRY(
ANY VALUE, /* status vector */
ANY); /* database handle */
DECLARE GDS_$DROP_DATABASE ENTRY(
ANY VALUE, /* status vector */
FIXED BINARY (15) VALUE, /* file name length */
ANY, /* file name */
FIXED BINARY (15) VALUE); /* database type */
DECLARE GDS_$EVENT_WAIT ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* length */
ANY, /* events */
ANY); /* buffer */
DECLARE GDS_$GET_SEGMENT ENTRY(
ANY VALUE, /* status vector */
ANY, /* blob handle */
ANY, /* segment length */
FIXED BINARY (15) VALUE, /* buffer length */
ANY) /* buffer */
RETURNS (FIXED);
DECLARE GDS_$GET_SLICE ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* array (blob) id */
FIXED BINARY (15), /* sdl length */
ANY, /* sdl */
FIXED BINARY (15), /* parameter length */
ANY, /* parameter */
FIXED BINARY (31), /* slice length */
ANY, /* slice */
FIXED BINARY (31)); /* return length */
DECLARE GDS_$OPEN_BLOB ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* blob handle */
(2) FIXED); /* blob id */
DECLARE GDS_$OPEN_BLOB2 ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* blob handle */
(2) FIXED, /* blob id */
FIXED BINARY (15), /* blob parameter block length */
ANY); /* blob parameter block */
DECLARE GDS_$PREPARE_TRANSACTION ENTRY(
ANY VALUE, /* status vector */
ANY); /* transaction handle */
DECLARE GDS_$PREPARE_TRANSACTION2 ENTRY(
ANY VALUE, /* status vector */
ANY, /* transaction handle */
FIXED BINARY (15),
ANY);
DECLARE GDS_$PUT_SEGMENT ENTRY(
ANY VALUE, /* status vector */
ANY, /* blob handle */
FIXED BINARY (15) VALUE, /* buffer length */
ANY) /* buffer */
RETURNS (FIXED);
DECLARE GDS_$PUT_SLICE ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* array (blob) id */
FIXED BINARY (15), /* sdl length */
ANY, /* sdl */
FIXED BINARY (15), /* parameter length */
ANY, /* parameter */
FIXED BINARY (31), /* slice length */
ANY); /* slice */
DECLARE GDS_$QUE_EVENTS ENTRY(
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* id */
ANY, /* length */
ANY, /* events */
ANY, /* ast */
ANY); /* arg */
DECLARE GDS_$RECEIVE ENTRY(
ANY VALUE, /* status vector */
ANY, /* request handle */
FIXED BINARY (15) VALUE, /* message type */
FIXED BINARY (15) VALUE, /* message length */
PTR VALUE, /* message */
FIXED BINARY (15) VALUE); /* instantiation */
DECLARE GDS_$RELEASE_REQUEST ENTRY(
ANY VALUE, /* status vector */
ANY); /* request handle */
DECLARE GDS_$ROLLBACK_TRANSACTION ENTRY(
ANY VALUE, /* status vector */
ANY); /* transaction handle */
DECLARE GDS_$SEND ENTRY(
ANY VALUE, /* status vector */
ANY, /* request handle */
FIXED BINARY (15) VALUE, /* message type */
FIXED BINARY (15) VALUE, /* message length */
ANY, /* message */
FIXED BINARY (15) VALUE); /* instantiation */
DECLARE GDS_$SET_DEBUG ENTRY(
FIXED BINARY (15) VALUE);
DECLARE GDS_$START_AND_SEND ENTRY(
ANY VALUE, /* status vector */
ANY, /* request handle */
ANY, /* transaction handle */
FIXED BINARY (15) VALUE, /* message type */
FIXED BINARY (15) VALUE, /* message length */
ANY, /* message */
FIXED BINARY (15) VALUE); /* instantiation */
DECLARE GDS_$START_REQUEST ENTRY(
ANY VALUE, /* status vector */
ANY, /* request handle */
ANY, /* transaction handle */
FIXED BINARY (15) VALUE); /* instantiation */
DECLARE GDS_$START_MULTIPLE ENTRY(
ANY VALUE, /* status vector */
ANY, /* transaction handle */
FIXED BINARY (15) VALUE, /* transaction count */
ANY); /* teb */
DECLARE GDS_$START_TRANSACTION ENTRY(
ANY VALUE, /* status vector */
ANY, /* transaction handle */
FIXED BINARY (15) VALUE, /* transaction count */
ANY VALUE, /* database handle */
FIXED BINARY (15) VALUE, /* tpb length */
ANY VALUE) /* tpb */
OPTIONS (VARIABLE);
DECLARE GDS_$STATUS_AND_STOP ENTRY(
ANY VALUE); /* status vector */
DECLARE GDS_$UNWIND_REQUEST ENTRY(
ANY VALUE, /* status vector */
ANY, /* request handle */
FIXED BINARY (15) VALUE); /* instantiation */
DECLARE gds_$print_status ENTRY(
(20) FIXED); /* status vector */
DECLARE gds_$encode_date ENTRY(
ANY, /* time record */
(2) FIXED); /* date */
DECLARE gds_$decode_date ENTRY(
(2) FIXED, /* date */
ANY); /* time record */
DECLARE blob_$display ENTRY (
(2) FIXED, /* blob_id*/
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* field name */
ANY); /* name_length */
DECLARE blob_$dump ENTRY (
(2) FIXED, /* blob_id*/
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* file name */
ANY); /* name_length */
DECLARE blob_$edit ENTRY (
(2) FIXED, /* blob_id*/
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* field name */
ANY); /* name_length */
DECLARE blob_$load ENTRY (
(2) FIXED, /* blob_id*/
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* file name */
ANY); /* name_length */
/* Dynamic SQL datatypes */
%REPLACE SQL_TEXT BY 452;
%REPLACE SQL_VARYING BY 448;
%REPLACE SQL_SHORT BY 500;
%REPLACE SQL_LONG BY 496;
%REPLACE SQL_FLOAT BY 482;
%REPLACE SQL_DOUBLE BY 480;
%REPLACE SQL_DATE BY 510;
%REPLACE SQL_BLOB BY 520;
/* Dynamic SQL DECLAREs */
DECLARE gds_$close ENTRY (
ANY VALUE, /* status vector */
ANY /* cursor_name */
);
DECLARE gds_$declare ENTRY (
ANY VALUE, /* status vector */
ANY, /* statement_name */
ANY /* cursor_name */
);
DECLARE gds_$describe ENTRY (
ANY VALUE, /* status vector */
ANY, /* statement_name */
ANY /* descriptor */
);
DECLARE gds_$dsql_finish ENTRY (
ANY /* db_handle */
);
DECLARE gds_$execute ENTRY (
ANY VALUE, /* status vector */
ANY, /* trans_handle */
ANY, /* statement_name */
ANY /* descriptor */
);
DECLARE gds_$execute_immediate ENTRY (
ANY VALUE, /* status vector */
ANY, /* db_handle */
ANY, /* trans_handle */
ANY, /* string_length */
ANY /* string */
);
DECLARE gds_$fetch ENTRY (
ANY VALUE, /* status vector */
ANY, /* cursor_name */
ANY /* descriptor */
) RETURNS (FIXED);
DECLARE gds_$open ENTRY (
ANY VALUE, /* status vector */
ANY, /* trans_handle */
ANY, /* cursor_name */
ANY /* descriptor */
);
DECLARE gds_$prepare ENTRY (
ANY VALUE, /* status vector */
ANY, /* db_handle */
ANY, /* trans_handle */
ANY, /* statement_name */
ANY, /* string_length */
ANY, /* string */
ANY /* descriptor */
);
/* Forms Package definitions */
/* Map definition block definitions */
$ SYMBOLS PYXIS MAP PYXIS_FORMAT
/* Field option flags for display options */
$ SYMBOLS PYXIS DISPLAY OPT_FORMAT
/* Field option values following display */
$ SYMBOLS PYXIS VALUE OPT_FORMAT
/* Pseudo key definitions */
$ SYMBOLS PYXIS KEY OPT_FORMAT
/* Menu definition stuff */
$ SYMBOLS PYXIS MENU PYXIS_FORMAT
DECLARE pyxis_$compile_map ENTRY (
ANY VALUE, /* status vector */
ANY, /* form handle */
ANY, /* map handle */
FIXED BINARY (15), /* length */
ANY /* map handle */
);
DECLARE pyxis_$compile_sub_map ENTRY (
ANY VALUE, /* status vector */
ANY, /* form handle */
ANY, /* map handle */
FIXED BINARY (15), /* length */
ANY /* map */
);
DECLARE pyxis_$create_window ENTRY (
ANY, /* window handle */
FIXED BINARY (15), /* length */
ANY, /* file_name */
FIXED BINARY (15), /* width */
FIXED BINARY (15) /* height */
);
DECLARE pyxis_$delete_window ENTRY (
ANY /* window handle */
);
DECLARE pyxis_$drive_form ENTRY (
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* window handle */
ANY, /* map handle */
ANY, /* input */
ANY /* output */
);
DECLARE pyxis_$fetch ENTRY (
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* map handle */
ANY /* output */
);
DECLARE pyxis_$insert ENTRY (
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* map handle */
ANY /* intput */
);
DECLARE pyxis_$load_form ENTRY (
ANY VALUE, /* status vector */
ANY, /* database handle */
ANY, /* transaction handle */
ANY, /* form handle */
ANY, /* map handle */
ANY /* form_name */
);
DECLARE pyxis_$menu ENTRY (
ANY, /* window handle */
ANY, /* menu handle */
FIXED BINARY (15), /* length */
ANY /* menu */
) RETURNS (FIXED BINARY (15));
DECLARE pyxis_$pop_window ENTRY (
ANY /* window handle */
);
DECLARE pyxis_$reset_form ENTRY (
ANY VALUE, /* status vector */
ANY /* window handle */
);
DECLARE pyxis_$drive_menu ENTRY (
ANY, /* window_handle */
ANY, /* menu_handle */
FIXED BINARY (15), /* blr_length */
ANY, /* blr_source */
FIXED BINARY (15), /* title_length */
ANY, /* title */
FIXED BINARY (15), /* terminator */
FIXED BINARY (15), /* entree_length */
ANY, /* entree_text */
ANY /* entree_value */
);
DECLARE pyxis_$get_entree ENTRY (
ANY, /* menu_handle */
FIXED BINARY (15), /* entree_length */
ANY, /* entree_text */
ANY, /* entree_value */
FIXED BINARY (15) /* entree_end */
);
DECLARE pyxis_$initialize_menu ENTRY (
ANY /* menu_handle */
);
DECLARE pyxis_$put_entree ENTRY (
ANY, /* menu_handle */
FIXED BINARY (15), /* entree_length */
ANY, /* entree_text */
ANY /* entree_value */
);
');
INSERT INTO TEMPLATES (LANGUAGE, "FILE", TEMPLATE) VALUES ('BASIC', 'gds.bas',
'
!*
!* PROGRAM: BASIC preprocessor
!* MODULE: gds.bas
!* DESCRIPTION: BLR constants
!*
!* copyright (c) 1984, 1990 by Interbase Software Corporation
!*
! Error codes
$ FORMAT ERROR_FORMAT " DECLARE LONG CONSTANT %-32s= %d\n
$ FORMAT PB_FORMAT " DECLARE BYTE CONSTANT %-32s= %d\n
$ FORMAT OPT_FORMAT " DECLARE WORD CONSTANT %-32s= %d\n
$ SYMBOLS ERROR MECH ERROR_FORMAT
$ ERROR MAJOR ERROR_FORMAT
! Minor codes subject to change
$ ERROR MINOR ERROR_FORMAT
! Database parameter block stuff
$ SYMBOLS DPB ITEMS PB_FORMAT
$ SYMBOLS DPB BITS PB_FORMAT
! Bit assignments in RDB$SYSTEM_FLAG
$ SYMBOLS RDB FLAG PB_FORMAT
! Transaction parameter blob stuff
$ SYMBOLS TPB ITEMS PB_FORMAT
! Blob Parameter Block
$ SYMBOLS BPB ITEMS PB_FORMAT
! Information call declarations
! Common, structural codes
$ SYMBOLS INFO MECH PB_FORMAT
! Database information items
$ SYMBOLS INFO DB PB_FORMAT
! Request information items
$ SYMBOLS INFO REQUEST PB_FORMAT
! Blob information items
$ SYMBOLS INFO BLOB PB_FORMAT
! Transaction information items
$ SYMBOLS INFO TRANSACTION PB_FORMAT
! Dynamic SQL datatypes
$ SYMBOLS SQL DTYPE OPT_FORMAT
! Forms Package definitions
! Map definition block definitions
$ SYMBOLS PYXIS MAP PB_FORMAT
! Field option flags for display options
$ SYMBOLS PYXIS DISPLAY OPT_FORMAT
! Field option values following display
$ SYMBOLS PYXIS VALUE OPT_FORMAT
! Pseudo key definitions
$ SYMBOLS PYXIS KEY OPT_FORMAT
! Menu definition stuff
$ SYMBOLS PYXIS MENU PB_FORMAT
EXTERNAL LONG FUNCTION GDS_$SQLCODE BY REF
EXTERNAL SUB GDS_$ATTACH_DATABASE BY REF
EXTERNAL SUB GDS_$CANCEL_BLOB BY REF
EXTERNAL SUB GDS_$CANCEL_EVENTS BY REF
EXTERNAL SUB GDS_$CLOSE_BLOB BY REF
EXTERNAL SUB GDS_$COMMIT_RETAINING BY REF
EXTERNAL SUB GDS_$COMMIT_TRANSACTION BY REF
EXTERNAL SUB GDS_$COMPILE_REQUEST BY REF
EXTERNAL SUB GDS_$CREATE_BLOB BY REF
EXTERNAL SUB GDS_$CREATE_BLOB2 BY REF
EXTERNAL SUB GDS_$CREATE_DATABASE BY REF
EXTERNAL SUB GDS_$DETACH_DATABASE BY REF
EXTERNAL SUB GDS_EVENT_WAIT BY REF
EXTERNAL LONG FUNCTION GDS_$GET_SEGMENT BY REF
EXTERNAL SUB GDS_$OPEN_BLOB BY REF
EXTERNAL SUB GDS_$OPEN_BLOB2 BY REF
EXTERNAL SUB GDS_$PREPARE_TRANSACTION BY REF
EXTERNAL SUB GDS_$PREPARE_TRANSACTION2 BY REF
EXTERNAL LONG FUNCTION GDS_$PUT_SEGMENT BY REF
EXTERNAL SUB GDS_$QUE_EVENTS BY REF
EXTERNAL SUB GDS_$RECEIVE BY REF
EXTERNAL SUB GDS_$RELEASE_REQUEST BY REF
EXTERNAL SUB GDS_$ROLLBACK_TRANSACTION BY REF
EXTERNAL SUB GDS_$SEND BY REF
EXTERNAL SUB gds_$set_debug BY REF
EXTERNAL SUB GDS_$START_AND_SEND BY REF
EXTERNAL SUB GDS_$START_REQUEST BY REF
EXTERNAL SUB GDS_$START_MULTIPLE BY REF
EXTERNAL SUB GDS_$START_TRANSACTION BY REF
EXTERNAL SUB GDS_$UNWIND_REQUEST BY REF
EXTERNAL SUB gds_$print_status BY REF
EXTERNAL SUB gds_$encode_date BY REF
EXTERNAL SUB gds_$decode_date BY REF
EXTERNAL SUB blob_$display BY REF
EXTERNAL SUB blob_$dump BY REF
EXTERNAL SUB blob_$edit BY REF
EXTERNAL SUB blob_$load BY REF
EXTERNAL SUB gds_$close BY REF
EXTERNAL SUB gds_$declare BY REF
EXTERNAL SUB gds_$describe BY REF
EXTERNAL SUB gds_$dsql_finish BY REF
EXTERNAL SUB gds_$execute BY REF
EXTERNAL SUB gds_$execute_immediate BY REF
EXTERNAL LONG FUNCTION gds_$fetch BY REF
EXTERNAL SUB gds_$open BY REF
EXTERNAL SUB gds_$prepare BY REF
EXTERNAL SUB gds_$event_counts BY REF
EXTERNAL SUB gds_$event_block BY REF
EXTERNAL SUB gds_$get_slice BY REF
EXTERNAL SUB gds_$put_slice BY REF
EXTERNAL SUB gds_$seek_blob BY REF
EXTERNAL SUB gds_$ddl BY REF
EXTERNAL SUB pyxis_$compile_map BY REF
EXTERNAL SUB pyxis_$compile_sub_map BY REF
EXTERNAL SUB pyxis_$create_window BY REF
EXTERNAL SUB pyxis_$delete_window BY REF
EXTERNAL SUB pyxis_$drive_form BY REF
EXTERNAL SUB pyxis_$fetch BY REF
EXTERNAL SUB pyxis_$insert BY REF
EXTERNAL SUB pyxis_$load_form BY REF
EXTERNAL WORD FUNCTION pyxis_$menu BY REF
EXTERNAL SUB pyxis_$pop_window BY REF
EXTERNAL SUB pyxis_$reset_form BY REF
EXTERNAL SUB pyxis_$drive_menu BY REF
EXTERNAL SUB pyxis_$initialize_menu BY REF
EXTERNAL SUB pyxis_$get_entree BY REF
EXTERNAL SUB pyxis_$put_entree BY REF
');
COMMIT WORK;