Wenn Sie eine haben * von XXX Abfrage schließlich Sie können mehr Felder als erwartet, wissen Sie, ob es einen Weg gibt prüfen, ob neue Felder hinzugefügt wurden, seit Sie diese Abfrage erstellt und ihre persistenten Felder definiert haben?Um zu überprüfen, ob eine Abfrage mehr Felder zurückgibt, als wenn Sie sie erstellt und ihre persistenten Felder definiert haben
Normalerweise können Sie Ihre Abfragen öffnen, ohne sich Sorgen machen zu müssen, wenn neue Felder hinzugefügt wurden. Wenn sich neue Felder nicht in Ihren persistenten Feldern befinden, werden Sie sie nicht sehen. Auf einem Datasnap-REST-Server erhalten Sie jedoch einen AV, wenn Sie versuchen, ein Dataset aus einer Abfrage zurückzugeben, die jetzt mehr Felder enthält als beim Erstellen ihrer persistenten Felder.
Wenn Sie wissen möchten, ob es eine schnelle Überprüfung gibt, kann ich einen hilfreicheren Fehler anstelle eines AV zurückgeben.
Etwas wie:
MyQuery.Open;
if MyQuery.FieldDefs.Count <> MyQuery.Fields.Count then begin
raise Exception.Create('The number of returned Fields doesn''t match the expected');
end;
Danke
Warum nicht die Spalten angeben, die von der Abfrage zurückgegeben werden sollen, anstatt *? –
Ja, das ist der beste Weg, um diesen Fehler zu vermeiden, aber ich bin nicht der einzige, der Abfragen auf dem Server schreibt. Wenn jemand dies vergisst, möchte ich eine hilfreiche Nachricht anstelle eines AVs zurückgeben. –