Ignore:
Timestamp:
04/25/13 14:32:54 (11 years ago)
Author:
tbretz
Message:
Support more than one MTreeSQL per database connection.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Mars/msql/MSQLServer.cc

    r15439 r15440  
    447447        if (TestBit(kIsOwner))
    448448        {
    449             if (fTree)
    450                 delete fTree;
     449            fTrees.Delete();
    451450
    452451            delete fServ;
     
    626625        fType = kIsZombie;
    627626
    628     fTree = 0;
    629627    fList.SetOwner();
    630628}
     
    720718{
    721719    fServ = serv.fServ;
    722     fTree = 0;
    723720
    724721    fDataBase = serv.fDataBase;
     
    881878}
    882879
    883 MTreeSQL *MSQLServer::GetTree(const char *table, const char *addon)
     880MTreeSQL *MSQLServer::GetTree(TString table, TString addon)
    884881{
    885882    if (fType!=kIsServer || !fServ || !TestBit(kIsOwner))
    886883        return 0;
    887884
    888     if (!fTree)
    889         fTree = new MTreeSQL(this, table, addon);
    890 
    891     return fTree;
     885    TIter Next(&fTrees);
     886    TObject *o = 0;
     887    while ((o=Next()))
     888    {
     889        if (o->GetName()==table && o->GetName()==addon)
     890            return (MTreeSQL*)o;
     891    }
     892
     893    MTreeSQL *t = new MTreeSQL(this, table, addon);
     894    fTrees.Add(t);
     895
     896    return t;
    892897}
    893898
Note: See TracChangeset for help on using the changeset viewer.