Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Paradox First/Limit (https://www.delphipraxis.net/181023-paradox-first-limit.html)

noisy_master 9. Jul 2014 10:13

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

vagtler 9. Jul 2014 10:17

AW: Paradox First/Limit
 
Code:
SELECT * FROM WHERE <Bedingung>

noisy_master 9. Jul 2014 12:10

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

jobo 9. Jul 2014 12:15

AW: Paradox First/Limit
 
Code:
.. where 1=2
oder sowas

baumina 9. Jul 2014 12:16

AW: Paradox First/Limit
 
Code:
select * from xxx where 1<>1

noisy_master 9. Jul 2014 14:55

AW: Paradox First/Limit
 
where 1=2?

Und das funktioniert? Na dann werde ich das mal testen. Danke für die Antworten!

DeddyH 9. Jul 2014 15:06

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.

noisy_master 9. Jul 2014 15:24

AW: Paradox First/Limit
 
Zitat:

Zitat von DeddyH (Beitrag 1264985)
...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...

warum? und wie ?

DeddyH 9. Jul 2014 15:25

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:
var
  Field: TField;
begin
  ...
  Field := DeinDataset.FieldByName('KratzMichHinten');
  if not Assigned(Field) then
    addField;
[/edit]

noisy_master 10. Jul 2014 08:37

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 20:44 Uhr.
Seite 1 von 2  1 2      

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