LIB_EXPORT rc_t CC KDBManagerOpenDBUpdate ( KDBManager *self, KDatabase **db, const char *path, ... ) { rc_t rc; va_list args; va_start ( args, path ); rc = KDBManagerVOpenDBUpdate ( self, db, path, args ); va_end ( args ); return rc; }
/* OpenDBUpdate * VOpenDBUpdate * open a database for read/write * * "db" [ OUT ] - return parameter for newly opened database * * "schema" [ IN, NULL OKAY ] - schema object containg database * declaration to be used in creating db [ needed by manager ]. * * "path" [ IN ] - NUL terminated string in * wd-native character set giving path to database */ LIB_EXPORT rc_t CC VDBManagerVOpenDBUpdate ( VDBManager *self, VDatabase **dbp, const VSchema *schema, const char *path, va_list args ) { rc_t rc; if ( dbp == NULL ) rc = RC ( rcVDB, rcMgr, rcOpening, rcParam, rcNull ); else { if ( self == NULL ) rc = RC ( rcVDB, rcMgr, rcOpening, rcSelf, rcNull ); else { if ( schema == NULL ) schema = self -> schema; rc = VDatabaseMake ( dbp, self, NULL, schema ); if ( rc == 0 ) { VDatabase *db = * dbp; rc = KDBManagerVOpenDBUpdate ( self -> kmgr, & db -> kdb, path, args ); if ( rc == 0 ) { rc = VDatabaseOpenUpdate ( db, NULL ); if ( rc == 0 ) return 0; } VDatabaseWhack ( db ); } } * dbp = NULL; } return rc; }