Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mehrmaliges Benutzen von Query.Next nicht möglich? (https://www.delphipraxis.net/92361-mehrmaliges-benutzen-von-query-next-nicht-moeglich.html)

Svenkan 18. Mai 2007 14:50


Mehrmaliges Benutzen von Query.Next nicht möglich?
 
Ich benutze jeweils 2x in verschiedenen Prozeduren Query1.Next bzw. Query2.Next.
Die ersten Ausführungen funktionieren problemlos, jedoch funktioniert es in der 2. Prozedur nicht mehr.
Kann man es nur einmal pro Form benutzen?

QuickAndDirty 18. Mai 2007 15:45

Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
 
Doch kannst das so lange benutzen bis Query.eof ist.

Poste doch mal den Code

Die Muhkuh 18. Mai 2007 15:47

Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
 
Hi,

Du darfst natürlich nicht vergessen, zwischen den beiden Proceduren ein Query.First aufzurufen, damit der Datenzeiger wieder am Anfang der Datei steht.

Svenkan 18. Mai 2007 16:39

Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
 
Noch firster als jetzt geht ja gar nicht. ^^
Er liest ja nur die allererste Zeile aus, obwohl QueryX.Next vorhanden ist.

mkinzler 18. Mai 2007 16:40

Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
 
Zeig mal den Code

Svenkan 18. Mai 2007 16:44

Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
 
Hier mal mit Query1:

Delphi-Quellcode:
  AssignFile(Datei, (ExtractFilePath(ParamStr(0)) + '\heute.htm'));
  Rewrite(Datei); // Datei neu schreiben
  a:='<html>'+sLineBreak+'<head>'+sLineBreak+'<table border="0" width="100%" style="border-collapse: collapse" id="table3">'+sLineBreak+'<tr>'+sLineBreak+'<td>'+sLineBreak+'<FONT face=Arial COLOR=#000080 style="font-size: 8pt">'+sLineBreak+'Stand: '+str+'
» [url="morgen.htm"]'+tag_tomorrow+', '+tomorrow+'[/url]</FONT></td>'+sLineBreak+'<td>'+sLineBreak+'<p align="right">'+sLineBreak+'<font style="font-size: 8pt" color="#000080" face="Arial">'+schule+'</font></td>'+sLineBreak+'</tr>'+sLineBreak+'</table>
'+sLineBreak+'<table border="0" width="100%" id="table1" style="border-collapse: collapse">'+sLineBreak+'<tr>'+sLineBreak+'<td><font color="#000080" style="font-size: 18pt">Vertretungsplan für:</font><font size="5">'+sLineBreak+'<font color="#FF0000">'+wochentag+', '+today+'</font></font>
'+sLineBreak+'<font color=#009933 face=Arial size=4>- ohne Gewähr! -</font></td>';
  WriteLn(Datei, a);
  b:=sLineBreak+'<td align="right">'+sLineBreak+'<font color=#000080 face=Arial size=2>Der Plan wird '+zeitraum+' aktualisiert</font><p align="right"></td>'+sLineBreak+'</tr>'+sLineBreak+'</table>
'+sLineBreak+'<table cellpadding=2 cellspacing=1 border=0 width="98%" bgcolor="#000000">'+sLineBreak+'<tr>'+sLineBreak+'<td width=9% bgcolor=#FFFFFF>'+sLineBreak+'<font color=#000080 face="Times New Roman" style="font-size: 11pt">Klasse</font></td>'+sLineBreak+'<td width=9% bgcolor=#FFFFFF>'+sLineBreak+'<font color=#000080 face="Times New Roman" style="font-size: 11pt">Stunde</font></td>'+sLineBreak+'<td width=9% bgcolor=#FFFFFF>'+sLineBreak+'<font color=#000080 face="Times New Roman" style="font-size: 11pt">Es fehlt</font></td>';
  WriteLn(Datei, b);
  c:=sLineBreak+'<td width=9% bgcolor=#FFFFFF>'+sLineBreak+'<font color=#000080 face="Times New Roman" style="font-size: 11pt">Es vertritt</font></td>'+sLineBreak+'<td width=9% bgcolor=#FFFFFF>'+sLineBreak+'<font color=#000080 face="Times New Roman" style="font-size: 11pt">Fach</font></td>'+sLineBreak+'<td width=9% bgcolor=#FFFFFF>'+sLineBreak+'<font color=#000080 face="Times New Roman" style="font-size: 11pt">Raum</font></td>'+sLineBreak+' <td width=37% bgcolor=#FFFFFF>'+sLineBreak+'<font color=#000080 face="Times New Roman" style="font-size: 11pt">Bemerkung ('+IntToStr(Query1.RecordCount)+' Einträge)</font></td>'+sLineBreak+'</tr>';
  WriteLn(Datei, c);

  for count := 0 to Pred(Query1.RecordCount) do begin
   if count mod 2 = 0 then begin
    tdcolor:=tdc1;
    fccolor:=fc1;
   end
   else begin
    fccolor:=fc2;
    tdcolor:=tdc2;
   end;

   hcode:='<tr bgcolor="'+tdcolor+'">'+sLineBreak+'<td width=9%><font color="'+fccolor+'" size=2 face=Arial> '+Query1.FieldByName('KLASSEN').AsString+'</font></td>'+sLineBreak+'<td width=9%><font color="'+fccolor+'" size=2 face=Arial> '+Query1.FieldByName('S').AsString+'.</font></td>'+sLineBreak+'<td width=9%><font color="'+fccolor+'" size=2 face=Arial> '+Query1.FieldByName('FUER').AsString+'</font></td>';
   WriteLn(Datei, hcode);
   hcode2:='<td width=9%><font color="'+fccolor+'" size=2 face=Arial> '+Query1.FieldByName('WER').AsString+'</font></td>'+sLineBreak+'<td width=9%><font color="'+fccolor+'" size=2 face=Arial> '+Query1.FieldByName('FACH').AsString+'</font></td>'+sLineBreak+'<td width=9%><font color="'+fccolor+'" size=2 face=Arial> '+Query1.FieldByName('RAUM').AsString+'</font></td>'+sLineBreak+'<td width=37% bgcolor="'+tdcolor+'"><font color="'+fccolor+'" size=2 face=Arial> '+Query1.FieldByName('BEMER_SCH').AsString+'</font></td>'+sLineBreak+'</tr>';
   WriteLn(Datei, hcode2);
   Query1.Next;
  end;
  if NOT (heute.Lines.text='') then begin
   d:=sLineBreak+'<tr>'+sLineBreak+'<td width="91%" bgcolor="#FFFFCE" colspan="7">'+sLineBreak+'<font face="Times New Roman" color=#000080 style="font-size: 11pt">Mitteilungen:';
   WriteLn(Datei, d);
    WriteLn(Datei, '<ul>');
    For I:=0 to heute.Lines.Count -1 do
    WriteLn(Datei, '[*]'+heute.Lines[i]+'');
    WriteLn(Datei, '[/list]');
   e:='</font></td>'+sLineBreak+'</tr>';
   WriteLn(Datei, e);
  end;

mkinzler 18. Mai 2007 16:50

Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
 
Könntest due den Code mal richtig einrücken, man erkennt so recht wenig
Zitat:

Delphi-Quellcode:
for count := 0 to Pred(Query1.RecordCount) do begin

??

Svenkan 18. Mai 2007 16:59

Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
 
Er soll halt alle Zeilen durchgehen.
Vorher hat das so auch funktioniert.

mkinzler 18. Mai 2007 17:02

Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
 
Damm aber besser mit
Delphi-Quellcode:
while not Query1.EOF
Aber rücke mal so ein, das man sieht welches end zu welchem begin gehört

Svenkan 18. Mai 2007 17:10

Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
 
Sehr schön. :)
Damit funktionierts auch gleich wieder. ;)

Und was das Einrücken angeht..ich denke, da sollt ich mir wirklich mal ne Weile Zeit für nehm. :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz