![]() |
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? |
Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
Doch kannst das so lange benutzen bis Query.eof ist.
Poste doch mal den Code |
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. |
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. |
Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
Zeig mal den Code
|
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; |
Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
Könntest due den Code mal richtig einrücken, man erkennt so recht wenig
Zitat:
|
Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
Er soll halt alle Zeilen durchgehen.
Vorher hat das so auch funktioniert. |
Re: Mehrmaliges Benutzen von Query.Next nicht möglich?
Damm aber besser mit
Delphi-Quellcode:
Aber rücke mal so ein, das man sieht welches end zu welchem begin gehört
while not Query1.EOF
|
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. |
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