Index: /trunk/MagicSoft/Mars/msql/MSQLServer.cc
===================================================================
--- /trunk/MagicSoft/Mars/msql/MSQLServer.cc	(revision 4513)
+++ /trunk/MagicSoft/Mars/msql/MSQLServer.cc	(revision 4514)
@@ -460,6 +460,25 @@
 }
 
+Bool_t MSQLServer::IsConnected() const
+{
+    return fType==kIsServer ? fServ->IsConnected() : kFALSE;
+}
+
+const char *MSQLServer::GetName() const
+{
+    switch (fType)
+    {
+    case kIsServer:   return Form("%s://%s:%d", fServ->GetDBMS(), fServ->GetHost(), fServ->GetPort());
+    case kIsDataBase: return GetNameDataBase();
+    case kIsTable:    return GetNameTable();
+    case kIsColumn:   return GetNameColumn();
+    default:          return "n/a";
+    }
+}
+
 void MSQLServer::Init(const char *connection, const char *user, const char *password) /*FOLD00*/
 {
+    fType = kIsZombie;
+
     fServ = TSQLServer::Connect(connection, user, password);
     if (fServ)
@@ -469,5 +488,5 @@
     }
     else
-        fType = kIsZombie;
+        SetBit(kZombie);
 
     fList.SetOwner();
@@ -479,5 +498,5 @@
 }
 
-MSQLServer::MSQLServer(const char *u) /*FOLD00*/
+MSQLServer::MSQLServer(const char *u) : fType(kIsZombie) /*FOLD00*/
 {
     TString url(u);
@@ -488,5 +507,8 @@
 
     if (pos1<0 || pos2<0 || pos3<0 || pos1>pos2 || pos2>pos3)
-        return;
+    {
+        SetBit(kZombie);
+        return;
+    }
 
     const TString user = url(pos1, pos2-pos1-1);
@@ -496,5 +518,4 @@
 
     Init(url, user, pasw);
-
 }
 
@@ -502,5 +523,6 @@
 {
     Close();
-    cout << "Delete: " << GetName() << endl;
+    if (gDebug>0)
+        cout << "Delete: " << GetName() << endl;
 }
 
Index: /trunk/MagicSoft/Mars/msql/MSQLServer.h
===================================================================
--- /trunk/MagicSoft/Mars/msql/MSQLServer.h	(revision 4513)
+++ /trunk/MagicSoft/Mars/msql/MSQLServer.h	(revision 4514)
@@ -57,20 +57,9 @@
     const char *GetNameColumn()   const { return Form("%s/%s/%s", (const char*)fDataBase, (const char*)fTable, (const char*)fColumn); }
 
-    const char *GetName() const
-    {
-        switch (fType)
-        {
-        case kIsDataBase: return GetNameDataBase();
-        case kIsTable:    return GetNameTable();
-        case kIsColumn:   return GetNameColumn();
-        default:          return "n/a";
-        }
-    }
-
     void Init(const char *connection, const char *user, const char *password);
 
 public:
     MSQLServer(TSQLServer *serv, const char *dbname=0, const char *tname=0, const char *col=0)
-        : fServ(serv), fDataBase(dbname), fTable(tname), fColumn(col)
+        : fServ(serv), fDataBase(dbname), fTable(tname), fColumn(col), fType(kIsZombie)
     {
         fList.SetOwner();
@@ -93,6 +82,7 @@
     MSQLServer(const char *connection, const char *user, const char *password);
     MSQLServer(const char *link);
+    ~MSQLServer();
 
-    ~MSQLServer();
+    const char *GetName() const;
 
     void Print(Option_t *o) const;
@@ -117,4 +107,5 @@
     Int_t       Shutdown();
     const char *ServerInfo();
+    Bool_t      IsConnected() const;
 
     TString     GetEntry(const char *where, const char *col=0, const char *table=0) const;
