30 messaggi dal 15 agosto 2001
Sto progettando un servizio di prenotazione esami on-line.
Dopo la registrazione in una tabella ISCRITTO
(ID_iscritto, ID_esame, matricola, con ID_esame e
matricola chiavi esterne), vorrei che comparisse un
msg di conferma del tipo "lo studente X si è iscritto all'esame Y".
Però il nome dell'esame si trova in una tabella (CORSI) correlata a ISCRITTO.
Quale query devo utilizzare?

499 messaggi dal 14 luglio 2001
dovresti postare i nomi dei campi delle due tabelle, altrimenti non so con quale nome dei campi collegare le tabelle di ISCRITTO e CORSI

ciao....


enzo
www.dnetware.it

enzo
www.dnetware.it
30 messaggi dal 15 agosto 2001
allora...
il mio db è composto (per ora) da 3 tabelle: <br>CORSO (<b>codice</b>, nome, tipo, aula, giorno, ora)
<br>STUDENTE (<b>matricola</b>, nome, cognome...)<br>
ISCRITTO (<b>ID_iscritto</b>, matricola, codice).<p>
Nella tabella ISCRITTO, che correla STUDENTE e CORSO, matricola e codice sono le chiavi esterne.
<p>
Ora, dopo che uno studente si iscrive ad un esame nella tabella ISCRITTO:<br>
<%
dim oRS, oConn, sql, codice, matricola, nome
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/esami.mdb"
oConn.Open "DSN=esami.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
%>
<p>
che query devo utilizzare per far sì che appaia un messaggio di conferma del tipo "nome_studente ha scelto l'esame nome_esame" ?

<p>
ciao e grazie.



499 messaggi dal 14 luglio 2001
Subito dopo l'immissione ...



SQL="SELECT MAX(IDIscritto), matricola, codice, Studente.nome, cognome, Corso.Nome "&_
"FROM Iscritto, Studente, Corso WHERE matricola='" & Request.Form("matricola") & "' "&_
"AND Codice='" & Request.Form("codice") & "' "&_
"AND Iscritto.matricola=Studente.matricola AND Iscritto.codice=Corso.codice"

-------> Connessione

Frase= rs("Studente.Nome") & rs("Cognome") & " Ha scelto l'esame " & rs("Corso.nome")

Guarda... l'ho scritta senza verificarla... dovrebbe andare bene già così...

ciao
enzo
www.dnetware.it



Modificato - conidi - 16 Ago 2001 20:35:51

enzo
www.dnetware.it
30 messaggi dal 15 agosto 2001
guarda, ho provato a fare come mi hai consigliato, ma purtroppo credo di fare qualche errore che non so correggere...

se puoi dirmi dove sbaglio...

grazie fin da ora.

<%
dim oRS, oConn, sql, ID_esame, matricola
matricola=Request.Form("matricola")
ID_esame=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/esami.mdb"
oConn.Open "DSN=esami.dsn"
Set oCmd=Server.CreateObject("ADODB.Command")
Set oCmd.ActiveConnection= oConn
sql="INSERT INTO iscritto (matricola, ID_esame)"
sql=sql & "values(' "&matricola&" ', ' "&ID_esame&" ');"
oCmd.CommandText= sql
oCmd.Execute
SQL="SELECT MAX(ID_iscritto), matricola, codice, studente.nome, cognome, corso.nome "&_
"FROM iscritto, studente, corso WHERE matricola='" & Request.Form("matricola") & "' "&_
"AND codice='" & Request.Form("codice") & "' "&"AND iscritto.matricola=studente.matricola AND iscritto.codice=corso.codice"
Response.Write (oRS("studente.nome") & oRS("studente.cognome") & " Ha scelto l'esame " & oRS("corso.nome"))
Set oConn= Server.CreateObject("ADODB.connection")
oRS.Open sql, "DSN=esami.dsn"
Set oRS= Nothing
oConn.Close
Set oConn= Nothing
%>


499 messaggi dal 14 luglio 2001
SQL="SELECT MAX(ID_iscritto), matricola, codice, studente.nome, cognome, corso.nome "&_
"FROM iscritto, studente, corso WHERE matricola='" & matricola & "' "&_
"AND codice='" & ID_esame & "' "&"AND iscritto.matricola=studente.matricola AND iscritto.codice=corso.codice"

la riga sopra èstata modificata...

Se ID_Esame = codice della tabella
altrimenti al posto di "codice", se la variabile ID_esame=nome devi inserire "Corso.nome".

se hai problemi posta...

ciao


enzo
www.dnetware.it

enzo
www.dnetware.it
30 messaggi dal 15 agosto 2001
ciao,
non so per quale motivo ho spedito la versione con ID_esame...

comunque ecco il codice corretto:


<%
dim oRS, oConn, sql, codice, matricola, nome
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/esami.mdb"
oConn.Open "DSN=esami.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 MAX(ID_iscritto), matricola, codice, studente.nome, studente.cognome, corsi.nome "&_
"FROM iscritto, studente, corsi WHERE matricola='" & matricola & "' "& "AND codice='" & codice & "' "&"AND iscritto.matricola=studente.matricola AND iscritto.codice=corsi.codice"
Set oConn= Server.CreateObject("ADODB.connection")
oRS.Open sql, "DSN=esami.dsn"
oCmd.CommandText= sql
oCmd.Execute
Response.Write (oRS("studente.nome") & oRS("studente.cognome") & " Ha scelto l'esame " & oRS("corsi.nome"))
Set oRS= Nothing
oConn.Close
Set oConn= Nothing
%>


i dati vengono inseriti correttamente nella tabella ISCRITTO, poi c'è un errore:


Microsoft OLE DB Provider for ODBC Drivers errore "80004005'

[Microsoft][Driver ODBC Microsoft Access] Il riferimento al campo specificato 'matricola' potrebbe essere relativo a più tabelle elencate nella proposizione FROM dell'istruzione SQL.

/esercizio/iscrivi1.asp, riga 21


grazie ancora.


499 messaggi dal 14 luglio 2001
Sostituisci la stringa SQL con questa....

SQL="SELECT TOP 1 iscritto.matricola, iscritto.codice, studente.nome, 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"

Ciao... Fammi sapere...



enzo
www.dnetware.it

enzo
www.dnetware.it

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.