Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/01/08 14:43:10 (16 years ago)
Author:
gkronber
Message:

worked on #211 (Full operator-graphs are stored multiple times in the database even though most of it is static anyway)

  • created a new type of operator library that is connected to the CEDMA db and a view for it
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.CEDMA.DB/Database.cs

    r416 r417  
    6565            }
    6666            using(DbCommand cmd = cnn.CreateCommand()) {
    67               cmd.CommandText = "CREATE TABLE Operator (ID integer primary key autoincrement, Name text, RawData text)";
     67              cmd.CommandText = "CREATE TABLE Operator (ID integer primary key autoincrement, Name text, RawData Blob)";
    6868              cmd.Transaction = t;
    6969              cmd.ExecuteNonQuery();
     
    200200    }
    201201
    202     public long InsertOperator(string name, string rawData) {
     202    public long InsertOperator(string name, byte[] rawData) {
    203203      rwLock.EnterWriteLock();
    204204      try {
     
    230230    #endregion
    231231
    232     #region update agent/run
     232    #region update agent, run, operator
    233233    public void UpdateAgent(long id, string name) {
    234234      rwLock.EnterWriteLock();
     
    312312    }
    313313
     314    public void UpdateOperator(long id, string name, byte[] rawData) {
     315      rwLock.EnterWriteLock();
     316      try {
     317        using(SQLiteConnection cnn = new SQLiteConnection(connectionString)) {
     318          cnn.Open();
     319          using(SQLiteTransaction t = cnn.BeginTransaction()) {
     320            using(SQLiteCommand c = cnn.CreateCommand()) {
     321              c.Transaction = t;
     322              c.CommandText = "Update Operator set Name=@Name, RawData=@RawData where id=@Id";
     323              DbParameter rawDataParam = c.CreateParameter();
     324              DbParameter nameParam = c.CreateParameter();
     325              DbParameter idParam = c.CreateParameter();
     326              rawDataParam.ParameterName = "@RawData";
     327              rawDataParam.Value = rawData;
     328              idParam.ParameterName = "@Id";
     329              idParam.Value = id;
     330              nameParam.ParameterName = "@Name";
     331              nameParam.Value = name;
     332              c.Parameters.Add(rawDataParam);
     333              c.Parameters.Add(nameParam);
     334              c.Parameters.Add(idParam);
     335              c.ExecuteNonQuery();
     336            }
     337            t.Commit();
     338          }
     339        }
     340      } finally {
     341        rwLock.ExitWriteLock();
     342      }
     343    }
     344
    314345    #endregion
    315346
    316     #region get agent/result/sub-result
     347    #region get agent/result/sub-result/operator
    317348
    318349    public ICollection<AgentEntry> GetAgents(ProcessStatus status) {
     
    481512                op.Id = r.GetInt32(0);
    482513                op.Name = r.IsDBNull(1) ? "-" : r.GetString(1);
    483                 op.RawData = r.GetString(2);
     514                op.RawData = (byte[])r.GetValue(2);
    484515                operators.Add(op);
    485516              }
     
    491522      }
    492523      return operators;
     524    }
     525    #endregion
     526
     527    #region delete operator
     528    public void DeleteOperator(long id) {
     529      rwLock.EnterWriteLock();
     530      try {
     531        using(DbConnection cnn = new SQLiteConnection(connectionString)) {
     532          cnn.Open();
     533          using(DbTransaction t = cnn.BeginTransaction()) {
     534            using(DbCommand c = cnn.CreateCommand()) {
     535              c.Transaction = t;
     536              c.CommandText = "Delete from Operator where id=@Id";
     537              DbParameter idParam = c.CreateParameter();
     538              idParam.ParameterName = "@Id";
     539              idParam.Value = id;
     540              c.Parameters.Add(idParam);
     541              c.ExecuteNonQuery();
     542            }
     543            t.Commit();
     544          }
     545        }
     546      } finally {
     547        rwLock.ExitWriteLock();
     548      }
    493549    }
    494550    #endregion
Note: See TracChangeset for help on using the changeset viewer.