123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- {*
- * grel.inc
- *
- * depends on gtypes.inc
- *}
- type
- PGTuples = ^TGTuples;
- TGTuples = record
- len : guint;
- end;
- PGRelation = pointer;
- { GRelation
- Indexed Relations. Imagine a really simple table in a
- database. Relations are not ordered. This data type is meant for
- maintaining a N-way mapping.
- g_relation_new() creates a relation with FIELDS fields
- g_relation_destroy() frees all resources
- g_tuples_destroy() frees the result of g_relation_select()
- g_relation_index() indexes relation FIELD with the provided
- equality and hash functions. this must be done before any
- calls to insert are made.
- g_relation_insert() inserts a new tuple. you are expected to
- provide the right number of fields.
- g_relation_delete() deletes all relations with KEY in FIELD
- g_relation_select() returns ...
- g_relation_count() counts ...
- }
- function g_relation_new(fields:gint):PGRelation;cdecl;external gliblib name 'g_relation_new';
- procedure g_relation_destroy(relation:PGRelation);cdecl;external gliblib name 'g_relation_destroy';
- procedure g_relation_index(relation:PGRelation; field:gint; hash_func:TGHashFunc; key_equal_func:TGEqualFunc);cdecl;external gliblib name 'g_relation_index';
- {$IFNDEF KYLIX}
- procedure g_relation_insert(relation:PGRelation; args:array of const);cdecl;overload;external gliblib name 'g_relation_insert';
- procedure g_relation_insert(relation:PGRelation);cdecl;overload;external gliblib name 'g_relation_insert';
- {$ELSE}
- procedure g_relation_insert(relation:PGRelation);varargs;cdecl;external gliblib name 'g_relation_insert';
- {$ENDIF}
- function g_relation_delete(relation:PGRelation; key:gconstpointer; field:gint):gint;cdecl;external gliblib name 'g_relation_delete';
- function g_relation_select(relation:PGRelation; key:gconstpointer; field:gint):PGTuples;cdecl;external gliblib name 'g_relation_select';
- function g_relation_count(relation:PGRelation; key:gconstpointer; field:gint):gint;cdecl;external gliblib name 'g_relation_count';
- {$IFNDEF KYLIX}
- function g_relation_exists(relation:PGRelation; args:array of const):gboolean;cdecl;overload;external gliblib name 'g_relation_exists';
- function g_relation_exists(relation:PGRelation):gboolean;cdecl;overload;external gliblib name 'g_relation_exists';
- {$ELSE}
- function g_relation_exists(relation:PGRelation):gboolean;varargs;cdecl;external gliblib name 'g_relation_exists';
- {$ENDIF}
- procedure g_relation_print(relation:PGRelation);cdecl;external gliblib name 'g_relation_print';
- procedure g_tuples_destroy(tuples:PGTuples);cdecl;external gliblib name 'g_tuples_destroy';
- function g_tuples_index(tuples:PGTuples; index:gint; field:gint):gpointer;cdecl;external gliblib name 'g_tuples_index';
|