Hallo,
ich habe da ein Verhalten, das ich mir absolut nicht erklaeren kann. Zunaechst wird eine Tabelle mit einer sql-Anweisung 'ganz' normal geoeffnet : <br>
with QrDetail do <br>
begin <br>
close; <br>
SQL.clear;<br>
SQL.add('Select h.Name, h.Typ, d.*'); //Vorwarnungsintervall, d.Vorwarntext, d.Eintrittsdatum, d.Wartungsintervall, d.Eintrittstext, d.Erinnerungsintervall, d.Erinnerungstext, d.HauptNr, d.ZeitStempel, d.DetailNr, d.Zustand, d.UND, d.ODER ');<br>
Sql.add('From '+ PfadGlobal+'db\DetailPlan.db d , '+ PfadGlobal+'db\Service.db h'); <br>
sql.add('Where d.HauptNr = ' +IntToStr(HauptNr)+' AND h.HauptNr = '+IntToStr(HauptNr)); <br>
If sortiert then <br>
Sql.Add(' ORDER BY Eintrittsdatum');<br>
open; <br>
Beim Open Befehl durchlaeuft das Programm mehrere Ereignisse von GridObjekten, da ein Master-Detail-Beziehung besteht.
Hierbei wird nun wieder um Feld der Mastertabelle abgefragt, obwohl die Eigenschaft Query.active auf true ist, kommt die Fehlermeldung, das Feld waere nicht vorhanden : <br>
If QRDetail.Active then <br>
begin
If QrDetail['UND'] <> NULL then <br>
If QrDetail['UND'] then <br>
RadioGroup1.ItemIndex :=0;<br>
If QrDetail['ODER'] <> NULL then <br>
If QrDetail['ODER'] then <br>
RadioGroup1.ItemIndex :=1; <br>
end; <br>
Das merkwürdige ist, dass das Feld UND da ist und der Debugger hier noch normal durchlaeuft, beim 'ODER' Feld kommt jedoch Mekka.
Bestaetigt man die Fehlermeldung und hat Glueck laeuft das Programm einfach weiter, beim zweitenmal ist das Feld 'ODER' auch vorhanden und wird, alls die IDE das ganz nicht stoppt, im einem GRid angezeigt.
Woran koennte das nun liegen, ist evt. die Abfrage ueber Query.active doch nicht so ganz das richtige ?
Gruss
Frank
ich habe da ein Verhalten, das ich mir absolut nicht erklaeren kann. Zunaechst wird eine Tabelle mit einer sql-Anweisung 'ganz' normal geoeffnet : <br>
with QrDetail do <br>
begin <br>
close; <br>
SQL.clear;<br>
SQL.add('Select h.Name, h.Typ, d.*'); //Vorwarnungsintervall, d.Vorwarntext, d.Eintrittsdatum, d.Wartungsintervall, d.Eintrittstext, d.Erinnerungsintervall, d.Erinnerungstext, d.HauptNr, d.ZeitStempel, d.DetailNr, d.Zustand, d.UND, d.ODER ');<br>
Sql.add('From '+ PfadGlobal+'db\DetailPlan.db d , '+ PfadGlobal+'db\Service.db h'); <br>
sql.add('Where d.HauptNr = ' +IntToStr(HauptNr)+' AND h.HauptNr = '+IntToStr(HauptNr)); <br>
If sortiert then <br>
Sql.Add(' ORDER BY Eintrittsdatum');<br>
open; <br>
Beim Open Befehl durchlaeuft das Programm mehrere Ereignisse von GridObjekten, da ein Master-Detail-Beziehung besteht.
Hierbei wird nun wieder um Feld der Mastertabelle abgefragt, obwohl die Eigenschaft Query.active auf true ist, kommt die Fehlermeldung, das Feld waere nicht vorhanden : <br>
If QRDetail.Active then <br>
begin
If QrDetail['UND'] <> NULL then <br>
If QrDetail['UND'] then <br>
RadioGroup1.ItemIndex :=0;<br>
If QrDetail['ODER'] <> NULL then <br>
If QrDetail['ODER'] then <br>
RadioGroup1.ItemIndex :=1; <br>
end; <br>
Das merkwürdige ist, dass das Feld UND da ist und der Debugger hier noch normal durchlaeuft, beim 'ODER' Feld kommt jedoch Mekka.
Bestaetigt man die Fehlermeldung und hat Glueck laeuft das Programm einfach weiter, beim zweitenmal ist das Feld 'ODER' auch vorhanden und wird, alls die IDE das ganz nicht stoppt, im einem GRid angezeigt.
Woran koennte das nun liegen, ist evt. die Abfrage ueber Query.active doch nicht so ganz das richtige ?
Gruss
Frank
Comment