Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Vorhandensein eines Records prüfen (https://www.delphipraxis.net/193294-vorhandensein-eines-records-pruefen.html)

hoika 13. Jul 2017 18:32

AW: Vorhandensein eines Records prüfen
 
Hallo,
es geht darum, festzustellen,
ob es mindestens einen Record einer bestimmten Where-Klausel gibt.

Select First 1 From RechnungsId From RechnungsPosition Where RechnungsId=1

DelphiBandit 13. Jul 2017 19:10

AW: Vorhandensein eines Records prüfen
 
Sorry, aber ich habe die Frage wie p80286 offensichtlich ebenfalls falsch verstanden. Dafür kannst Du den Hack vergessen, der ist nur um zu prüfen, ob überhaupt ein Datensatz in der Tabelle vorhanden ist.

Und wie Du schon selbst korrekt ergänzt hast, funktioniert das nur für Tabellen ohne gelöschte Datensätze zuverlässig. Damit es nach Löschung wieder funktioniert ist ein Backup mit "Garbage collection" (gbak -g) und anschliessendes Restore notwendig.

himitsu 13. Jul 2017 19:27

AW: Vorhandensein eines Records prüfen
 
Zitat:

Backup, Restore, ....
Sollte ein Check/Optimize/Analyze/Rpair/... nicht die freien Stellen der gelöschten Records entfernen und die Statistik aktualisieren?



SELECT FIRST muß doch eventuell auch die Sortierung beachten? (wenn die DB daher auch noch erst sortiert, muß erstmal alles gesucht werden)
Mit DISTINCT wird es dann noch schlimmer.
Und bei COUNT muß sowieso alles erstmal gesucht werden.

1 oder true statt * im SELECT dürfte auch etwas sparen, wenn nicht alle Felder der gefundenen/verwendeten Records geladen werden brauchen.
(falls das DBMS nicht schon schlau genug ist und mitbekommt, dass es am Ende eh keines der Felder braucht und sie somit weg lässt)

EXSIST sollte da doch eventuell besser laufen, da dort alles egal ist

hoika 14. Jul 2017 07:17

AW: Vorhandensein eines Records prüfen
 
Hallo,
SELECT FIRST muß doch eventuell auch die Sortierung beachten?

Eventuell, wenn ich ein Order By machen würde,
aber für das einfache Erkennen des Vorhandenseins mindestens eines Records ist das ja nicht notwendig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:20 Uhr.
Seite 2 von 2     12   

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