private DatabaseAdptorItem GetDatabaseAdptorItemForComponent(IComponent component, string appname, bool ismaster)
        {
            lock (p_DatabaseAdptors)
            {
                string dbtype;
                string connectstring = GetConnectStringForComponent(component, appname, ismaster, out dbtype);

                DatabaseAdptorItem a = SelectFromBuffer(dbtype, connectstring);
                if (a == null)
                {
                    IDatabaseAdptor b = CreateNewDatabaseAdptorForComponent(dbtype, connectstring);
                    if (b == null)
                    {
                        throw new NotFoundDatabaseAdptorException(component.ComponentId);
                    }
                    a = new DatabaseAdptorItem()
                    {
                        CnntString   = connectstring,
                        Adptor       = b,
                        DataSelector = new DataSelector(b)
                    };
                    p_DatabaseAdptors.Add(a);
                }
                return(a);
            }
        }
 private void UpdateToDatabase(IUpdateContext upd, IDatabaseAdptor db, IEnumerable <IUpdateContext> grouptocommit, IDataSelector dataselector)
 {
     if (!upd.SuccessUpdate)
     {
         var sql = upd.Update(db.DbTypeName);
         if (sql != null)
         {
             if (upd.UpdateDataNoty != null)
             {
                 upd.UpdateDataNoty.BeforeChange(upd, grouptocommit, dataselector);
             }
             upd.SuccessCommitToDatabase(db.CommitToDatabase(sql));
             if (upd.UpdateDataNoty != null)
             {
                 upd.UpdateDataNoty.OnChanged(upd, grouptocommit, dataselector);
             }
         }
     }
 }
示例#3
0
 public DataSelector(IDatabaseAdptor db)
 {
     p_Db = db;
 }