Einzelnen Beitrag anzeigen

Benutzerbild von DelphiBandit
DelphiBandit

Registriert seit: 19. Feb 2007
Ort: bei Walsrode
165 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Vorhandensein eines Records prüfen

  Alt 13. Jul 2017, 08:37
Wenn ich das richtig verstanden habe, dann interessiert Dich nur, ob ein/mehrere Datensätze da sind oder die Tabelle noch leer ist. Korrekt?

Hätte dazu folgenden Hack in meinen Firebird-Bookmarks gefunden. Ist rasend schnell, setzt aber eingeschaltete Statistics und einen Primärindex voraus. Alles was 0 liefert wurde in den Statistics bisher noch nicht angefasst.

Quelle: http://www.firebirdfaq.org/faq5/

Wobei es nicht ausgeschlossen ist, dass die Datenbank-Engine solch Konstrukte vielleicht auch selbst intern nutzt

Code:
SELECT RDB$RELATIONS.RDB$RELATION_NAME,
       CASE
         WHEN RDB$INDICES.RDB$STATISTICS = 0 THEN 0
         ELSE CAST(1 / RDB$INDICES.RDB$STATISTICS AS INTEGER)
       END
  FROM RDB$RELATIONS
  LEFT JOIN RDB$RELATION_CONSTRAINTS
       ON RDB$RELATIONS.RDB$RELATION_NAME = RDB$RELATION_CONSTRAINTS.RDB$RELATION_NAME
       AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY'
  LEFT JOIN RDB$INDICES
       ON RDB$RELATION_CONSTRAINTS.RDB$INDEX_NAME = RDB$INDICES.RDB$INDEX_NAME
WHERE RDB$VIEW_BLR IS NULL AND RDB$RELATION_ID >= 128
AND  RDB$RELATIONS.RDB$RELATION_NAME = 'HIER DEN TABELLENNAMEN'
ORDER BY 1;
Carsten

Geändert von DelphiBandit (13. Jul 2017 um 08:39 Uhr)
  Mit Zitat antworten Zitat