30 messaggi dal 15 agosto 2001
ciao e grazie ancora!

partiamo dalla pagina in html:

<form name=utenti action="http://oemcomputer/esercizio/iscr.asp" method="post">
<table width=100 border=0><tr><td>
<input name="matricola" type=text><font size=2>matricola</font></td>
<td>
<SELECT name="corso" size=1> <OPTION
selected value="">------------</OPTION>
<OPTION value=01><font size=2>Informatica</font>
</OPTION>
<OPTION value=02><font size=2>Storia</font>
</OPTION>
<OPTION value=03><font size=2>Semiotica</font>
</OPTION>
</SELECT><font size=2>corsi</font><FONT color=#ffffff></td></tr> </FONT>
<tr><td>
<INPUT name=Submit type=submit value=invia></table>
</form>

value=codice dell'esame nella tabella CORSI

------------------------------------------

iscr.asp:


<%
dim oRS, oConn, sql, codice, matricola, nome, cognome
matricola=Request.Form("matricola")
codice=Request.Form("corso")
set oRS=Server.CreateObject("ADODB.Recordset")
set oConn=Server.CreateObject("ADODB.Connection")
oConn.ConnectionString="DRIVER = {Microsoft Access Driver (*.mdb)};" & _
"DBQ= C://Inetpub/wwwroot/esercizio/unito.mdb"
oConn.Open "DSN=unito.dsn"
Set oCmd=Server.CreateObject("ADODB.Command")
Set oCmd.ActiveConnection= oConn
sql="INSERT INTO iscritto (matricola, codice)"
sql=sql & "values(' "&matricola&" ', ' "&codice&" ');"
oCmd.CommandText= sql
oCmd.Execute
sql="SELECT TOP 1 iscritto.matricola, iscritto.codice, studente.nome, studente.cognome, corsi.nome "&_
"FROM iscritto, studente, corsi WHERE iscritto.matricola='" & matricola & "' "& "AND iscritto.codice='" & codice & "' "&_
"AND iscritto.matricola=studente.matricola AND iscritto.codice=corsi.codice ORDER BY ID_iscritto DESC;"
oCmd.CommandText= sql
oCmd.Execute
Response.Write (oRS("studente.nome") & oRS("studente.cognome") & " Ha scelto l'esame " & oRS("corsi.nome"))
End If
Set oRS= Nothing
oConn.Close
Set oConn= Nothing
%>


a questo punto, riferendosi alla riga del Response.Write, mi da il seguente errore:

Impossibile trovare l'oggetto nell'insieme corrispondente al
nome o al numero di riferimento richiesto dall'applicazione.

---------------------------------------------

Forse è importante sapere che sia matricola che codice sono in access di tipo testo sia nelle rispettive tabelle che in ISCRITTO?
Inoltre ID_iscritto della tabella ISCITTO è un contatore.


le sto provando tutte!

grazie!

499 messaggi dal 14 luglio 2001
Semplice, non è stato istanziato l'oggetto oRS, prova a fare in questo modo...
cancelli tutto dopo la stringa SQL e scrivi..

oRS.Open SQL, oConn, 3 , 1, 1
Response.Write (oRS("studente.nome") & oRS("studente.cognome") & " Ha scelto l'esame " & oRS("corsi.nome"))
Set oRS= Nothing
oConn.Close
Set oConn= Nothing

attenzione però che se non trova lo studente iscritto ti da errore, quindi devi prima verificare che il codice inserito sia esistente..., questo in fase di registrazione all'esame...

e la risposta sta sull'altro post che hai fatto... :-))

ciao alla prossima



enzo
www.dnetware.it

enzo
www.dnetware.it
30 messaggi dal 15 agosto 2001
<%
dim oRS, oConn, sql, codice, matricola
matricola=Request.Form("matricola")
codice=Request.Form("corso")
Set oRS=Server.CreateObject("ADODB.recordset")
'verifico se è registrato
sql="SELECT * FROM studente WHERE matricola='" & matricola &"';"
Set oConn= Server.CreateObject("ADODB.connection")
oRS.Open sql, "DSN=unito.dsn"
If oRS.EOF Then
Response.Write ("Lei non si ancora registrato!")
Else
set oRS=Server.CreateObject("ADODB.Recordset")
set oConn=Server.CreateObject("ADODB.Connection")
oConn.ConnectionString="DRIVER = {Microsoft Access Driver (*.mdb)};" & _
"DBQ= C://Inetpub/wwwroot/esercizio/unito.mdb"
oConn.Open "DSN=unito.dsn"
Set oCmd=Server.CreateObject("ADODB.Command")
Set oCmd.ActiveConnection= oConn
sql="INSERT INTO iscritto (matricola, codice)"
sql=sql & "values(' "&matricola&" ', ' "&codice&" ');"
oCmd.CommandText= sql
oCmd.Execute
sql="SELECT TOP 1 iscritto.matricola, iscritto.codice, studente.nome, studente.cognome, corsi.nome "&_
"FROM iscritto, studente, corsi WHERE iscritto.matricola='" & matricola & "' "& "AND iscritto.codice='" & codice & "' "&_
"AND iscritto.matricola=studente.matricola AND iscritto.codice=corsi.codice ORDER BY ID_iscritto DESC;"
oRS.Open sql, oConn, 3 , 1, 1
Response.Write (oRS("studente.nome") & oRS("studente.cognome") & " Ha scelto l'esame " & oRS("corsi.nome"))
End If
'Set oRS= Nothing
'oConn.Close
'Set oConn= Nothing
%>

-------------------------------------------

Purtroppo mi da sempre lo stesso errore:
Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero di riferimento richiesto dall'applicazione.

Ho provato anche a sostituire oRS.Open sql, oConn, 3 , 1, 1 con oRS.Open sql, "DSN=unito.dsn" ma niente.

Tra l'altro ho dovuto mettere gli apici alla fine del codice perchè, quando compariva il msg "lei non registrato!",
mi dava errore:

L'operazione richiesta dall'applicazione non è consentita se l'oggetto è chiuso.

---------------------------------------------
Mi sa che ti stò stressando un pochettino...
Se non ti va più di segurmi posso capirlo!



499 messaggi dal 14 luglio 2001
Ti posso assicurare che la stringa SQL che ti ho postato funziona al 100%, il problema si trova nella connessione ed apertura dell'oggetto di connessione intanto controlla, che provo a fartela e poi te la posto..

ciao..


enzo
www.dnetware.it

enzo
www.dnetware.it
499 messaggi dal 14 luglio 2001
Prova a copiare questo codice senza modificare nulla, al limite l'unica cosa, in caso di qualche problema, è attiva la stringa del DNS....

dim oRS, Conn, sql, codice, matricola

set Conn=Server.CreateObject("ADODB.Connection")
strConnect="DRIVER = {Microsoft Access Driver (*.mdb)};" & _
"DBQ= C://Inetpub/wwwroot/esercizio/unito.mdb"
'Conn.Open "DSN=unito.dsn"
Conn.Open strConnect

matricola=Request.Form("matricola")
codice=Request.Form("corso")
SQL="SELECT matricola FROM studente WHERE matricola='" & matricola & "'"
Set oRS=Server.CreateObject("ADODB.Recordset")
oRS.Open SQL, Conn, 1, 1, 1
nrecord=oRS.Recordset
oRS.Close
Set oRS=Nothing
If nrecord=0 Then
Response.Write ("Lei non si ancora registrato!")
Else
SQL="SELECT * FROM iscritto"
Set oRS=Server.CreateObject("ADODB.Recordset")
oRS.Open SQL, Conn, 1, 3, 1
oRS.AddNew
oRS("matricola")=matricola
oRS("codice")=codice
oRS.Update
oRS.Close
Set oRS=Nothing
Set oRS=Server.CreateObject("ADODB.Recordset")
sql="SELECT TOP 1 iscritto.matricola, iscritto.codice, studente.nome, studente.cognome, corsi.nome "&_
"FROM iscritto, studente, corsi WHERE iscritto.matricola='" & matricola & "' "& "AND iscritto.codice='" & codice & "' "&_
"AND iscritto.matricola=studente.matricola AND iscritto.codice=corsi.codice ORDER BY ID_iscritto DESC;"
oRS.Open sql, oConn, 3 , 1, 1
Response.Write (oRS("studente.nome") & oRS("studente.cognome") & " Ha scelto l'esame " & oRS("corsi.nome"))
oRS.Close
Set oRS=Nothing
Conn.Close
Set Conn=Nothing

End If

ciao...

enzo
www.dnetware.it

Modificato - conidi - 19 Ago 2001 16:35:38

Modificato - conidi - 19 Ago 2001 16:37:14

enzo
www.dnetware.it
30 messaggi dal 15 agosto 2001
ciao,

ora mi da questo errore:
Proprietà o metodo non supportati dall'oggetto: 'Recordset'

riferito a nrecord=oRS.Recordset


499 messaggi dal 14 luglio 2001
Si scusa...

ho sbagliato, sostituisci con

oRS.RecordCount

ciao

enzo
www.dnetware.it

enzo
www.dnetware.it
30 messaggi dal 15 agosto 2001
<%
dim oRS, Conn, sql, codice, matricola
set Conn=Server.CreateObject("ADODB.Connection")
strConnect="DRIVER = {Microsoft Access Driver (*.mdb)};" & _
"DBQ= C://Inetpub/wwwroot/esercizio/unito.mdb"
Conn.Open "DSN=unito.dsn"
matricola=Request.Form("matricola")
codice=Request.Form("corso")
SQL="SELECT matricola FROM studente WHERE matricola='" & matricola & "'"
Set oRS=Server.CreateObject("ADODB.Recordset")
oRS.Open SQL, Conn, 1, 1, 1
nrecord=oRS.RecordCount
oRS.Close
Set oRS=Nothing
If nrecord=0 Then
Response.Write ("Lei non si ancora registrato!")
Else
sql="INSERT INTO iscritto (matricola, codice)"
sql=sql & "values(' "&matricola&" ', ' "&codice&" ');"
Set oRS=Server.CreateObject("ADODB.Recordset")
oRS.Open SQL, Conn, 1, 3, 1
Set oRS=Server.CreateObject("ADODB.Recordset")
sql="SELECT TOP 1 iscritto.matricola, iscritto.codice, studente.nome, studente.cognome, corsi.nome "&_
"FROM iscritto, studente, corsi WHERE iscritto.matricola='" & matricola & "' "& "AND iscritto.codice='" & codice & "' "&_
"AND iscritto.matricola=studente.matricola AND iscritto.codice=corsi.codice ORDER BY ID_iscritto DESC;"
oRS.Open sql, Conn, 3, 1, 1
Response.Write(oRS("studente.nome") & oRS("studente.cognome") & " Ha scelto l'esame " & oRS("corsi.nome"))
oRS.Close
Set oRS=Nothing
Conn.Close
Set Conn=Nothing
End If
%>

OK se la matricola non coincide.

se coincide mi da sempre lo stesso errore!
Response.Write!

Ho dovuto togliere Add.... perkè non supportato dal provider.

non so più dove sbattere la testa!!

grazie di cuore!

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.