PDA

Visualizza la versione completa : Variabili in query SQL


BlackDog
22-06-2001, 16:30
Dovrei estrarre da un database solo i records che iniziano con una lettera selezionata da un form (Request.Form ("lettera"). Se nella query metto per esempio:

strsql = "SELECT * FROM contatti WHERE societa LIKE 'A%' ORDER BY societa"

funziona tutto perfettamente, mentre se utilizzo la variabile "selectlettera" non va e mi dice che l'applicazione ha bisogno di un record corrente (?).

Qualcuno può aiutarmi per favore?

Vi posto il codice:

<%@ Language = "VBScript" @ ENABLESESSIONSTATE=False %>

<%
dim conn
dim rs
dim strsql
dim strconn
dim selectlettera

strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath ("contatti.mdb")
set conn = server.createobject ("adodb.connection")
conn.open strconn

set rs = server.createobject ("adodb.recordset")

strsql = "SELECT * FROM contatti ORDER BY societa"
rs.open strsql, conn

useraction = request("action")
select case useraction
case "login"
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath ("contatti.mdb")
set conn = server.createobject ("adodb.connection")
conn.open strconn
set rs = server.createobject ("adodb.recordset")
selectlettera = Request.Form("lettera")
strsql = "SELECT * FROM contatti WHERE societa LIKE 'selectlettera' & %' ORDER BY societa"
rs.open strsql, conn
end select
%>

Sono alle prime armi....pietà!
Grazie a tutti!

giudilla
22-06-2001, 16:38
stai componendo male la stringa sql. Controlla
il concatenamento.

Suggerimento: prima di effettuare la query,
manda in output la stinga che componi.

strsql = "SELECT * FROM contatti WHERE societa LIKE 'selectlettera' & %' ORDER BY

BlackDog
22-06-2001, 16:52
Grazie giudilla per il consiglio

Ho fatto come mi hai detto però, nonostante la stringa sia corretta in output, lo script mi da ancora un errore, te lo posto:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access 97 Driver] Syntax error (missing operator) in query expression 'societa alike'.

Questa e la query corretta:

strsql = "SELECT * FROM contatti WHERE societa LIKE "'" & selectlettera & "%" & "'" ORDER BY societa"

Grazie ancora!

giudilla
22-06-2001, 17:11
Sicuro di aver controllato bene?
nel tuo errore

[Microsoft][ODBC Microsoft Access 97 Driver] Syntax error (missing operator) in query expression 'societa alike'.

compare l'espressione 'societa alike'

da dove salta fuori la a di 'alike'???

Ciao, Giudilla.

BlackDog
22-06-2001, 22:31
Vorrei sapere anch'io da dove arriva! Ho provato a usare Response.Write "'" & selectlettera & "%" & "'" e la stringa che mi ritorna è giusta (es. 'A%').

Grazie comunque per avermi risposto.

pucci70
23-06-2001, 12:11
in questo modo non dovrebbero esserci problemi....

strsql = "SELECT * FROM contatti WHERE societa LIKE '[" & selectlettera & "]%' ORDER BY societa"

ciao...

BlackDog
23-06-2001, 18:40
Proverò il tuo suggerimento lunedì mattina (al lavoro...)
Grazie per l'aiuto
Ciao

BlackDog
25-06-2001, 10:17
Ragazzi funziona!
Questa è la stringa giusta:

strsql = "SELECT * FROM contatti WHERE societa LIKE '"& selectlettera & "%" &"' ORDER BY societa"

Grazie a tutti per l'aiuto!

Loading