9 messaggi dal 04 marzo 2002
Sto nei guai con uno script asp. Non riesco a capire come farlo funzionare.

Lo scopo è controllare nel database MySQL se esiste già un record con il medesimo numero di documento (campo non univoco), di data e di registro e reindirizzare l'utente su una pagina di errore da me scritta.

Ma il file asp provoca questo

Tipo di errore:
(0x80020009)
Eccezione.

indicando che corrisponde alla riga
...
if RsForm("numero") = RF_numero then
...


Ecco il listato incriminato, che ricorre ad una funzione per la creazione del recordset GetRS(sql):
<%
'controllo della form
' numero è integer, data è datetime, servizio è varchar
if request.form("numero") <> "" then
sqlform = "SELECT numero FROM tDetermine WHERE numero = " & RF_numero & " AND data = '" & RF_data & "' AND servizio LIKE '" & RF_registro & "';"
set RsForm = GetRS (sqlform)
if RsForm("numero") = RF_numero then
response.redirect ("errore.asp?n=" & RF_numero & "&d=" & RF_data)
end if
set RsForm = Nothing
end if
%>

La funzione che ricorre al MySQL ODBC 3.51 Driver
<%
function GetRS (sequel)

' Connection string to the access db
Set cconn = CreateObject("ADODB.Connection")
cconn.Open dsn

'crea recordset
set Rs=Server.CreateObject("ADODB.recordset")
Rs.CursorLocation=adUseClient

' Execute the sql
Rs.Open sequel, cconn , adOpenStatic, adLockPessimistic

'chiudi connessione al recordset
set Rs.ActiveConnection=Nothing

'genera oRS
set GetRs = Rs

' close the objects
cconn.Close
Set cconn = Nothing
set Rs = Nothing
end function
%>
Io verificherei che il recordset non sia vuoto (RsForm.EOF And RsForm.BOF) anziché comparare RsForm("numero") con RF_numero (se hai dei record, i due valori sono per forza uguali visto che nella clausola di where c'è WHERE numero = RF_numero).

Matteo Casati
GURU4.net
9 messaggi dal 04 marzo 2002
Ho risolto con .RecordCount. Grazie! Non avevo riflettuto sulla stringa SQL ed il WHERE.

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.