23 messaggi dal 29 novembre 2003
Ho costruito una query parametrica (con access 2002) che viene eseguita in una pagina asp.net. Il problema è che il valore di un parametro chiamato @pr deriva dalle voci selezionate nella listbox a selezione multipla chiamata list_pr, quindi può essere composto da più valori. Ho provato con seguente sintassi direttamente nella griglia criteri della query: IN([@pr]), funziona se il valore è uno solo ad es. "GE", altrimenti se il paramentro diventa "GE","MI","TO" non mi da risultati.
Non so proprio come fare a risolvere questo problema, è fondamentale fare in modo che l'utente possa utilizzare listbox a scelta multipla. Qualcuno mi può aiutare? Utilizzo VB.NET come linguaggio di programmazione.

Grazie.

Ciao
76 messaggi dal 14 dicembre 2002
A me risulta che con Access nelle stringhe SQL per indicare i parametri devi usare i punti interrogativi, hai provato? Cmq una soluzione veloce potrebbe essere quella di non usare parametri e di leggere direttamente il valore selezionato del ListBox. Ciao

Marco
23 messaggi dal 29 novembre 2003
Intendi così: ?[@pr], non me lo accetta.
Cosa intendi per "leggere direttamente il valore della listbox"?

Grazie

Ciao
76 messaggi dal 14 dicembre 2002
mpala ha scritto:
Intendi così: ?[@pr], non me lo accetta.
Cosa intendi per "leggere direttamente il valore della listbox"?
Ciao


No intendo così:
strSql="INSERT INTO dati (nome,cognome,telefono) VALUES (?,?,?)"
Dove i punti interrogativi sono i parametri da passare

Non puoi mettere i valori selezionati dal tuo listbox in una variabile stringa e poi inserire quest'ultima nella tua stringa SQL? O forse non ho capito bene io il tuo problema...

Ciao


Marco
23 messaggi dal 29 novembre 2003
Scusami, forse sono io che non sono stata chiara. Io non devo inserire dei valori all'interno della tabella, devo tirare fuori tramite una stored procedure solo i record che mi interessano (il tutto tramite una pagina .aspx). Il problema è che ho creato la stored procedure con parametri in un database di access (2002) per velocizzare l'operazione di ricerca (visto che il database è molto grande) e tutto funziona a meraviglia se al parametro @pr corrisponde un solo valore ad es. "GE". Se invece l'utente seleziona più voci dalla listbox e quindi con un ciclo mi ottengo la stringa "GE";"MI";"TO" non mi esce fuori nessun record. Ovviamente nella griglia criteri della query ho inserito IN ([@pr]). Credo che il problema sia a livello database perchè se nella griglia criteri inserisco direttamente IN ("GE";"MI";"TO") - con questa punteggiatura e virgolette perchè access la accetta solo così - i record vengono correttamente visualizzati; se invece inserisco IN ([@pr]) e nella mascherina di input scrivo "GE";"MI";"TO" non mi esce fuori niente. Mi viene il dubbio che sia una limitazione di access il fatto di non accettare parametri con valori multipli! Se fosse così come posso fare a risolvere il problema?

Ti ringrazio molto.
Ciao
35 messaggi dal 27 febbraio 2004
Ho avuto lo stesso problema con SQL Server e lo ho risolto con la funzione Execute che accetta una stringa contenente la query.

Es:


SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO


ALTER  PROCEDURE [dbo].[Ordini] @sOrdini varchar(100)
AS

Exec('SELECT * FROM Order WHERE  OrderID IN (' + @sOrdini + ')')

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO




Mi dispiace ma in Access non saprei
23 messaggi dal 29 novembre 2003
Ciao,

come stringa lo accetta però io volevo farlo dalla stored procedure perchè alleggerisco un pò l'elaborazione.

Grazie lo stesso.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.