📄 dbgather.h
字号:
#ifndef __dbgather_h#define __dbgather_h/* dbgather, by andru. * * gather information from a postgresql database. Wrapper to postgresql. * I would have used someone elses but i suffered from misgiving. while * gnome-db tempting i was kinda demanding speed in the speed of essense, * hmmm maybe i should support both. tricky. */#include "dbwrapper.h"#include "dbheader.h"#define DBTEXT 1#define DBCHAR 2#define DBVARCHAR 3#define DBBOOL 4#define DBDATE 5#define DBTIME 6#define DBDATETIME 7#define DBFLOAT 8#define DBINT 9typedef struct { gchar *name; gchar *typename; gint datatype; gint tableoid; /* Forign reference value, 0 is normal 1 is reference to other table, no view present 2 is reference to other table, view present by same name describing relation. 3 no field ref, dummy list value 4 direct reference to a view, no cref record present */ enum { DBNORMAL, DBREF, DBREFVIEW, DBNOREF, DBVIEW } fieldtype; /* default value that will appear when this record is created */ gchar *defaultvalue; /* what is stored in posgresql for default value */ gint defaultfunc; /* if it defaults from a function. */ gchar *tmpvalue; /* if default from function this is last value. PS dru not know what this is */ /* comment/s associated with this widget */ GList *comment; gboolean notnull; /* set to true if not-null is set on field */ DbMethodDef *method; /* Pointer to the comment callback in DbDatabaseDef->methods */ }DbFieldDef;typedef struct { gchar *name; gchar *query; gint type; gint oid; gchar *uidfield; DbFieldDef **field; gint num; /* references to other tables */ GList *cref; /* list of tables used in query if this is view */ GList *fromtable; /* list of views that make references to this table */ GList *subtable; }DbTableDef;typedef struct { gchar *name; gchar *connstr; DbTableDef **table; gint numtable; DbTableDef **view; gint numview; GList *constraints; /* Francis: Here goes new callback lists. */ GList *commentcallbacks; /* List of type DbCommentCallbackDef */ GList *methods; /* List of type DbMethodDef */ }DbDatabaseDef;extern DbDatabaseDef *globaldb;/* ============================================================================ * external code * ============================================================================*//* top level function */DbDatabaseDef *db_builddef();GList * db_getalltablenames();GList * db_getallviewnames();DbTableDef *db_findtable(gchar * table);DbFieldDef *db_findfield(DbTableDef *dt,gchar *field);gint db_getfieldposintable(DbTableDef * table, gchar * field);gint db_generalisetype(DbDatabaseDef * db);gint db_viewforthis(gchar *viewname);gint db_showallfields();gint db_checkpgresult(DbRecordSet * result);/* ============================================================================ * internal code * ============================================================================*/gint db_buildrelationdef(DbDatabaseDef * db);gint db_buildfieldinfo(DbDatabaseDef * db);void db_freetabledef(DbTableDef * tabledef);void db_freefielddef(DbFieldDef * fielddef);void db_freefielddef(DbFieldDef * db);void db_freetabledef(DbTableDef * db);gint db_freedatabasedef(DbDatabaseDef * db);/* Reference code for working out how variables relate to each other */gint db_buildsubtabledef(DbDatabaseDef * db, DbTableDef * table);gint db_extracttablesinfields(DbDatabaseDef * db, DbTableDef * table);/* support for above function */gint db_tablesourceforfield(DbDatabaseDef * db, gchar * fieldname, gint parenttableoid, gchar * parentquery);/* just fixing stuff */gint db_isview(DbDatabaseDef * db, gint tableoid, gchar ** retstr);/* treshna Enterprises was here! */DbTableDef *db_findtable(gchar * table);DbFieldDef *db_findfield(DbTableDef *dt,gchar *field);DbDatabaseDef *db_get_current_database ();#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -