//pass uniqueID value and then will return one record. do like this: //EncoderSQL eSQL = (EncoderSQL) SqliteEncoder.Select(false, myUniqueID, 0, 0, "")[0]; //or //pass uniqueID==-1 and personID, sessionID, signalOrCurve values, and will return some records //personID can be -1 to get all on that session //sessionID can be -1 to get all sessions //signalOrCurve can be "all" public static ArrayList EncoderSelect103(bool dbconOpened, int uniqueID, int personID, int sessionID, string signalOrCurve, bool onlyActive) { if (!dbconOpened) { Sqlite.Open(); } string personIDStr = ""; if (personID != -1) { personIDStr = " personID = " + personID + " AND "; } string sessionIDStr = ""; if (sessionID != -1) { sessionIDStr = " sessionID = " + sessionID + " AND "; } string selectStr = ""; if (uniqueID != -1) { selectStr = Constants.EncoderTable + ".uniqueID = " + uniqueID; } else { if (signalOrCurve == "all") { selectStr = personIDStr + sessionIDStr; } else { selectStr = personIDStr + sessionIDStr + " signalOrCurve = \"" + signalOrCurve + "\""; } } string andString = ""; if (selectStr != "") { andString = " AND "; } string onlyActiveString = ""; if (onlyActive) { onlyActiveString = " AND " + Constants.EncoderTable + ".status = \"active\" "; } dbcmd.CommandText = "SELECT " + Constants.EncoderTable + ".*, " + Constants.EncoderExerciseTable + ".name FROM " + Constants.EncoderTable + ", " + Constants.EncoderExerciseTable + " WHERE " + selectStr + andString + Constants.EncoderTable + ".exerciseID = " + Constants.EncoderExerciseTable + ".uniqueID " + onlyActiveString + " ORDER BY substr(filename,-23,19)"; //this contains the date of capture signal LogB.SQL(dbcmd.CommandText.ToString()); SqliteDataReader reader; reader = dbcmd.ExecuteReader(); ArrayList array = new ArrayList(1); EncoderSQL103 es = new EncoderSQL103(); while (reader.Read()) { es = new EncoderSQL103( reader[0].ToString(), //uniqueID Convert.ToInt32(reader[1].ToString()), //personID Convert.ToInt32(reader[2].ToString()), //sessionID Convert.ToInt32(reader[3].ToString()), //exerciseID reader[4].ToString(), //eccon reader[5].ToString(), //laterality reader[6].ToString(), //extraWeight reader[7].ToString(), //signalOrCurve reader[8].ToString(), //filename reader[9].ToString(), //url Convert.ToInt32(reader[10].ToString()), //time Convert.ToInt32(reader[11].ToString()), //minHeight Convert.ToDouble(Util.ChangeDecimalSeparator(reader[12].ToString())), //smooth UNUSED reader[13].ToString(), //description reader[14].ToString(), //status reader[15].ToString(), //videoURL reader[16].ToString(), //encoderConfigurationName Convert.ToInt32(reader[17].ToString()), //inertiaMomentum Convert.ToDouble(Util.ChangeDecimalSeparator(reader[18].ToString())), //diameter reader[19].ToString(), //future1 reader[20].ToString(), //future2 reader[21].ToString(), //future3 reader[22].ToString() //EncoderExercise.name ); array.Add(es); } reader.Close(); if (!dbconOpened) { Sqlite.Close(); } return(array); }
//pass uniqueID value and then will return one record. do like this: //EncoderSQL eSQL = (EncoderSQL) SqliteEncoder.Select(false, myUniqueID, 0, 0, "")[0]; //or //pass uniqueID==-1 and personID, sessionID, signalOrCurve values, and will return some records //personID can be -1 to get all on that session //sessionID can be -1 to get all sessions //signalOrCurve can be "all" public static ArrayList EncoderSelect103(bool dbconOpened, int uniqueID, int personID, int sessionID, string signalOrCurve, bool onlyActive) { if(! dbconOpened) Sqlite.Open(); string personIDStr = ""; if(personID != -1) personIDStr = " personID = " + personID + " AND "; string sessionIDStr = ""; if(sessionID != -1) sessionIDStr = " sessionID = " + sessionID + " AND "; string selectStr = ""; if(uniqueID != -1) selectStr = Constants.EncoderTable + ".uniqueID = " + uniqueID; else { if(signalOrCurve == "all") selectStr = personIDStr + sessionIDStr; else selectStr = personIDStr + sessionIDStr + " signalOrCurve = \"" + signalOrCurve + "\""; } string andString = ""; if(selectStr != "") andString = " AND "; string onlyActiveString = ""; if(onlyActive) onlyActiveString = " AND " + Constants.EncoderTable + ".status = \"active\" "; dbcmd.CommandText = "SELECT " + Constants.EncoderTable + ".*, " + Constants.EncoderExerciseTable + ".name FROM " + Constants.EncoderTable + ", " + Constants.EncoderExerciseTable + " WHERE " + selectStr + andString + Constants.EncoderTable + ".exerciseID = " + Constants.EncoderExerciseTable + ".uniqueID " + onlyActiveString + " ORDER BY substr(filename,-23,19)"; //this contains the date of capture signal LogB.SQL(dbcmd.CommandText.ToString()); SqliteDataReader reader; reader = dbcmd.ExecuteReader(); ArrayList array = new ArrayList(1); EncoderSQL103 es = new EncoderSQL103(); while(reader.Read()) { es = new EncoderSQL103 ( reader[0].ToString(), //uniqueID Convert.ToInt32(reader[1].ToString()), //personID Convert.ToInt32(reader[2].ToString()), //sessionID Convert.ToInt32(reader[3].ToString()), //exerciseID reader[4].ToString(), //eccon reader[5].ToString(), //laterality reader[6].ToString(), //extraWeight reader[7].ToString(), //signalOrCurve reader[8].ToString(), //filename reader[9].ToString(), //url Convert.ToInt32(reader[10].ToString()), //time Convert.ToInt32(reader[11].ToString()), //minHeight Convert.ToDouble(Util.ChangeDecimalSeparator(reader[12].ToString())), //smooth UNUSED reader[13].ToString(), //description reader[14].ToString(), //status reader[15].ToString(), //videoURL reader[16].ToString(), //encoderConfigurationName Convert.ToInt32(reader[17].ToString()), //inertiaMomentum Convert.ToDouble(Util.ChangeDecimalSeparator(reader[18].ToString())), //diameter reader[19].ToString(), //future1 reader[20].ToString(), //future2 reader[21].ToString(), //future3 reader[22].ToString() //EncoderExercise.name ); array.Add (es); } reader.Close(); if(! dbconOpened) Sqlite.Close(); return array; }