![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
Query.ParamByName mit Mengen
Hallo,
wie kann ich bei Query.ParamByName eine Menge übergeben? Bisher nutze ich das so:
Code:
Ich möchte das aber so in der Art nutzen:
Query.SQL.Text := 'SELECT * FROM MyTable WHERE Vorname = :Vorname and Alter in (34,55,89)';
Query.ParamByName('Vorname').Value := 'Peter';
Code:
Wie? Danke!
Query.SQL.Text := 'SELECT * FROM MyTable WHERE Vorname = :Vorname and Alter in :Alter';
Query.ParamByName('Vorname').Value := 'Peter'; Query.ParamByName('Alter').Value := [34,55,89]; |
AW: Query.ParamByName mit Mengen
Hallo,
mit AsString und mit Komma getrennt vielleicht? |
AW: Query.ParamByName mit Mengen
Ich dachte mal gehört zu haben, dass IBDAC-Komponenten eine Array-Funktionalität besitzen, also statt .Value oder .Text usw. etwas, wo man auch einen Index benutzen kann. (im PGDAC fand ich leider noch nichts)
Du kannst es aber mal so versuchen
Delphi-Quellcode:
?
Field.Variant := VarArrayCreate(...);
Ich hatt es zuletzt so gemacht, dass ich mein Array als kommaseparierten String übergab und auf Datenbankseite in ein Array umwandelte.
SQL-Code:
Alter in unnest(string_to_array(:liste, ',')) -- ParamByName('liste').AsString := '34,55,89';
Alter in regexp_split_to_table(:liste, ',') |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 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 by Thomas Breitkreuz