Migräne Tagebuch

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
lycaner
Beiträge: 56
Registriert: Mi 20. Jul 2011, 13:29
OS, Lazarus, FPC: Winux (L 1.4.4 FPC 2.6.)
CPU-Target: 64 Bit AMD
Wohnort: Bern, Schweiz

Re: Migräne Tagebuch

Beitrag von lycaner »

Hallo af0815

Ich habe mal vieles aus dem RAR File entfernt was unnotig ist, da ich es so nicht verwenden werde.
Ich habe die Includes auch bereinigt und sollten nun nicht mehr nachgefragt werden.

Ich hoffe das entspricht deinem Sinne.

Ich habe eine Papier Liste bekommen mit 1/2 Stunden Raster was ich ausfüllen kann.
Angefangen bei etwas 6 Uhr Morgens bis etwas 10 Uhr Abends.

Mit Raster 1-6 für Stärke der Migräne und freien angaben zu den Medikamenten welche genommen werden.
Also habe ich mein Raster auf einen Tag zu 24 Stdunden ergänzet da ich zt. Morgens um 2 wach bin und nicht schlafen kann wegen Migräne
Oder dann aber erst um 1 Uhr in der Nacht zu bett gehe weil ich am arbeiten bin.

Weiter habe ich das Raster verfeinert, da ich angebe in dem 1/4 Stunden tackt was ich für Medikamente genommen habe und wie die
Kopfschmerzen sind das ergibt wieder die 1/2 Stunde.

Ausgewertet wird es Pro Tag als Raster mit einer Zeitle pro tag und dann den Zeiten in der spalte .
Oder aber dann nur zur betrachtung als PDF.
Bis jetzt werden keine weiteren Daten erhoben.

Export also:

  • Druck
  • PDF
  • Excel File
  • CSV Datei

Mehr wir zur Zeit nicht unbedingt benötigt von meiner Seite aus.

Gruss

Chris.
--------------------------------------------------
ZippyUploader(24.01.2016 19-00-20).txt
--------------------------------------------------
Migraene Kalender.rar
http://www97.zippyshare.com/v/WBLB9INg/file.html

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Migräne Tagebuch

Beitrag von af0815 »

Frage:

Es wird nicht jeder Tage eingetragen sondern nur wenn der Schmerz anfällt ?

Gibt es einen Zusammenhang (Verknüpfung) zwischen Medikament und dem Schmerz - aus Sicht der Datenbank !! Oder sind das zwei getrennte Systeme, die später nur aufgrund des Datums/Zeit in Verbindung gebracht werden ?

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

lycaner
Beiträge: 56
Registriert: Mi 20. Jul 2011, 13:29
OS, Lazarus, FPC: Winux (L 1.4.4 FPC 2.6.)
CPU-Target: 64 Bit AMD
Wohnort: Bern, Schweiz

Re: Migräne Tagebuch

Beitrag von lycaner »

Hallo Andreas,

es werden minimal 2 Einträge pro Tag anfallen,
Einnahme der Migräne Prophylaxe.

Dann zusätzlich kommen die Schmerz Zeiten als Ergänzung hinzu.
Sowie die Einnahme der Medikamente.

Es besteht keine direkte Verknüpfung zwischen Medikamente Tabelle und Schmerz Tabelle das ist so richtig.
die Medikamente Tabelle befüllt nur die ComboBox aus Form 1. Es sind getrennte Tabellen.

::EDIT::

Ich habe mal mit dem SQL Befehl :

Code: Alles auswählen

{Testet Datenbank Connection}
SQLite3Connection1.Open;
if SQLite3Connection1.Connected then
StatusBar1.Panels.Add.Text:='Verbindung hergestellt';
 
SQLQuery1.Close;
SQLQuery1.SQL.text:='SELECT * FROM tblDateTime';
SQLQuery1.Open;
 
SQLQuery2.Close;
SQLQuery2.SQL.text:='SELECT * FROM tblJahr';
SQLQuery2.Open;
 
SQLQuery3.Close;
SQLQuery3.SQL.text:='SELECT * FROM tblMonth';
SQLQuery3.Open;
 


Eine Verbindung versucht zur Datenbank Herzustellen. Dabei bekomme ich aber die Error Meldung
" The Data - STream Format is not recogniced" nun verstehe ich leider nicht was damit gemeint ist.
Was muss ich mir darunter Vorstellen ?

Es Grüsst

Chris

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Migräne Tagebuch

Beitrag von af0815 »

Defekte DB oder Einstellung der Connection.

Man nimmt ein Datenmodul legt dort die Komponenten zur DB ab. Damit hat man alles Zentral und auch nur eine Connection zur Datenbank.

Ich wollte ein PDF hochladen, aber katuell geht das im Forum scheinbar nicht, da gab es auch einen DB Fehler - Nobody is perfect.

Edit:
Schmerztagebuch_neutral.pdf bei Zippyshare
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

lycaner
Beiträge: 56
Registriert: Mi 20. Jul 2011, 13:29
OS, Lazarus, FPC: Winux (L 1.4.4 FPC 2.6.)
CPU-Target: 64 Bit AMD
Wohnort: Bern, Schweiz

Re: Migräne Tagebuch

Beitrag von lycaner »

Hallo Andreas,

habe leider das gleich Problem mit dem hochladen.
Ich habe Dein PDF angeschaut, mein Tagebuch ist wesentlich Einfacher gestrickt gewesen,
bloss mehrere Zeilen für Zeiten und Spalten für Tage.
Dort konnte mann dann die Erforderlichen Daten eingeben, leider hab ich das aber nicht als PDF
nur mal auf Papier bekommen.

Endlich habe ich ein Resultat bei meiner Auswertung. Ich habe auf dem Form2 die Monate angezeigt bekommen.
Weis aber bis jetzt nicht wie ich das gemacht habe.

Code: Alles auswählen

 
{erstellt die Tabelle Jahr}
[code=sql]SQLQuery2.SQL.text := 'CREATE TABLE IF NOT EXISTS tblJahr (ID INTEGER Primary KEY, Jahr Date)';
SQLQuery2.ExecSQL;
SQLTransaction1.commit;[/code]
{erstellt die Tabelle Monat}
[code=sql]SQLQuery3.SQL.text := 'CREATE TABLE IF NOT EXISTS tblMonth (ID INTEGER Primary KEY, Monat Date)';
SQLQuery3.ExecSQL;[/code]
SQLTransaction1.commit;
{Löscht die Tabelle Jahr}
[code=sql]SQLQuery2.SQL.Text:='DROP TABLE IF EXISTS tblJahr';
SQLQuery2.ExecSQL;
SQLTransaction1.commit;[/code]
{Erstellt Tabelle Jahr und für diverse Jahre als Einträge hinzu}
[code=sql]SQLQuery2.SQL.text := 'CREATE TABLE IF NOT EXISTS tblJahr ( ID INTEGER Primary KEY, Jahr VARCHAR(6))';
SQLQuery2.ExecSQL;
SQLTransaction1.commit;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2010")';
SQLQuery2.ExecSQL;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2011")';
SQLQuery2.ExecSQL;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2012")';
SQLQuery2.ExecSQL;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2013")';
SQLQuery2.ExecSQL;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2014")';
SQLQuery2.ExecSQL;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2015")';
SQLQuery2.ExecSQL;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2016")';
SQLQuery2.ExecSQL;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2017")';
SQLQuery2.ExecSQL;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2018")';
SQLQuery2.ExecSQL;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2019")';
SQLQuery2.ExecSQL;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2020")';
SQLQuery2.ExecSQL;
SQLQuery2.SQL.text := 'INSERT INTO tblJahr VALUES (NULL, "2009")';
SQLQuery2.ExecSQL;
SQLTransaction1.commit;[/code]
 
 
{Löscht die Tabelle Monat}
[code=sql]SQLQuery3.SQL.Text:='DROP TABLE IF EXISTS tblMonth';
SQLQuery3.ExecSQL;
SQLTransaction1.commit;
{Erstellt Tabelle Monat und für diverse Monate als Einträge hinzu}
SQLQuery3.SQL.text := 'CREATE TABLE IF NOT EXISTS tblMonth (ID INTEGER Primary KEY, Month VARCHAR(25))';
SQLQuery3.ExecSQL;
SQLTransaction1.commit;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "Januar")';
SQLQuery3.ExecSQL;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "Februar")';
SQLQuery3.ExecSQL;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "März")';
SQLQuery3.ExecSQL;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "April")';
SQLQuery3.ExecSQL;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "Mai")';
SQLQuery3.ExecSQL;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "Juni")';
SQLQuery3.ExecSQL;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "Juli")';
SQLQuery3.ExecSQL;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "August")';
SQLQuery3.ExecSQL;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "September")';
SQLQuery3.ExecSQL;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "Oktober")';
SQLQuery3.ExecSQL;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "November")';
SQLQuery3.ExecSQL;
SQLQuery3.SQL.text := 'INSERT INTO tblMonth VALUES (NULL, "Dezember")';
SQLQuery3.ExecSQL;
SQLTransaction1.commit;[/code]
 
 
{Testet Datenbank Connection}
SQLite3Connection1.Open;
if SQLite3Connection1.Connected then
StatusBar1.Panels.Add.Text:='Verbindung hergestellt';
 
[code=sql]SQLQuery1.Close;
SQLQuery1.SQL.text:='SELECT * FROM tblDateTime';
SQLQuery1.Open;
 
SQLQuery2.Close;
SQLQuery2.SQL.text:='SELECT * FROM tblJahr';
SQLQuery2.Open;
 
SQLQuery3.Close;
SQLQuery3.SQL.text:='SELECT * FROM tblMonth';
SQLQuery3.Open;
 
SQLQuery1.FileName:='migraenetagebuch.sql3db';
SQLQuery1.SQL.Text:='Select * FROM tblDateTime';
SQLQuery1.Active:=True;
SQLQuery2.FileName:='migraenetagebuch.sql3db';
SQLQuery2.SQL.Text:='Select * FROM tblJahr';
SQLQuery2.Active:=True;
SQLQuery3.FileName:='migraenetagebuch.sql3db';
SQLQuery3.SQL.Text:='Select * FROM tblMonth';
SQLQuery3.Active:=True;[/code]
 



Auf Form2 Habe ich dann im OnCreate den Folgenden Code angegeben:

Code: Alles auswählen

SQLQuery1.SQL.text := 'CREATE TABLE IF NOT EXISTS tblMedikamente (ID INTEGER Primary KEY, Medikament VARCHAR(25), Image BLOB)';
SQLQuery1.ExecSQL;
Form1.SQLTransaction1.commit;
 
{Testet Datenbank Connection}
Form1.SQLite3Connection1.Open;
if Form1.SQLite3Connection1.Connected then
StatusBar1.Panels.Add.Text:='Verbindung hergestellt';
 
 
Form2.SQLQuery1.FileName:='migraenetagebuch.sql3db';
Form2.SQLQuery1.SQL.Text:='Select * FROM tblMedikamente';
Form2.SQLQuery1.Active:=True;
 


Ich habe auch gesucht wo ich bei der Query oder dem SQLTransaction
die Tabelle angeben kann, habe aber leider nicht's gefunden um es dann
mit den Comboboxen und der NavBar zu verbinden.

Ich stehe etwas auf dem Schlauch momentan.

Das mit der defekten dB war so richtig, sie wurde leider immer defekt erstellt,
so konnte keine Verbindung zu Ihr erstellt werden. Nun wie gesagt geht mal etwas.

Ich kann leider in der Form2 auch keine weiteren Elemente einfügen und die
NavBar ist deaktiviert da keine Tabelle verbunden ist. Schwanz Beisser eben.

Anbei also die Datenbank Source wie ich es jetzt mal erstellt habe.

Gruss

Chris.

--------------------------------------------------
ZippyUploader(25.01.2016 15-56-07).txt
--------------------------------------------------
Migraene Tagebuch.rar
http://www66.zippyshare.com/v/QHkgxovN/file.html

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Migräne Tagebuch

Beitrag von af0815 »

lycaner hat geschrieben:Ich habe Dein PDF angeschaut, mein Tagebuch ist wesentlich Einfacher gestrickt gewesen,
bloss mehrere Zeilen für Zeiten und Spalten für Tage.
Dort konnte mann dann die Erforderlichen Daten eingeben, leider hab ich das aber nicht als PDF
nur mal auf Papier bekommen.

Ich habe es auch nur als Papier bekommen, nur hab ich mich mit OpenOffice gleich hingesetzt und das 'digitalisiert'.

Der Vorteil von dem Blatt ist, das man gleich eine Grafik mit den Schmerzen zeichnet und somit grafisch sieht ob es irgendwelche Regelmässigkeiten gibt.
An das habe ich auch gedacht, wie ich mir deine Eingabemaske angesehen habe.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

lycaner
Beiträge: 56
Registriert: Mi 20. Jul 2011, 13:29
OS, Lazarus, FPC: Winux (L 1.4.4 FPC 2.6.)
CPU-Target: 64 Bit AMD
Wohnort: Bern, Schweiz

Re: Migräne Tagebuch

Beitrag von lycaner »

Hallo Andreas,

ja das wäre natürlich eine feine angelegenheit. Bis jetzt habe ich diese Datenbank in Filemaker genau so realisiert wie jetzt nun in Lazarus.
An eine bessere "Grafische" Umsetzung habe ich noch gar nicht gedacht.

Ich habe mir mal die Visual PlanIt angeschaut. Das wäre natülich ne tolle sache um ein pass Daten Grafisch zu erfassen.
Nur das Tages Feld schmiert mir dabei ab nur die Wochen Ansicht oder glaube noch Monat Ansicht geht.

Sonst wüsste ich noch nicht wie ich das mit SQLite lösen könnte.
Habe ja auch noch das Problem dass mir die Monate in der Medikamenten Tabelle Dargestellt werden.

::EDIT::

Code: Alles auswählen

Und ich weis nicht wo ich die Tabelle Auswählen kann um sie dann zu öffnen.
Meine das nun mit SQL Befehlen, ich habe es in der GUI auch nicht gefunden.
Bin noch nicht so weit mit SQLite.


Ich habe es jetzt gefunden:

Code: Alles auswählen

SQLQuery1.FileName:='migraenetagebuch.sql3db';
SQLQuery1.SQL.Text:='Select * FROM tblMedikamente';
SQLQuery1.Active:=True;


Aber ich stehe auf dem Schlauch bei der Frage warum zeigt er mir jetzt die Werte aus der
tblDateTime und nicht Medikamente. Obwohl ich die tblMedikamente ausgewählt habe.
Ich habe mit Select * From die richtige Tabelle genommen.

Ich habe auch im Source von Form2 auf Form1 das erstellen der tblMedikamente gewechselt,
und das in ein separates Query gepackt.

Ich bin Euch dankbar für die Hilfe.

Gruss

Chris

--------------------------------------------------
ZippyUploader(25.01.2016 20-34-13).txt
--------------------------------------------------
Migraene Tagebuch.rar
http://www26.zippyshare.com/v/FZEjmdDk/file.html

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Migräne Tagebuch

Beitrag von af0815 »

Habe mal angefangen mit den Daten zu planen. Auch ein Testdaten Generator ist dabei.
Dateianhänge
published.zip
Schmerztabelle Datengeneration
(6.08 KiB) 65-mal heruntergeladen
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

lycaner
Beiträge: 56
Registriert: Mi 20. Jul 2011, 13:29
OS, Lazarus, FPC: Winux (L 1.4.4 FPC 2.6.)
CPU-Target: 64 Bit AMD
Wohnort: Bern, Schweiz

Re: Migräne Tagebuch

Beitrag von lycaner »

Hallo Andreas,

bei mir gibt’s beim laden der beiden Applikationen einen Error wegen den Datenquellen.
Ich kann die beiden Applikationen Compillieren aber dann nicht starten, auch beim Source
auf die Datenquellen gibt es mir nen Error.

Ich habe jetzt noch die ganzen Tage mit meinem Source geplagt, ich kriege das irgendwie nicht hin,
dass es die Daten von der Tabelle Medikamente einliesst immer kommt bei mir die Daten Tabelle.

Obschon ich die Source zur Medikamenten Tabelle angegeben habe.

Gruss

Chris

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Migräne Tagebuch

Beitrag von af0815 »

lycaner hat geschrieben:bei mir gibt’s beim laden der beiden Applikationen einen Error wegen den Datenquellen.
Ich kann die beiden Applikationen Compillieren aber dann nicht starten, auch beim Source
auf die Datenquellen gibt es mir nen Error.

Du hast aber schon die SQLite Dll in das Verzeichnis gegeben, wo die Executable liegt ?! Weiters den Pfad für die DB gibt es bei Dir auch ?

BTW: Es ist immer gut, wenn man bekannt gibt wie die Fehlermeldung exakt lautet.

Stell Deine Source einmal so um, das du ein DatenModul benutzt, wo EINE Connection drauf ist und alle die Queries. Mit 'auf jedem Formular ist alles oben' wird es nur unübersichtlich.

Vorgangsweise:
a) Ein gutes Design der DB mal mit Papier und Bleistift machen. Das Design gedanklich überprüfen in hinblick auf die Auswertungen und Eingaben. Falls das Design doch nicht so gut war, zurück an den Start.
b) Erzeugen der DB und Tabellen durch das Programm sauber ausprogrammieren. (Sinnvollerweise auch gleich das Löschen der DB mitprogrammieren). Liegt im Bereich vom Datenmodul, also dort mal implementieren.
c) Das Erzeugen und Löschen testen.
d) Testdaten automatisch erzeugen lassen und in die DB eintragen. Dann kann man mal gleich probieren die geschätzte Datenmenge für ein Jahr einzufüllen. (Mache ich auch im Datenmodul DM)
e) Jetzt lass ich mir alles in einen Grid mal anzeigen und kontrolliere ob die Daten so sinnvoll sind und vor allen, ob das mit den Überlegungen von Punkt a zusammenpasst.

Jetzt kann ich mir aussuchen, ob ich zuerst die Eingabe oder die Auswertung beginne (In der Firma mal sehen wo mehr der Hut brennt). Meistens kann man das mit der Eingabe mal vorweg 'irgendwie' lösen (Datenübernahme von Sheets scripten etc), daher bevorzuge ich mal die Auswertung.

Vorgang ähnlich wie bei der DB, erst mal mit Bleistift und Papier. Dann mit den Daten -> Deswegen welche erzeugt. Kommt bei den Überlegungen zur Auswertung noch eine Schwachstelle zu Tage die in der DB liegt, dann flott wieder mal mit Punkt a anfangen (Auch wenn man beim Programmieren darauf stößt). Deshalb auch keine händischen Eingaben, da das sonst wieder gemacht werden muss (Und nach dem 2ten mal macht das keine Sau mehr, sondern murkst lieber irgendwie herum). Außerdem wenn man das ganze richtig macht, ist es auch gleich möglich automatische Tests laufen zu lassen. Das erscheint oft zu viel Aufwand, meiner Erfahrung nach lohnt es sich aber auch bei kleinen Projekten mit Datenbanken (Nicht für alles, aber zumindest für die Datenbank).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Migräne Tagebuch

Beitrag von af0815 »

Ich habe es nochmals getest:

Die sqlite3.dll in das Verzeichnis kopieren und das Verzeichnis für die db richtig anlegen. (Oder im uDM1 in der Con1 unter DatabaseName den Pfad bzw. Dateinamen anpassen).
Da fehlt der Pfad für die Datenbank
Da fehlt der Pfad für die Datenbank


Ich wollte damit dir nur mal die Vorgangsweise zur Erzeugung von Testdaten vorstellen. Und auch ein Tabellendesging, das meiner Meinung nach optimaler erscheint (Das ist aber diskutierbar). Ich brauche dazu nicht einmal ein Query, da alleine die Verbindung (Con1) alle nötigen Routinen zur Verfügung stellt.
Man brauch als nicht mehr als eine Connection und ein Transaktion für diese grundlegenden Dinge. Egal welche Qualität die Daten jetzt einmal haben, damit kann man mal die Auswertung testen.

Code: Alles auswählen

function TDM1.DummyData: Boolean;
const
  BaseDate = '01.01.2016';
  BaseMinute: double = 1.0 / 24.0 / 60.0;
var
  SQL: String;
  i: Integer;
  AktDate : TDateTime;
  tempf : float;
  tempd : Integer;
  tempi , j: Integer;
  MyFormats : TFormatSettings;
begin
  Result := false;
  Randomize;
  if not Con1.Connected then
  begin
    DebugLn('Warning: DB not connected, try to connect');
    Con1.Connected:=true;
  end;
  MyFormats.DecimalSeparator:='.';
  Con1.Transaction.StartTransaction;
  try
    for i:= 0 to 364 do
    begin
      for j:= 0 to RandomRange(1,10) do
      begin
        AktDate := StrToDate(BaseDate) + i;
        tempf := randg(0.5,0.25);
        tempd := RandomRange(15,300);
        tempi := RandomRange(1,10);
        SQL := 'INSERT INTO Schmerz (SchmerzID, Intens, Start, Ende, Bemerkung )' +
          ' VALUES ('+IntToStr(i)+' , ' +
                     IntToStr(tempi) +', '+
                     FloatToStr(AktDate + tempf,MyFormats ) + ' , ' +
                     FloatToStr(AktDate + tempf + tempd*BaseMinute, MyFormats ) + ' , ' +
                     '"Wert'+IntToStr(i)+'" );';
        Con1.ExecuteDirect(SQL);
      end;
    end;
    Con1.Transaction.Commit;
    Result := true;
  except
    Con1.Transaction.Rollback;
    DebugLn('Error: DummyData failed');
  end;
  DebugLn('DummyData finished');
 
end;
 
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Migräne Tagebuch

Beitrag von af0815 »

sqlite3.dll fehlt im Programmverzeichnis
sqlite3.dll fehlt im Programmverzeichnis
So sieht es aus, wenn die sqlite3.dll fehlt
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

lycaner
Beiträge: 56
Registriert: Mi 20. Jul 2011, 13:29
OS, Lazarus, FPC: Winux (L 1.4.4 FPC 2.6.)
CPU-Target: 64 Bit AMD
Wohnort: Bern, Schweiz

Re: Migräne Tagebuch

Beitrag von lycaner »

Hallo Andreas,

ich awar etwas voreilig wegen der Meldung "geht nicht".
Ich hatte wirklich die dll nicht kopiert.

Auch ich habe dieser Tage einiges an der dB gefeilt, und das eine oder andere angepasst, was ich mir noch überlegt habe.
Nun werden gewisse Verzeichnisse angelegt welche man getrost Löschen kann, denn beim versand nicht nötig gegebenen
fals.

Ich habe zur Zeit mit dem Datenmodell noch meine liebe Mühe, in den Form 2 und Form 3.
Form 2 gibt mir nun die richtige Tabelle aus, Form 3 leider gar nicht und Meldet wenn es nicht ausgeklammert ist nen Error und beendet.
Form 2 speichert irgendwie die Datensätze nicht beim Schliessen ist dann alles weg. Ich suchte danach ob ich die Tabelle aus Form 2
sprich die Medikamenten Tabelle jeweils neu Generiere beim Start aber das kann ich ausklammern, das passiert nicht.

Nur Form 3 mit den Tabellen Jahr und Monat werden jeweils neu Generiert.

Ich schaue Deinen Test Gen gerne nochmals genauer an und berichte Dir dabei.
Wenn Dir an meinem Source etwas ins auge fällt dass ich gemacht habe und falsch ist vom Modell her bin ich über Kritik sehr erfreut.

Beste Grüsse

Chris
Dateianhänge
Migraene Tagebuch.rar
Neuer Versuch in Form 2 & Form 3 - mit den Tabellen.
(11.08 MiB) 76-mal heruntergeladen

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Migräne Tagebuch

Beitrag von af0815 »

lycaner hat geschrieben:Wenn Dir an meinem Source etwas ins auge fällt dass ich gemacht habe und falsch ist vom Modell her bin ich über Kritik sehr erfreut.

Das erste was mir auffällt, ist, das jede menge Schrott in dem Archiv ist.
Die ganzen unnötigen Pakete, Libs und Tutorials sind unnötig und lassen sich bei mir aufgrund zu langer Dateinamen bei mir gar nicht öffnen. Ausserdem hat das exe auch nichts drinnen verloren.
Dateianhänge
Unnötige Libs, Beispiel sollte ohne auskommen
Unnötige Libs, Beispiel sollte ohne auskommen
Unnoetig.JPG (17.27 KiB) 2397 mal betrachtet
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Migräne Tagebuch

Beitrag von af0815 »

Wenn ich mir die Unit1 ansehe, so ist mir überhaupt nicht klar, wofür die die Tabellen tblJahr und tblMonth benötigst. Die machen für mich einmal keinen Sinn. Die Tabelle tblMedikamente kann ich nachvollziehen was du damit vermutlich machen willst, macht auch Sinn wenn du mit einer anderen Tabelle einen JOIN machst.

Über die Tabelle tblDateTime kann man diskutieren, ob das in dieser Art und Weise sinn macht oder ob es anders besser gelöst wird. Aus meiner Erfahrung heraus, behaupte ich, das eine jede Auswertung so später komplizierter wird. Die viertelstunden Intervalle gehören in EINE Spalte, entweder als Wert oder über eine Kennung bzw. über einen JOIN mit einer Hilfstabelle. Nachdem es sich hier meiner Meinung nach um ein Intervall handeln wird, ist IMHO ein Start/Ende oder ein Start/Dauer besser. Siehe auch meinem Demo, das ich deswegen genau so gemacht habe.

Die Eingabemaske würde ich noch einmal überdenken. Du willst Den Zeitpunkt des Schmerzes (1/4 Std fein) an einem Tag eingeben. Deshalb die Zeitangaben, daneben in der Lookupcombobox das Medikament. Stärke des Schmerzes sehe ich nirgends.
Willst du jetzt den Schmerz dokumentieren, oder das Medikament oder beides ?

MigraeneTagebuch.zip
So kann ich was anfangen
(58.33 KiB) 69-mal heruntergeladen
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten