]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/cats/myingres.h
Add commit from Stefan Reddig
[bacula/bacula] / bacula / src / cats / myingres.h
1 # include "/opt/Ingres/IngresII/ingres/files/eqdefc.h"
2 #ifndef _MYINGRES_SH
3 #define _MYINGRES_SH
4 # include "/opt/Ingres/IngresII/ingres/files/eqsqlda.h"
5 /* ---typedefs--- */
6 typedef struct ing_field {
7    char          name[34];
8    int           max_length;
9    unsigned int  type;
10    unsigned int  flags;       // 1 == not null
11 } INGRES_FIELD;
12 typedef struct ing_row {
13     IISQLVAR *sqlvar;           /* ptr to sqlvar[sqld] for one row */
14     struct ing_row *next;
15     int row_number;
16 } ING_ROW;
17 typedef enum ing_status {
18     ING_COMMAND_OK,
19     ING_TUPLES_OK,
20     ING_NO_RESULT,
21     ING_NO_ROWS_PROCESSED,
22     ING_EMPTY_RESULT,
23     ING_ERROR
24 } ING_STATUS;
25 typedef struct ing_varchar {
26     short len;
27     char* value;
28 } ING_VARCHAR;
29 /* It seems, Bacula needs the complete query result stored in one data structure */
30 typedef struct ing_result {
31     IISQLDA *sqlda;             /* descriptor */
32     INGRES_FIELD *fields;
33     int num_rows;
34     int num_fields;
35     ING_STATUS status;
36     ING_ROW *first_row;
37     ING_ROW *act_row;           /* just for iterating */
38     char numrowstring[10];
39 } INGresult;
40 typedef struct ing_conn {
41     char dbname[24];
42     char user[32];
43     char password[32];
44     char connection_name[32];
45     int session_id;    
46 } INGconn;
47 /* ---Prototypes--- */
48 int     INGcheck();
49 ING_STATUS      INGresultStatus(INGresult *res);
50 short   INGgetCols(const char *stmt);
51 IISQLDA *INGgetDescriptor(short numCols, const char *stmt);
52 void    INGfreeDescriptor(IISQLDA *sqlda);
53 int     INGgetTypeSize(IISQLVAR *ingvar);
54 INGresult       *INGgetINGresult(IISQLDA *sqlda);
55 void    INGfreeINGresult(INGresult *ing_res);
56 ING_ROW *INGgetRowSpace(INGresult *ing_res);
57 void    INGfreeRowSpace(ING_ROW *row, IISQLDA *sqlda);
58 int     INGfetchAll(const char *stmt, INGresult *ing_res);
59 void    INGrowSeek(INGresult *res, int row_number);
60 char    *INGgetvalue(INGresult *res, int row_number, int column_number);
61 int     INGgetisnull(INGresult *res, int row_number, int column_number);
62 int     INGntuples(const INGresult *res);
63 int     INGnfields(const INGresult *res);
64 char    *INGfname(const INGresult *res, int column_number);
65 short   INGftype(const INGresult *res, int column_number);
66 INGresult       *INGexec(INGconn *db, const char *query);
67 void    INGclear(INGresult *res);
68 INGconn *INGconnectDB(char *dbname, char *user, char *passwd);
69 void    INGdisconnectDB(INGconn *dbconn);
70 char    *INGerrorMessage(const INGconn *conn);
71 char    *INGcmdTuples(INGresult *res);
72 #endif /* _MYINGRES_SH */