3 messaggi dal 05 marzo 2007
Salve a tutti
sono alle prime armi con asp ma non pensavo di bloccarmi così presto.
Espongo il mio problema.
Vorrei passare il valore di una querystring ad un'istruzione sql.

Ho creato una pagina di richiesta con un link
<a href="elaborazione.asp?CodiceSito=0201">codice 0201</a>.

Nella pagina elaborazione.asp ho inserito il seguente codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<% Option Explicit %>
<!--#include file="connessionedatabase.asp"-->
<!--#include virtual="/adovbs.inc"--> etc:::::::::::

<%
dim iSito
iSito= request.QueryString("CodiceSito") 'recupero valore
dim strSQL
strSQL = "SELECT * FROM SITI WHERE CodiceSito ='iSito'" 'passo il valore

dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn

%>
Segue codice per la formattazione della tabella HTML e il ciclo Do While Not objRS.EOF etc::::::::::::::::::

Il database usato è ACCESS. La colonna "CodiceSito" è impostata a testo. Ho seguito tutta la procedura che ho studiato per la normalizzazione del database.
Sto usando IIS5.0 in locale.

Quando avviene la richiesta si visualizza solamente la formattazione della tabella senza i valori.

Ho provato con response.write a stampare il valore iSito e lo vedo a monitor, quindi desumo che il valore sia stato effettivamente recuperato.

Se inserisco manualmete nell'istruzione SQL 0201 appare correttamente la tabella attesa quindi l'istruzione è corretta.

A questo punto desumo che faccia un errore nel modo in cui ho scritto l'istruzione sql con il valore passato dalla querystring. Oppure chi sa cosa!!!

Spero di essere stato chiaro e che qualche anima pia si muova a compassione :)

grazie anticipato
maxuno
2.410 messaggi dal 13 febbraio 2003
Contributi
visualizza a schermo la variabile strSQL e fai girare la query in Access
3 messaggi dal 05 marzo 2007
Grazie Christian per l'interessamento

stampando a monitor strSQL vedo: SELECT * FROM SITI WHERE CodiceSito = 'iSito' deduco quindi che il valore della querystring recuperato con l'oggetto request e assegnato alla variabile iSito non passi all'interno dell'istruzione sql.

Ripeto che se inserisco manualmente il valore di iSito nell'istruzione sql funziona tutto perfettamente (codice html per la tabella e il ciclo do while).

Se stampo il valore di iSito recuperato con l'oggetto request lo leggo correttamente.

Ho provato a scrivere l'istruzione sql nel seguente modo:

strSQL = "SELECT * FROM SITI WHERE CodiceSito =" & (iSito)

mi viene restituito il seguente messaggio di errore:
.................Errore di sintassi (operatore mancante) nell'espressione della query 'CodiceSito ='.
elaborazioneuno.asp, line 36

la linea 36 nel mio codice corrisponde a:
objRS.Open strSQL, objConn

Sono un po' scoraggiato visto che sono bloccato da tre giorni su 'sto problema.
Io penso che o è completamente sbagliato il mio approccio oppure c'è un problema di apertura-chiusura di apici nell'istruzione sql.

Grazie a Christian e a chiunque voglia rispondermi
2.410 messaggi dal 13 febbraio 2003
Contributi
sostituisci la riga della stringa SQL con

strSQL = "SELECT * FROM SITI WHERE CodiceSito ='" & iSito & "';" 


e vedrai che funziona tutto

Poi già che ci sei dai un occhiata qui
in modo da usare le stored procedure invece di codice SQL

http://www.aspitalia.com/script/312/Utilizzare-Stored-Procedure-ASP.aspx
3 messaggi dal 05 marzo 2007
Un grande GRAZIE a te Christian
ora funziona tutto. Era un problema di apici come avevo sospettato, ma non sarei mai arrivato a scrivere correttamente questa istruzione.
Considerando che era la mia prima istruzione sql...!!!! 'stavo messo proprio male'
(nota gli apici) come si dice a Roma.
Grazie di nuovo
Max

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.