Index: trunk/ippTools/src/pxadminConfig.c
===================================================================
--- trunk/ippTools/src/pxadminConfig.c	(revision 18172)
+++ 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;
