Newsgroup: it.comp.www.asp
Titolo: Dati in piu' tabelle con ASP3

Salve a tutti,
ho un piccolo db con tre tabelle collegate da relazioni.
In Access, posso usare le maschere per inserire dati
che saranno poi "automaticamente" posti in relazione
uno con l'altro.
Ora vorrei trasferire il db in rete e so come fare una INSERT
pero'... come faccio a farlo con una sola schermata?
Mi spiego:
sulla stessa schermata ho tre campi di testo in cu inserisco
COGNOME
CLIENTE
ORDINE
e questi tre dati devono andare ovviamente in tre tabelle diverse ma
rimanere
correlati per le future ricerche.
Alla pressione del tasto SUBMIT, il tutto deve essere effettivamente
inserito
al posto giusto.
Come faccio a farlo con ASP?
DreamWeaver non supporta piu' tabelle nei suoi automatismi e per farlo"a
mano"
non ho proprio idee.
Ho girato in rete ma non ho trovato suggerimenti (forse ho cercato cose
sbagliate!)
Ringrazio chiunque potra' darmi qualche indicazione per proseguire.
Buon lavoro a tutti!
Pasquale

 
direi che devi fare 3 insert, una per ciascuna tabella.
Diciamo che la relazione tra le tabelle č data dall'ID cliente (o codice 
cliente).
Ora, c'č da vedere come lo generi. 
Se il campo ID cliente č un contatore, quindi si genera da solo, PRIMA 
fai l'insert del cliente, poi vai a ricercare (SELECT) l'ultimo ID 
(quindi il piů alto), poi ottenuto questo fai la INSERT nelle altre 
tabelle.
Se il codice cliente lo generi tu (per esempio facendo una SELECT 
dell'ultimo cliente) allora puoi fare le 3 INSERT direttamente.
A dire il vedo non ho ben capito perchč hai 3 tabelle (va bene la 
CLIENTI, la ORDINI, ma l'altra?)

 non ho proprio idee.
[OT] E poi c'è gente che mi assale dicendomi che sono un pazzo quando 
affermo che per sviluppare codice ASP non si deve mai usare DreamWeaver con 
i suoi automatismi, perché se c'è bisogno di qualche modifica non si sa mai 
dove mettere le mani. Questo è proprio uno di quei casi. [/OT]
La soluzione più semplice è scrivere tu il codice in questo modo:
cognome=request("cognome")
cliente=request("cliente")
ordine=request("ordine")
Quindi, apri una connessiona al database ed esegui le tre query per 
l'inserimento dei dati:
strConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " &_
    Server.MapPath("../db/master.mdb")
Set conn = server.CreateObject("ADODB.connection")
conn.open strConn
SQL= "inser into tabella1 values('" & cognome & "')"
conn.execute (SQL)
SQL= "inser into tabella2 values('" & cliente & "')"
conn.execute (SQL)
SQL= "inser into tabella3 values('" & ordine & "')"
conn.execute (SQL)
conn.close
Niente di difficile in fondo... :)
Ciao
--
AZ 

 AZ
Si, non e' complesso, ma dal tuo esempio capisco che avro' inserito i tre
dati ma per le relazioni?
Vediamo.... Quando faccio la prima insert (mettiamo che sia quella del
cliente con ID come campo contatore,
chiave primaria) il campo ID viene incrementato.
Le insert successive, hanno come chiave esterna sempre il valore di
ID_cliente e quindi tutto dovrebbe funzionare
con tanto di debite associazioni.
Ho detto giusto?
In pratica, il mio dubbio riguardava proprio il "passaggio" (relazionale)
delle chiavi da una tabella all'altra.
Molte grazie anche a te per la spiegazione!
Pasquale

 Pasquale
Puoi risolvere scrivendo nella prima tabella, dopodiché leggi il suo ID che 
utilizzerai per gli altri inserimenti:
Set conn = server.CreateObject("ADODB.connection")
conn.open strConn
SQL= "inser into tabella1 values('" & cognome & "')"
conn.execute (SQL)
set rs=conn.execute("select max(id) from tabella1")
id=rs(0)
Quindi nella variabile id hai l'ID di quella registrazione che potrai 
utilizzare negli altri inserimenti.
Ciao
--
AZ