Forum: Datenbanken
by Sir Rufo,
20. Nov 2010
Meiner Meinung macht das Prepared nur dann Sinn, wenn genau diese Abfrage mehrfach benutzt wird.
Die Anzahl der Parameter ist aber variabel und somit ist es nur Zufall, wenn die Abfragen gleich sind.
Somit bringt ein Prepared überhaupt nichts, wenn es sich nicht sogar negativ auswirkt, weil vorbereitet, dann abgefragt wird und dies bei jeder Abfrage.
Forum: Datenbanken
by Sir Rufo,
20. Nov 2010
Ab einer bestimmten Parameter-Anzahl müsste man mal das Konzept überdenken.
Ansonsten bleibt immer noch die Möglichkeit die Werte in eine temp. Tabelle zu übertragen und dann wie folgt prüfen
Where Feld In ( Select tmpFeld From tmpTab )
Forum: Datenbanken
by Sir Rufo,
20. Nov 2010
Und auch nur gefühlt mehr Arbeit
QryStr := '... Where Feld In (' + ParStr( 5 ) + ')';
die Funktion ParStr( Count : integer ) liefert dir dann die entsprechenden Parameter-Felder in der gewünschten Anzahl.
Nun ist der Aufwand die Werte an die Parameter zu übergeben geringer als diese als String aufzubauen.
Forum: Datenbanken
by Sir Rufo,
20. Nov 2010
ok, man scheint mich nicht zu verstehen
for idx := 1 to AnzahlParameter do
InParamStr := InParamStr + Format( ':InParam%d', );
Die Kommas fehlen noch, aber der Ansatz sollte nun klar sein.
Die Werte jetzt den Parametern zuweisen und dann abschicken.
Forum: Datenbanken
by Sir Rufo,
20. Nov 2010
Trotzdem würde ich bei Parametern bleiben
Where Feld In (:InPar1, :InPar2, ...)
sonst fummelt man sich einen mit Quotes etc. zu Tode