Errore query: Parametri insufficienti. Previsto 3

  • Creatore Discussione Creatore Discussione basy82
  • Data di inizio Data di inizio

basy82

Utente Attivo
31 Dic 2005
210
0
0
siracusa
Ragazzi x favore aiutoooo non capisco cosa sbaglio...

Ho una tabella Utenti(naturalmente su acces).. e dei campi Si/No..che mi stanno ad indicare le autorizzazioni di ogni utente..

Esempio: User=pippo - password=pippo - PromoA=Si - PromoB=No - PromoC=Si... e così via..

Poi la tabella Promozioni..ogni Promozione è associata a un Codice...
Esempio:
Promozione:testo della mia promo - Codice=A

L'utente che entra nell'area riservata..potrà visualizzare solo le promozioni ke è autorizzato a vedere..in base alle spunte Si/No..

Sigh nn so se riesco a spiegarmi..

Cmq mi da errore sulla query ke compongo in questo modo...

Codice:
Cod="tutti"
Set Rs=Server.CreateObject("ADODB.Recordset") 'RecordSet tab Promozioni

Sql="Select * from Promozioni where Codice='" & Cod & "' "

'---------------Controllo Autorizzazioni------------------------
if RsUtente("PromoA")=true then Sql=Sql & " and PromoA=true "
if RsUtente("PromoB")=true then Sql=Sql & " and PromoB=true "
if RsUtente("PromoC")=true then Sql=Sql & " and PromoC=true "
if RsUtente("PromoD")=true then Sql=Sql & " and PromoD=true "
if RsUtente("PromoE")=true then Sql=Sql & " and PromoE=true "
if RsUtente("PromoF1")=true then Sql=Sql & " and PromoF1=true "
if RsUtente("PromoF2")=true then Sql=Sql & " and PromoF2=true "

'---------------------------------------------------------------
Sql=Sql & " order by id desc;"


Rs.Open Sql,Conn,3,3

Mi da errore alla riga in cui apro il recordSet:
Parametri insufficienti. Previsto 3

Qualcuno mi aiuta??
:crying:
 
basy82 ha scritto:
...Mi da errore alla riga in cui apro il recordSet:
Parametri insufficienti. Previsto 3 ...
Ciao Lucia (giusto?) ;)

Da quel che mi ricordo questo errore solitamente è dovuto al fatto che i nomi dei campi specificati nella query sono diversi rispetto quelli della tabella vera e propria :)

Prova a fare un controllo in questa direzione

Fammi sapere ;)

SaLuT!
:byebye:
 
Ciao..mi kiamo Valentina :)

Cmq ho provato a sostituire i controlli in questo modo...

'---------------Controllo Autorizzazioni----------------------

if RsUtente("PromoA")=1 then Sql=Sql & " and PromoA=" & 1
if RsUtente("PromoB")=1 then Sql=Sql & " and PromoB=" & 1
if RsUtente("PromoC")=1 then Sql=Sql & " and PromoC=" & 1
if RsUtente("PromoD")=1 then Sql=Sql & " and PromoD=" & 1
if RsUtente("PromoE")=1 then Sql=Sql & " and PromoE=" & 1
if RsUtente("PromoF1")=1 then Sql=Sql & " and PromoF1=" & 1
if RsUtente("PromoF2")=1 then Sql=Sql & " and PromoF2=" & 1

'-----------------------------------------------------------

Risultato?
NEssun Errore...ma non entra nella condizione e nn mi filtra nessuna promozione...

Se provo a fare: response.write Sql & " - " & RsUtente("PromoB")
..mi stampa a video questo
Select * from Promozioni where Codice='tutti' order by id desc; - Vero

Ma vero...e 1 nn è la stessa cosa come valore booleano? PErchè nn entra nelle condizioni?
 
basy82 ha scritto:
Ciao..mi kiamo Valentina :)
OPS!! :D :D :D

basy82 ha scritto:
Se provo a fare: response.write Sql & " - " & RsUtente("PromoB")
..mi stampa a video questo
Select * from Promozioni where Codice='tutti' order by id desc; - Vero

Ma vero...e 1 nn è la stessa cosa come valore booleano? PErchè nn entra nelle condizioni?
Mmm. che strano..

Prova allora a modificare le condizioni così:
if RsUtente("PromoA")='Vero' then Sql=Sql & " and PromoA=" & 1
if RsUtente("PromoB")='Vero' then Sql=Sql & " and PromoB=" & 1
if RsUtente("PromoC")='Vero' then Sql=Sql & " and PromoC=" & 1
if RsUtente("PromoD")='Vero' then Sql=Sql & " and PromoD=" & 1
if RsUtente("PromoE")='Vero' then Sql=Sql & " and PromoE=" & 1
if RsUtente("PromoF1")='Vero' then Sql=Sql & " and PromoF1=" & 1
if RsUtente("PromoF2")='Vero' then Sql=Sql & " and PromoF2=" & 1

magari così all'elaboratore piace e te lo fa funzionare ;)
 
Niente...avevo già provato ma non va..:dipser:

Cmq ti ringrazio x la disponibilità...
se ti viene in mente qlcs.. :book:
 
basy82 ha scritto:
Niente...avevo già provato ma non va..:dipser:
Lo immaginavo, ed è anche giusto sia così, perchè i vari RsUtente("") non sono campi stringa.. :rolleyes:

Prova a settare le condizioni così allora: ;)
if Cstr(RsUtente("PromoA"))='Vero' then Sql=Sql & " and PromoA=" & 1
e così via..

In questo modo li converti in stringa e puoi confrontarli con ='Vero' (spero :D)

A più tardi!
:byebye:
 
PoLe ha scritto:
Ehm.. valentina.. non è per essere puntiglioso.. ma dovresti dirmi CHE errore ti da, altrimenti alla cieca è difficile aiutarti ;)

:p Scusa Pole ma quando mi blocco...sullo stesso problema..per diverse ore... comincio ad innevorsirmi :incazz:
Ho visto ke nn funzionava e l'ho cambiato di nuovo :p

Sai.. è ke nn credo sia la soluzione giusta...converitre in stringa..prima dell'If ..cmq le ho provate tutte (o almeno credo...)

Con l'ultima prova ke mi hai suggerito tu..mi dava errore di sintassi..
 
basy82 ha scritto:
:p Scusa Pole ma quando mi blocco...sullo stesso problema..per diverse ore... comincio ad innevorsirmi :incazz:
Eh eh, come ti capisco! :D

basy82 ha scritto:
Sai.. è ke nn credo sia la soluzione giusta...converitre in stringa..prima dell'If ..cmq le ho provate tutte (o almeno credo...)

Con l'ultima prova ke mi hai suggerito tu..mi dava errore di sintassi..
Ti posso assicurare che converitre in stringa prima dell'If funziona, ho appena provato fidati ;)

Solo ti da errore perchè siccome ero di fretta ho fatto un piccolo errore io: devi mettere gli apici doppi, non singoli, per quello ti da errore di sintassi! :)
if Cstr(RsUtente("PromoA"))='Vero' then Sql=Sql & " and PromoA=" & 1 --> NO
if Cstr(RsUtente("PromoA"))="Vero" then Sql=Sql & " and PromoA=" & 1 --> SI

Altra soluzione poi possibile è scrivere
if RsUtente("PromoA") then Sql=Sql & " and PromoA=" & 1


Ma secondo me l'errore è da un'altra parte, e c'è qualcosa che mi sfugge.. prova come ti ho detto intanto!

:byebye:
 
Solo una ideea....

:rolleyes:
ciao basy82,
erò di passaggio su questa piattaforma e ho visto il tuo post, credo che si tratti solo del fatto che ti mancano degli APICI da qualche parte nello script, prova ad inserire in questo modo, aviso e solo un ideea....:

allora questo e quello che tu hai esposto:
'---------------Controllo Autorizzazioni------------------------
if RsUtente("PromoA")=true then Sql=Sql & " and PromoA=true "
if RsUtente("PromoB")=true then Sql=Sql & " and PromoB=true "
if RsUtente("PromoC")=true then Sql=Sql & " and PromoC=true "
if RsUtente("PromoD")=true then Sql=Sql & " and PromoD=true "
if RsUtente("PromoE")=true then Sql=Sql & " and PromoE=true "
if RsUtente("PromoF1")=true then Sql=Sql & " and PromoF1=true "
if RsUtente("PromoF2")=true then Sql=Sql & " and PromoF2=true "

'---------------------------------------------------------------
Sql=Sql & " order by id desc;"

e adesso l'ideea che io ho:

'---------------Controllo Autorizzazioni------------------------
if RsUtente("PromoA")=true then Sql=Sql & '" and PromoA=true "'
if RsUtente("PromoB")=true then Sql=Sql & '" and PromoB=true "'
if RsUtente("PromoC")=true then Sql=Sql & '" and PromoC=true "'
if RsUtente("PromoD")=true then Sql=Sql & '" and PromoD=true "'
if RsUtente("PromoE")=true then Sql=Sql & '" and PromoE=true "'
if RsUtente("PromoF1")=true then Sql=Sql & '" and PromoF1=true "'
if RsUtente("PromoF2")=true then Sql=Sql & '" and PromoF2=true "'

'---------------------------------------------------------------
Sql=Sql & " order by id desc;"

in genere quando il explorer di da questo messaggio di errore si tratta, come dicevo prima, degli APICI, quindi controlla bene il tuo script.

bye a presto, facci sapere. :byebye:
 
chycky ha scritto:
if RsUtente("PromoA")=true then Sql=Sql & '" and PromoA=true "'
Ciao chychy :)

Grazie per aver deciso di darci una mano, ma non si può fare come dici tu, e ti spiego il perchè:
Quando si va a comporre una stringa in ASP NON si possono mettere all'esterno gli apici singoli, perchè l'apice singolo serve ad indicare l'inizio di un commento.

Facendo come dici
if RsUtente("PromoA")=true then Sql=Sql & '" and PromoA=true "'
andrebbe tutto in bomba, perchè l'elaboratore vedrebbe tutto ciò che appare dopo la & come commento.

Inoltre tieni presente che il problema per il quale stiam porconando da ieri è legato agli IF, non all'assegnazione del valore alla variabile Sql ;)

Comunque Valentina, non mi è ancora venuto in mente nulla.. :p

:byebye:
 
Se vi dico ke ho risolto vi basta? O devo dirvi anke cosa sbagliavo???
Se ve lo dico mi uccidete via web!!!!:hammer:
 
basy82 ha scritto:
Se vi dico ke ho risolto vi basta? O devo dirvi anke cosa sbagliavo???
Se ve lo dico mi uccidete via web!!!!:hammer:
Eh eh, beh, ora son curioso però! :D :D :D

Dai valentina, cos'era?
Prometto casomai che la tua sarà un morte rapida, senza sofferenze, ih ih ih! :evil:
 
PoLe ha scritto:
Eh eh, beh, ora son curioso però! :D :D :D

Dai valentina, cos'era?
Prometto casomai che la tua sarà un morte rapida, senza sofferenze, ih ih ih! :evil:

Sigh allora confesso....

Ho fatto una confusione..pazzesca..senza alcun motivo..:p

Praticamente..dei campi erano scritti sbagliati nella tab Promozioni..e nn so perchè.. io controllavo la tabella utenti..(ke è rimasta sempre aperta ed io ero convinta di stare controllando la tab giusta!!!)..

Imperdonabile...davvero...
Scusate x il tempo ke vi ho fatto perdere..(e ke il mio cervello a volte(spesso..) si blocca..ed io invece di resettare..continuo..ed i risultati sono questi :eek:

Allora ke morte mi merito??:D
 
basy82 ha scritto:
Sigh allora confesso....
Praticamente..dei campi erano scritti sbagliati nella tab Promozioni..e nn so perchè.. io controllavo la tabella utenti..(ke è rimasta sempre aperta ed io ero convinta di stare controllando la tab giusta!!!)..
Ma pensa te!!! :quote:
E pensa che era dal primo post che ti dicevo di guradare in quella direzione :D
PoLe ha scritto:
...questo errore solitamente è dovuto al fatto che i nomi dei campi specificati nella query sono diversi rispetto quelli della tabella vera e propria :)...

basy82 ha scritto:
Allora ke morte mi merito??:D
Mmmmm... ci penserò, inzia a pregare, muh-ah-ah-ah! :evil:

Eh eh, scherzi a parte, a volte è successo anche qualcosa di simile.. come dicevi qualche tempo fa, siamo tutti, specie agli inizi, vittime dello stress da programmatore! :D

:byebye:
 
Bella Scusa...quella dello stress..:D

La verità è ke vado sempre a peggiorare...anzikè migliorare..:hammer:

Ps. hai deciso la pena ke dovrò scontare?
 

Discussioni simili