![]() |
Datenbank: Paradox • Version: 5 • Zugriff über: BDE
Paradox First/Limit
Hallo liebe Gemeinde,
da ist er wieder mal mit einer(hoffenlich einer der letzten meinerseits) Paradox Frage (der Weg zu Firebird ist geebnet und auch endlich beschritten). Doch nun zur Frage: Werden bei einem select * from.. alle records eingelesen? Wenn ja: gibt es eine möglichkeit dies zu beschränken (First und Limit tut ja IMHO in LocalSQL nicht,oder)? Danke für eure Antworten im voraus Gruß Dirk |
AW: Paradox First/Limit
Code:
SELECT * FROM WHERE <Bedingung>
|
AW: Paradox First/Limit
Prinzipiell hast du recht, geht aber in meinem Fall nicht,weil es in keiner Tabelle keinen Wert gibt, auf den ich mich verlassen kann, weil:
<weiter aushol> Eigentlich geht es mir darum einzelne Tabellen dynamisch zu erweitern. das funktioniert auch recht gut. Nur muss ich dazu wissen, ob das Feld schon existiert(sonst gibt es ne excepetion) dazu mache ich ein select * from xxxx und dann ein try query.fieldbyname('gesuchtesFeld')...except addField. </weiter aushol> Ich weiss, dass man auch über die TTable.Fielddefs die Felder abfragen kann, aber dazu muss ja IMHO die Tabelle geöffnet werden(und damit werden ja auch alle records geholt, oder) Und genau das wollte ich halt verhindern. Damit müsste meine Frage eigentlich heissen: Wie kann ich an einer Paradox Tabelle feststellen, ob ein Feld existiert, ohne dass alle Records transferiert werden?!? Gruß Dirk |
AW: Paradox First/Limit
Code:
oder sowas
.. where 1=2
|
AW: Paradox First/Limit
Code:
select * from xxx where 1<>1
|
AW: Paradox First/Limit
where 1=2?
Und das funktioniert? Na dann werde ich das mal testen. Danke für die Antworten! |
AW: Paradox First/Limit
Sicher funktioniert das, es kommt eine leere Datenmenge zurück. Nur würde ich dann nicht mit einem Try-Except-Block arbeiten, sondern einfach überprüfen, ob die von FieldByName zurückgegebene TField-Instanz gültig (also Assigned) ist.
|
AW: Paradox First/Limit
Zitat:
|
AW: Paradox First/Limit
Manche mögen das vielleicht anders sehen, aber ich finde, Exceptions sind nicht das beste Mittel zur Ablaufsteuerung.
[edit] Wie, hatte ich doch oben beschrieben:
Delphi-Quellcode:
[/edit]
var
Field: TField; begin ... Field := DeinDataset.FieldByName('KratzMichHinten'); if not Assigned(Field) then addField; |
AW: Paradox First/Limit
Hi DeddyH,
das mit dem where 1=2 funktioniert tatsächlich, aber wenn ich mitFieldByname auf ein Feld zugreife, das es nicht gibt gibt es eine Exception.... (zumindest delphi2006, in XE5 noch nicht getestet) Dann muss ich wohl beim try..except bleiben ;-(( Dennoch DANKE an alle! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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