65 messaggi dal 27 agosto 2001
Ciao a tutti,
eseguendo questa riga di codice:

rs.open TestoSql, cn

Il browser mi dà quest'errore


Microsoft OLE DB Provider for ODBC Drivers errore "80040e10"

[Microsoft][Driver ODBC Microsoft Access] Parametri insufficienti. Previsto 2.

/risultatiRic.asp, riga 153


Sapreste aiutarmi?

-Luca-

-Luca-
Il problema è nella stringa SQL che passi al recordset. Controlla i campi che hai inserito nella stringa

Ciao

<b> Andrea Palmatè  </b>
<i>ASPITALIA.com</i>

--
Andrea Palmatè
1.605 messaggi dal 06 settembre 2002
questo errore viene restituito da access quando trova dei parametri che non sono stati valorizzati e di solito si verifica perchè si sbaglia un nome di campo


se per esempio c'è una tabella "Tab1" con un campo che si chiama "campo1"

se scrivo select * from Tab1 where camBo1 = 1

non riconoscendo camBo1 lo considera un parametro.
prova a postare il contenuto della variabile TestoSql


FORZA LA MAGICA ROMA

FORZA LA MAGICA ROMA
65 messaggi dal 27 agosto 2001
cioè,
nella stringa Sql c'era davvero WHERE campo1= ... mi ero dimenticato la Request!!
Ma la stringa sql varia in base al tipo della variabile nella condizione WHERE?

-Luca-

-Luca-
1.605 messaggi dal 06 settembre 2002
non ho capito la tua domanda
comunque

se il campo è numerico puoi fare così


"select * from Tab1 where campo1 = " & Request.Form("NomeText")


se il campo è stringa invece

"select * from Tab1 where campo1 = '" & Request.Form("NomeText") & "'"



FORZA LA MAGICA ROMA

FORZA LA MAGICA ROMA
65 messaggi dal 27 agosto 2001
la mia domanda,praticamente, è: se devo fare una query su un campo numerico e una query su un campo stringa, cambia qualcosa? non c'è un modo per fare la query in modo universale? alla fine, con le pagine asp che ho fatto, l'utente può selezionare sia campi numerici che alfanumerici come campi di ricerca..

-Luca-

-Luca-
1.605 messaggi dal 06 settembre 2002
hai letto il mio messaggio precedente ?
come vedi i campi stringa vanno racchiusi trà i caratteri apice

per poterli passare sempre allo stesso modo
dovresti utilizzare l'ogetto ADODB.parameter
e l'ogetto ADODB.Command

es:

set Comando = server.CreateObject("ADODB.Command")
set rsValori = Server.CreateObject("ADODB.RecordSet")
set Connessione = Server.CreateObject("ADODB.connection")

Connessione.ConnectionString = stringaConnessione
Connessione.Open

set Comando.ActiveConnection = Connessione

Comando.CommandText="select * from Tab1 where campo1 = ? "


set Parametro = server.CreateObject("ADODB.parameter")
Parametro.Value = Request.Form("NomeText") Parametro.Type = 200
Parametro.Size = 255
Parametro.Direction = 1

Comando.Parameters.Append Parametro

set rsValori = Comando.Execute


quando si utilizzano i parametri al posto del valore nella stringa sql vanno messi dei punti interrogativi.


FORZA LA MAGICA ROMA


Modificato - albis - 13 Set 2001 10:46:16

FORZA LA MAGICA ROMA

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.