[chronojump] Less open/close db after jump
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Less open/close db after jump
- Date: Mon, 11 Nov 2013 13:00:24 +0000 (UTC)
commit b8412ea1e7184b8b391ccee45bf8b02d6c1f1625
Author: Xavier de Blas <xaviblas gmail com>
Date: Mon Nov 11 13:58:43 2013 +0100
Less open/close db after jump
src/exportSession.cs | 2 +-
src/gui/chronojump.cs | 3 ++-
src/gui/eventExecute.cs | 16 ++++++++--------
src/gui/jump.cs | 2 +-
src/gui/person.cs | 2 +-
src/gui/usefulObjects.cs | 20 ++++++++++++--------
src/report.cs | 2 +-
src/server.cs | 2 +-
src/sqlite/jump.cs | 12 ++++++++----
src/sqlite/session.cs | 10 +++++++---
10 files changed, 42 insertions(+), 29 deletions(-)
---
diff --git a/src/exportSession.cs b/src/exportSession.cs
index 8be303c..c3d75b3 100644
--- a/src/exportSession.cs
+++ b/src/exportSession.cs
@@ -152,7 +152,7 @@ public class ExportSession
protected virtual void getData()
{
myPersons = SqlitePersonSession.SelectCurrentSessionPersons(mySession.UniqueID);
- myJumps= SqliteJump.SelectJumps(mySession.UniqueID, -1, "", "");
+ myJumps= SqliteJump.SelectJumps(false, mySession.UniqueID, -1, "", "");
myJumpsRj = SqliteJumpRj.SelectJumps(mySession.UniqueID, -1, "", "");
myRuns= SqliteRun.SelectRuns(mySession.UniqueID, -1, "");
myRunsInterval = SqliteRunInterval.SelectRuns(mySession.UniqueID, -1, "");
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 3c51282..4247c5a 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -1458,7 +1458,7 @@ public partial class ChronoJumpWindow
private void fillTreeView_jumps (string filter) {
string [] myJumps;
- myJumps = SqliteJump.SelectJumps(currentSession.UniqueID, -1, "", "");
+ myJumps = SqliteJump.SelectJumps(false, currentSession.UniqueID, -1, "", "");
myTreeViewJumps.Fill(myJumps, filter);
expandOrMinimizeTreeView((TreeViewEvent) myTreeViewJumps, treeview_jumps);
@@ -5574,6 +5574,7 @@ Log.WriteLine("7");
button_activate_chronopics.Sensitive = true;
Log.WriteLine("8");
notebook_options.Sensitive = true;
+Log.WriteLine("8.5");
event_execute_button_update.Sensitive = true;
Log.WriteLine("9");
diff --git a/src/gui/eventExecute.cs b/src/gui/eventExecute.cs
index a747da4..50beb39 100644
--- a/src/gui/eventExecute.cs
+++ b/src/gui/eventExecute.cs
@@ -715,18 +715,18 @@ Log.WriteLine("Preparing reactive A");
//obtain data
string [] runs = SqliteRun.SelectRuns(currentSession.UniqueID, event_execute_personID,
event_execute_eventType);
- double timePersonAVG = SqliteSession.SelectAVGEventsOfAType(currentSession.UniqueID,
event_execute_personID, event_execute_tableName, event_execute_eventType, "time");
- double timeSessionAVG = SqliteSession.SelectAVGEventsOfAType(currentSession.UniqueID, -1,
event_execute_tableName, event_execute_eventType, "time");
+ double timePersonAVG = SqliteSession.SelectAVGEventsOfAType(false, currentSession.UniqueID,
event_execute_personID, event_execute_tableName, event_execute_eventType, "time");
+ double timeSessionAVG = SqliteSession.SelectAVGEventsOfAType(false, currentSession.UniqueID,
-1, event_execute_tableName, event_execute_eventType, "time");
- //double distancePersonAVG = SqliteSession.SelectAVGEventsOfAType(currentSession.UniqueID,
event_execute_personID, event_execute_tableName, event_execute_eventType, "distance");
- //double distanceSessionAVG = SqliteSession.SelectAVGEventsOfAType(currentSession.UniqueID,
-1, event_execute_tableName, event_execute_eventType, "distance");
+ //double distancePersonAVG = SqliteSession.SelectAVGEventsOfAType(false,
currentSession.UniqueID, event_execute_personID, event_execute_tableName, event_execute_eventType,
"distance");
+ //double distanceSessionAVG = SqliteSession.SelectAVGEventsOfAType(false,
currentSession.UniqueID, -1, event_execute_tableName, event_execute_eventType, "distance");
//better to know speed like:
//SELECT AVG(distance/time) from run; than
//SELECT AVG(distance) / SELECT AVG(time)
//first is ok, because is the speed AVG
//2nd is not good because it tries to do an AVG of all distances and times
- double speedPersonAVG = SqliteSession.SelectAVGEventsOfAType(currentSession.UniqueID,
event_execute_personID, event_execute_tableName, event_execute_eventType, "distance/time");
- double speedSessionAVG = SqliteSession.SelectAVGEventsOfAType(currentSession.UniqueID, -1,
event_execute_tableName, event_execute_eventType, "distance/time");
+ double speedPersonAVG = SqliteSession.SelectAVGEventsOfAType(false, currentSession.UniqueID,
event_execute_personID, event_execute_tableName, event_execute_eventType, "distance/time");
+ double speedSessionAVG = SqliteSession.SelectAVGEventsOfAType(false, currentSession.UniqueID,
-1, event_execute_tableName, event_execute_eventType, "distance/time");
double maxValue = 0;
double minValue = 0;
@@ -909,9 +909,9 @@ Log.WriteLine("Preparing reactive A");
string [] rts = SqliteReactionTime.SelectReactionTimes(currentSession.UniqueID,
event_execute_personID);
double timePersonAVG = SqliteSession.SelectAVGEventsOfAType(
- currentSession.UniqueID, event_execute_personID, event_execute_tableName,
event_execute_eventType, "time");
+ false, currentSession.UniqueID, event_execute_personID,
event_execute_tableName, event_execute_eventType, "time");
double timeSessionAVG = SqliteSession.SelectAVGEventsOfAType(
- currentSession.UniqueID, -1, event_execute_tableName,
event_execute_eventType, "time");
+ false, currentSession.UniqueID, -1, event_execute_tableName,
event_execute_eventType, "time");
double maxValue = 0;
double minValue = 0;
diff --git a/src/gui/jump.cs b/src/gui/jump.cs
index e422ea2..0d47af3 100644
--- a/src/gui/jump.cs
+++ b/src/gui/jump.cs
@@ -1669,7 +1669,7 @@ public class JumpsMoreWindow : EventMoreWindow
}
protected override string [] findTestTypesInSessions() {
- return SqliteJump.SelectJumps(-1, -1, "", selectedEventName);
+ return SqliteJump.SelectJumps(false, -1, -1, "", selectedEventName);
}
void on_button_cancel_clicked (object o, EventArgs args)
diff --git a/src/gui/person.cs b/src/gui/person.cs
index 13aa9a6..2b72337 100644
--- a/src/gui/person.cs
+++ b/src/gui/person.cs
@@ -1607,7 +1607,7 @@ public class PersonAddModifyWindow
//if weight has changed
if(!adding && (double) spinbutton_weight.Value != weightIni) {
//see if this person has done jumps with weight
- string [] myJumpsNormal = SqliteJump.SelectJumps(currentSession.UniqueID,
currentPerson.UniqueID, "withWeight", "");
+ string [] myJumpsNormal = SqliteJump.SelectJumps(false,
currentSession.UniqueID, currentPerson.UniqueID, "withWeight", "");
string [] myJumpsReactive = SqliteJumpRj.SelectJumps(currentSession.UniqueID,
currentPerson.UniqueID, "withWeight", "");
if(myJumpsNormal.Length > 0 || myJumpsReactive.Length > 0) {
diff --git a/src/gui/usefulObjects.cs b/src/gui/usefulObjects.cs
index d20086b..6c09d85 100644
--- a/src/gui/usefulObjects.cs
+++ b/src/gui/usefulObjects.cs
@@ -71,41 +71,45 @@ public class PrepareEventGraphJumpSimple {
public PrepareEventGraphJumpSimple(double tv, double tc, int sessionID, int personID, string table,
string type)
{
+
+ Sqlite.Open();
+
//select data from SQL to update graph
- jumpsAtSQL = SqliteJump.SelectJumps(
- sessionID, personID, "", type);
+ jumpsAtSQL = SqliteJump.SelectJumps(true, sessionID, personID, "", type);
tvPersonAVGAtSQL = SqliteSession.SelectAVGEventsOfAType(
- sessionID, personID,
+ true, sessionID, personID,
table, type, "TV");
tvSessionAVGAtSQL = SqliteSession.SelectAVGEventsOfAType(
- sessionID, -1, table, type, "TV");
+ true, sessionID, -1, table, type, "TV");
//need to calculate height also, because:
//it's different to have mean of tv and then calculate height of that mean
//than have every height and then calculate the mean
heightPersonAVGAtSQL = SqliteSession.SelectAVGEventsOfAType(
- sessionID, personID,
+ true, sessionID, personID,
table, type, "100*4.9*(TV/2)*(TV/2)");
heightSessionAVGAtSQL = SqliteSession.SelectAVGEventsOfAType(
- sessionID, -1, table, type, "100*4.9*(TV/2)*(TV/2)");
+ true, sessionID, -1, table, type, "100*4.9*(TV/2)*(TV/2)");
tcPersonAVGAtSQL = 0;
tcSessionAVGAtSQL = 0;
if(tc > 0) {
tcPersonAVGAtSQL = SqliteSession.SelectAVGEventsOfAType(
- sessionID, personID,
+ true, sessionID, personID,
table, type, "TC");
tcSessionAVGAtSQL = SqliteSession.SelectAVGEventsOfAType(
- sessionID, -1, table, type, "TC");
+ true, sessionID, -1, table, type, "TC");
}
//end of select data from SQL to update graph
this.tv = tv;
this.tc = tc;
+
+ Sqlite.Close();
}
~PrepareEventGraphJumpSimple() {}
diff --git a/src/report.cs b/src/report.cs
index d8634f3..cf4ce9c 100644
--- a/src/report.cs
+++ b/src/report.cs
@@ -120,7 +120,7 @@ public class Report : ExportSession
myPersons = SqlitePersonSession.SelectCurrentSessionPersons(sessionID);
}
if(ShowSimpleJumps) {
- myJumps= SqliteJump.SelectJumps(sessionID, -1, "", "");
+ myJumps= SqliteJump.SelectJumps(false, sessionID, -1, "", "");
}
if(ShowReactiveJumps) {
myJumpsRj = SqliteJumpRj.SelectJumps(sessionID, -1, "", "");
diff --git a/src/server.cs b/src/server.cs
index 570724e..648f37f 100644
--- a/src/server.cs
+++ b/src/server.cs
@@ -252,7 +252,7 @@ public class Server
int countE = 0;
int countS = 0;
- string [] jumps = SqliteJump.SelectJumps(currentSession.UniqueID,
person.UniqueID, "", "");
+ string [] jumps = SqliteJump.SelectJumps(false, currentSession.UniqueID,
person.UniqueID, "", "");
Sqlite.Open();
foreach(string myJump in jumps) {
string [] js = myJump.Split(new char[] {':'});
diff --git a/src/sqlite/jump.cs b/src/sqlite/jump.cs
index 7ebd7a4..79f7464 100644
--- a/src/sqlite/jump.cs
+++ b/src/sqlite/jump.cs
@@ -97,8 +97,11 @@ class SqliteJump : Sqlite
//if all sessions, put -1 in sessionID
//if all persons, put -1 in personID
//if all types put, "" in filterType
- public static string[] SelectJumps(int sessionID, int personID, string filterWeight, string
filterType)
+ public static string[] SelectJumps(bool dbconOpened, int sessionID, int personID, string
filterWeight, string filterType)
{
+ if(!dbconOpened)
+ dbcon.Open();
+
string tp = Constants.PersonTable;
string tps = Constants.PersonSessionTable;
@@ -118,7 +121,6 @@ class SqliteJump : Sqlite
if(filterType != "")
filterTypeString = " AND jump.type == '" + filterType + "' ";
- dbcon.Open();
dbcmd.CommandText = "SELECT " + tp + ".name, jump.*, " + tps + ".weight " +
" FROM " + tp + ", jump, " + tps +
" WHERE " + tp + ".uniqueID == jump.personID " +
@@ -140,7 +142,6 @@ class SqliteJump : Sqlite
int count = new int();
count = 0;
-
while(reader.Read()) {
@@ -162,7 +163,10 @@ class SqliteJump : Sqlite
}
reader.Close();
- dbcon.Close();
+
+ if(!dbconOpened)
+ dbcon.Close();
+
string [] myJumps = new string[count];
count =0;
diff --git a/src/sqlite/session.cs b/src/sqlite/session.cs
index 0a33ca9..ef5b055 100644
--- a/src/sqlite/session.cs
+++ b/src/sqlite/session.cs
@@ -537,8 +537,11 @@ class SqliteSession : Sqlite
//called from gui/event.cs for doing the graph
//we need to know the avg of events of a type (SJ, CMJ, free (pulse).. of a person, or of all persons
on the session
- public static double SelectAVGEventsOfAType(int sessionID, int personID, string table, string type,
string valueToSelect)
+ public static double SelectAVGEventsOfAType(bool dbconOpened, int sessionID, int personID, string
table, string type, string valueToSelect)
{
+ if(!dbconOpened)
+ dbcon.Open();
+
//if personIDString == -1, the applies for all persons
string personIDString = "";
@@ -546,7 +549,6 @@ class SqliteSession : Sqlite
personIDString = " AND personID == " + personID;
- dbcon.Open();
dbcmd.CommandText = "SELECT AVG(" + valueToSelect + ")" +
" FROM " + table +
" WHERE sessionID == " + sessionID +
@@ -566,7 +568,9 @@ class SqliteSession : Sqlite
myReturn = Convert.ToDouble(Util.ChangeDecimalSeparator(reader[0].ToString()));
}
reader.Close();
- dbcon.Close();
+
+ if(!dbconOpened)
+ dbcon.Close();
if (found) {
return myReturn;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]