![]() |
Datenbank: firebird • Version: 2.0.1 • Zugriff über: ZEOS
select * from table where id = ein Wert vom Array
Hallo Leute,
wie kann ich ein Array von Zahlen abfragen..
Delphi-Quellcode:
..das wird nämlich ganz schön lang ... ;-)
select * from table where (id=1) OR (id=2) OR (id=7) OR (id=10) OR (id=16) OR (id=17) ...
Vielen Dank Erich |
Re: select * from table where id = ein Wert vom Array
SQL-Code:
select * from table where id in (1, 2, 7, 10, 16, 17, ...)
|
Re: select * from table where id = ein Wert vom Array
Danke für die schnelle Antwort :-)...
Hab ich da kein Problem mit der Länge des Statements ? ..SQL technisch gesehen.. (Performance ist natürlich geringer, je mehr Einträge im Array sind)... Gehen tut´s um folgendes.. im ersten DbGrid kann ich ein Objekt auswählen - und im zweiten DbGrid wird mir dann der Datensatz gezeigt, der mit dem ersten matched... Jetzt will ich "multiselect" im ersten DbGrid realisieren .. und da können schon mal einige hundert datensätze selectiert werden.. |
Re: select * from table where id = ein Wert vom Array
Ein Statement zu parsen ist das kleinste Problem einer Datenbank. Nach dem Parsen kommt erstmal eine Rechteprüfung, dann Zugriff aufs Dateisystem (oder den Cache), verarbeiten der Indizes.. Hunderte Zeilen sind für ein einzelnes Statement kein Problem, tausende vermutlich auch nicht. Du musst dir immer im klaren darüber sein, dass deine Daten irgendwie zum Server müssen, und ein einzelnes Statement macht das viel schneller und effizienter als viele einzelne Statements. Wenn deine Datenbank und dein Konnektor Arrays unterstützt, kannst du versuchen, ein Array für die IDs zu benutzen - dann wird das Statement sehr kurz, aber die Daten müssen trotzdem noch irgendwie zum Server.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:22 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