Index: trunk/ippTools/src/pxadmin.c
===================================================================
--- trunk/ippTools/src/pxadmin.c	(revision 18919)
+++ trunk/ippTools/src/pxadmin.c	(revision 18927)
@@ -122,9 +122,12 @@
 
     {
-        bool status;
         char line[128], answer[128];
 
-        // XXX use the values defined in config->dbh?
-        psString dbName = psMetadataLookupStr(&status, config->modules->complete, "DBNAME");
+        psMetadataItem *name = pmConfigUserSite(config->modules, "DBNAME", PS_DATA_STRING);
+        if (!name) {
+            psError(PS_ERR_UNKNOWN, false, "Unable to determine database name.");
+            return false;
+        }
+        psString dbName = name->data.str;
 
         fprintf(stdout, "*** delete the tables from database %s? ***\n", dbName);
@@ -150,5 +153,10 @@
         sscanf(line, "%s", answer);
 
-        psString dbPassword = psMetadataLookupStr(&status, config->modules->complete, "DBPASSWORD");
+        psMetadataItem *pass = pmConfigUserSite(config->modules, "DBPASSWORD", PS_DATA_STRING);
+        if (!pass) {
+            psError(PS_ERR_UNKNOWN, false, "Unable to determine database password.");
+            return false;
+        }
+        psString dbPassword = pass->data.str;
         if (strcmp (answer, dbPassword)) {
             psError(PS_ERR_UNKNOWN, true, "invalid passwd - tables NOT deleleted");
Index: trunk/ippTools/src/pxadminConfig.c
===================================================================
--- trunk/ippTools/src/pxadminConfig.c	(revision 18919)
+++ trunk/ippTools/src/pxadminConfig.c	(revision 18927)
@@ -27,20 +27,27 @@
 #include "pxadmin.h"
 
-static void pxAdminShowDB (pxConfig *config, const char *program) {
-
-    bool status;
-
+static void pxAdminShowDB (const pxConfig *config, const char *program)
+{
     fprintf (stderr, "\nPan-STARRS DataBase Admin Tool\n\n");
     fprintf (stderr, "Usage: %s [mode]\n", program);
     fprintf (stderr, " [mode] : -create | -delete\n\n");
 
-    // XXX EAM : this should be done with psDB function calls
-    psString dbServer = psMetadataLookupStr(&status, config->modules->complete, "DBSERVER");
-    psString dbUsername = psMetadataLookupStr(&status, config->modules->complete, "DBUSER");
-    psString dbName = psMetadataLookupStr(&status, config->modules->complete, "DBNAME");
-    psS32 dbPort = psMetadataLookupS32(&status, config->modules->complete, "DBPORT");
+    psMetadataItem *server = pmConfigUserSite(config->modules, "DBSERVER",   PS_DATA_STRING);
+    psMetadataItem *user   = pmConfigUserSite(config->modules, "DBUSER",     PS_DATA_STRING);
+    psMetadataItem *name   = pmConfigUserSite(config->modules, "DBNAME",     PS_DATA_STRING);
+    psMetadataItem *port   = pmConfigUserSite(config->modules, "DBPORT",     PS_TYPE_S32);
 
-    fprintf (stderr, "connecting to %s as %s (port %d)\n", dbServer, dbUsername, dbPort);
-    fprintf (stderr, "using database %s\n\n", dbName);
+    if (!server || !user || !name) {
+        psErrorClear();
+        psWarning("Unable to determine database connection details.");
+        return;
+    }
+    if (!port) {
+        psErrorClear();
+    }
+
+    fprintf (stderr, "connecting to %s as %s (port %d)\n", server->data.str, user->data.str,
+             port ? port->data.S32 : 0);
+    fprintf (stderr, "using database %s\n\n", name->data.str);
 
     return;
