#include "dk3all.h" $!trace-include static int traverse_database(void *obj, dk3_datum_t *key, dk3_datum_t *val) { int *iptr; iptr = (int *)obj; *iptr += 1; return 1; } static void count_elements(dk3_dbi_t *dbi, dk3_app_t *app) { int nelem = 0; dk3dbi_traverse(dbi, (void *)(&nelem), traverse_database); printf("Elements: %d\n", nelem); } static dkChar const keyname[] = { dkT("Test2") }; static dkChar const otherkey[] = { dkT("Test") }; static void run_for(dkChar const *dbname, dk3_app_t *app) { dkChar buffer[1024]; int ec = 0; dk3_dbi_t *dbi; $? "+ run_for \"%s\"", dbname dbi = dk3dbi_open_app( dbname, DK3_DB_TYPE_UNKNOWN, 0, &ec, app ); if(dbi) { count_elements(dbi, app); dk3dbi_delete_string(dbi, keyname); count_elements(dbi, app); if(dk3dbi_get_string(dbi, otherkey, buffer, DK3_SIZEOF(buffer,dkChar))) { printf("Test=\"%s\"\n", buffer); } dk3dbi_close(dbi); } $? "- run_for" } static dkChar const gn[] = { "test" }; DK3_MAIN { dk3_app_t *app; dkChar const * const *xargv; int xargc; $!trace-init test-dbi.deb $? "+ main" app = dk3app_open_command(argc, (dkChar const * const *)argv, gn); if(app) { xargc = dk3app_get_argc(app); xargv = dk3app_get_argv(app); if(xargc > 1) { run_for(xargv[1], app); } dk3app_close(app); } $? "- main" $!trace-end exit(0); }