Using Bond Db
The base part of bonddb is the 'Object' structure. This would typically
contain an sql select query of some kind. Using this object you can then
navigate rows by using the db_moveto(...) function. You can also set and get
values of specific fields in the Object based upon what row you are on.
You normally don't need to use SQL statements to get 'Objects', there is a host
of functions already provided for creating objects based on commonly
requested queries. An example of this would be db_loadall or
db_loadobjectbyobject etc. Bonddb looks after the relationship information
so you don't have to specify the joins. Its a good idea to have all your
constraints defined in your database.
Another useful feature of bonddb is been able to link objects together so
one object can contain many sub objects which are automatically updated
based on the parent. dbmapme.c provides a lot of this functionality. The
overall logging system will also update all objects you have currently
loaded if there contents changes to the database side. This is useful if you are
doing a lot of requests at the same time and you dont want to have to
manually refresh your recordsets everytime you do a write.
dbgather.c and associate functions can provide your application with
information regarding the backend database like what fields exist in what
tables, what constraints exist etc. If your writting a generic interface to
postgresql these functions can prove most useful.
Finally, dbtest.c offers a great amount of example code. Its a great way to
become familiar with the API.