AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit DB und Schleife

Ein Thema von aaaaaaaaaa_10 · begonnen am 6. Aug 2009 · letzter Beitrag vom 10. Aug 2009
Antwort Antwort
Seite 2 von 3     12 3      
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Probleme mit DB und Schleife

  Alt 6. Aug 2009, 15:47
Wenn die Abarbeitung länger dauert, könnte es passieren (und passiert scheinbar auch), dass es 11 Minuten sind. Dann greift der Vergleich auf Gleichheit nicht mehr. Auf Größer aber schon. Dann kannst du dir auch das SameTime() sparen
Markus Kinzler
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#12

Re: Probleme mit DB und Schleife

  Alt 6. Aug 2009, 15:54
if (StrToTime(WL.Strings[1])-StrToTime(Time)) > StrToTime('00:01:00') then Also so, ja?

Da schreibt er jetzt gar nix mehr rein.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Probleme mit DB und Schleife

  Alt 6. Aug 2009, 15:57
if (StrToTime(WL.Strings[1])-StrToTime(Time)) >= 600 then sollte reichen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von hazard999
hazard999

Registriert seit: 2. Okt 2008
38 Beiträge
 
#14

Re: Probleme mit DB und Schleife

  Alt 6. Aug 2009, 16:13
nein.

600 wären 600 Tage.

10 / 24 / 60 wären dann 10 Minuten.
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#15

Re: Probleme mit DB und Schleife

  Alt 7. Aug 2009, 08:23
An sich schreibt er jetzt wenigstens etwa alle z.B. 2 Minuten einen Wert in die Datenbank,aber die sind ja nun nicht genau 2 Minuten auseinander. Bsp :
07:21:35
07:23:40
07:25:40
07:27:45
usw.

Ist natürlich nicht so gut. Und nun?
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#16

Re: Probleme mit DB und Schleife

  Alt 7. Aug 2009, 08:38
Rechne die Zeit in Sekunden um und vergleiche dann:
Delphi-Quellcode:
Function TimeToSeconds (aTime : TDateTime) : Integer;
Begin
  Result := Trunc (0.5 + Fract(aTime)*86400);
End;

Function TimeToMinutes (aTime : TDateTime) : Integer;
Begin
  Result := Trunc (0.5 + Fract(aTime)*1440);
End;

...
  If TimeToSeconds(Now) - TimeToSeconds(LastTime) >= 120 Then Begin // 120 Sekunden = 2 Minuten
    LastTime := Now;
    DoSomething;
  End;

// Oder

  If TimeToMnutes(Now) - TimeToMinutes(LastTime) >= 2 Then Begin
    LastTime := Now;
    DoSomething;
  End;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#17

Re: Probleme mit DB und Schleife

  Alt 7. Aug 2009, 09:07
Ich kapiere das nicht...

Was spricht denn hier gegen den Einsatz von TTimer? Ein Intervall auf 2 Minuten und fertig...
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#18

Re: Probleme mit DB und Schleife

  Alt 10. Aug 2009, 08:19
Hallo,
hab das jetzt mit Timer probiert.

Delphi-Quellcode:
  //Timer für Datenbank zur Laufzeit erstellen
          MyTimer3 := TTimer.Create(nil);
          MyTimer3.Enabled := True;
          MyTimer3.Interval := 120000; // alle 2 Minuten die Datenbank aktualisieren
          MyTimer3.OnTimer := DatenbankFuellen;
Delphi-Quellcode:
procedure TFiles.DatenbankFuellen(Sender: TObject);
var Werte, Datei : string;
    i : integer;
    WerteList, WL : TStringList;
begin
      Datei := extractfilepath(application.exename)+'Mom10min_'+Kennung+'.txt';
      WerteList := TStringList.Create;
      WL := TStringList.Create;
      try
        WerteList.LoadFromFile(Datei);
        if WerteList.Count >=2 then
        begin
          Werte := WerteList.Strings[WerteList.count-1];
          WL.Delimiter := #9;
          WL.DelimitedText := Werte;
          if count = WL.Count then
          begin
            with t do
            begin
                    t.Open;
                    t.Append;
                    for i := 0 to WL.Count - 1 do
                    begin
                      t.Fields[i].Value := WL.Strings[i];
                    end;
                    t.Post;
                    t.Close;
            end;
          end;

         WerteList.SaveToFile(Datei);
        end;
      finally
        Free;
        WerteList.Free;
        WL.Free;
      end;
end;
Das Problem dabei, dass er dann erst nach 2 Minuten den ersten Wert reinschreibt. Er soll aber sofort anfangen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#19

Re: Probleme mit DB und Schleife

  Alt 10. Aug 2009, 08:31
du kannst DatenbankFuellen auch z.B. auch noch über OnCreate der Form aufrufen, dann fängt er sofort an.
$2B or not $2B
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#20

Re: Probleme mit DB und Schleife

  Alt 10. Aug 2009, 08:54
Was muss denn bei dem TimerEreignis in Datenbankfuellen(?). Da steht ja Sender:TObject drin,aber beim Aufruf? t für die Datenbank?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz