[chronojump] Delete set, person or sessions delete triggers. Need tests!



commit e7a9b8b3d77305bcdfd31c80832afd72b17f1f45
Author: Xavier de Blas <xaviblas gmail com>
Date:   Tue Apr 25 12:20:20 2017 +0200

    Delete set, person or sessions delete triggers. Need tests!

 src/gui/encoder.cs          |    3 +++
 src/sqlite/personSession.cs |    4 ++++
 src/sqlite/session.cs       |    3 +++
 src/sqlite/trigger.cs       |   17 +++++++++++++++--
 4 files changed, 25 insertions(+), 2 deletions(-)
---
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index 3e9efac..ac9d936 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -1600,6 +1600,9 @@ public partial class ChronoJumpWindow
                //delete related records from encoderSignalCurve table
                Sqlite.DeleteSelectingField(false, Constants.EncoderSignalCurveTable, 
                                "signalID", signalID.ToString());
+
+               //delete related triggers
+               SqliteTrigger.DeleteByModeID(false, signalID);
        }
        
        void on_button_encoder_export_all_curves_clicked (object o, EventArgs args) 
diff --git a/src/sqlite/personSession.cs b/src/sqlite/personSession.cs
index 34fb3ff..d08d6d1 100644
--- a/src/sqlite/personSession.cs
+++ b/src/sqlite/personSession.cs
@@ -443,7 +443,11 @@ class SqlitePersonSession : Sqlite
                        */
                        Sqlite.Delete(true, Constants.EncoderTable, Convert.ToInt32(eSQL.uniqueID));
                        SqliteEncoder.DeleteSignalCurveWithCurveID(true, Convert.ToInt32(eSQL.uniqueID));
+
+                       //delete related triggers
+                       SqliteTrigger.DeleteByModeID(true, Convert.ToInt32(eSQL.uniqueID));
                }
+
                                
                
                //4.- TODO: delete videos
diff --git a/src/sqlite/session.cs b/src/sqlite/session.cs
index aa07234..8c390e2 100644
--- a/src/sqlite/session.cs
+++ b/src/sqlite/session.cs
@@ -858,6 +858,9 @@ class SqliteSession : Sqlite
                        */
                        Sqlite.Delete(true, Constants.EncoderTable, Convert.ToInt32(eSQL.uniqueID));
                        SqliteEncoder.DeleteSignalCurveWithCurveID(true, Convert.ToInt32(eSQL.uniqueID));
+
+                       //delete related triggers
+                       SqliteTrigger.DeleteByModeID(true, Convert.ToInt32(eSQL.uniqueID));
                }
                
                //<------- delete from encoder end
diff --git a/src/sqlite/trigger.cs b/src/sqlite/trigger.cs
index 9cf1bf8..395d5f0 100644
--- a/src/sqlite/trigger.cs
+++ b/src/sqlite/trigger.cs
@@ -100,7 +100,20 @@ class SqliteTrigger : Sqlite
                
                closeIfNeeded(dbconOpened);
        }
-       
+
+       //on mode == ENCODER, modeID is encoder.uniqueID
+       public static void DeleteByModeID(bool dbconOpened, int modeID)
+       {
+               openIfNeeded(dbconOpened);
+
+               dbcmd.CommandText = "Delete FROM " + table + " WHERE modeID = " + modeID;
+               LogB.SQL(dbcmd.CommandText.ToString());
+               dbcmd.ExecuteNonQuery();
+
+               closeIfNeeded(dbconOpened);
+       }
+
+       /*
        public static void Delete(bool dbconOpened, Trigger trigger)
        {
                openIfNeeded(dbconOpened);
@@ -111,6 +124,6 @@ class SqliteTrigger : Sqlite
                
                closeIfNeeded(dbconOpened);
        }
-
+       */
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]