Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Parametri con valori multipli nelle query di access
martedì 11 maggio 2004 - 16.28
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
mo70
Profilo
| Junior Member
54
messaggi | Data Invio:
mar 11 mag 2004 - 16:28
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
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 11 mag 2004 - 23:02
Il tuo ragionamento è giusto, cerca di capire se il problema è nella query passata o nel passaggio del parametro.
Se tu provi a fare una query in access di questo tipo:
select * from tabella1 where valore in ('MI','GE','TO')
vedrai che funziona.
Comincia a verificare il funzionamento di questa query, se funziona allora il problema è nel passaggio del parametro e lì eventualmente più tardi possiamo indagare sul perchè del non funzionamento.
ciao
david
mo70
Profilo
| Junior Member
54
messaggi | Data Invio:
mar 11 mag 2004 - 23:41
Ho provato però lo prende solo se utilizzo ; invece della , ossia ('MI';'GE';'TO'). Ho provato nuovamente a inserire il seguente criterio: In ([@pr]) nella riga del campo pr ma non mi da nessun risultato.
Grazie.
Ciao
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 12 mag 2004 - 00:20
Allora procedi così, fai semplicemente un ciclo sugli elementi della listbox in modo da ricavare quelli selezionati e poi componi una stringa come la seguente 'GE','BS','MI' ecc. e la passi concatenata come stringa dentro la IN.
ciao
david
mo70
Profilo
| Junior Member
54
messaggi | Data Invio:
mer 12 mag 2004 - 10:53
Ho provato però continua a non darmi record.Il problema è a livello database perchè già all'interno della query mi accetta la stringa solo se la scrivo direttamente nella griglia dei criteri (accetta solo questa sintassi con le virgolette e punti e virgola "ge";"mi";"to"), invece se nei criteri metto il parametro [@pr] e digito la stringa nella maschera di input non mi esce niente. Funziona (sia dalla pagina aspx che dal database) solo se indico un solo valore ad es. "ge". E' possibile che sia una limitazione di Access? Se fosse così cosa mi suggerisci?
Grazie Mille!!!!
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 12 mag 2004 - 21:00
Allora il problema è nel passaggio di parametro.
Secondo me passandolo così come ti dicevo non funziona.
Incolla un po' di codice o allegalo nel messaggio prossimo così guardo un po'.
Te l'ho detto per me è meglio ciclare sugli elementi della list fare una stringa e concatenarla.
Access non ha quella limitazione perchè la query che ti ho postato l'ho provata direttamente io quindi funziona per quello.
ciao
david
mo70
Profilo
| Junior Member
54
messaggi | Data Invio:
mer 12 mag 2004 - 23:19
Secondo te il tempo di elaborazione della pagina cambia molto se uso una stringa sql piuttosto che una stored procedure? Se la differenza è minima utilizzo la stringa!!!!
Ciao
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !