Ho una lista di interi o di stringhe e ho bisogno di passarlo come parametro per un DataSet Delphi. Come farlo?Delphi: come passare un elenco come parametro a una query SQL?
Ecco un esempio. MyQuery è qualcosa di simile:
select * from myTable where intKey in :listParam
mi piacerebbe impostare un parametro come una lista o un array o qualcosa d'altro:
MyQuery.ParamByName('listParam').AsSomething := [1,2,3];
e si tradurrebbe in questa query inviata al server sql:
select * from myTable where intKey in (1, 2, 3)
sarebbe ancora meglio se la soluzione sarebbe anche lavorare con le stringhe, rendendo questa query:
select * from myTable where stringKey in :listParam
diventano:
select * from myTable where stringKey in ('a', 'b', 'c')
Credo che questa sia una domanda semplice, ma "IN" non è una buona parola chiave per la ricerca sul Web.
Si prega di rispondere come dovrei configurare il parametro nell'IDE, la query e come passare i parametri.
sto usando Delphi 7.
A cura: Sto valutando la risposta è "non è possibile fare direttamente". Se qualcuno mi dà una risposta non hacker, la risposta accettata verrà cambiata.
Puoi purtroppo. È una deficienza nel linguaggio SQL: non ha alcun concetto di "un tipo di lista". –
Potrebbero esserci alcune opzioni a seconda del DBMS che si utilizza. Cosa stai usando? SQL Server, Oracle, ....? –
@ MikaelEriksson: sto utilizzando SQL Server, ma credo che sia un problema di lingua Delphi. – neves