Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    201

    Inserimento record in due tabelle relazionate

    Salve a tutti
    Oggi stò rimettendo mano al mio progetto, ovviamente mi assale un dubbio:
    Ho due tabelle relazionate:

    tab_merc tab_carico
    id_merc (pk) id_mag
    cod id_merc
    lotto quantita
    quantita data
    selezione

    Ora la relazione è uno a molti da tab_merc.id_merc a tab_carico.id_merc,
    dovrei fare un'operazione, semplice a dirsi ma fino ad ora è stato difficile a farsi,
    ossia quando inserisco un nuovo oggetto in tab_merc dovrei inserire id_merc e quantita nella tabella tab_carico, tab_merc.id_merc (è un campo contatore)...
    Un consiglio su come fare?

    Grazie in anticipo.

  2. #2
    non c'ho cap nient perché se scriv in tab con merc quand poi legg id fuzz bang

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    201
    HAHAHAHAHHA... ops...
    Allora le due tabelle sono:

    tab_merc
    id_merc (pk)
    cod
    lotto
    quantita
    selezione

    e poi:

    id_mag (pk)
    id_merc
    quantita
    data

    Ora la relazione è uno a molti da tab_merc.id_merc a tab_carico.id_merc,
    dovrei fare un'operazione, semplice a dirsi ma fino ad ora è stato difficile a farsi,
    ossia quando inserisco un nuovo oggetto in tab_merc dovrei inserire id_merc e quantita sia nella tabella tab_merc ma anche tab_carico, tab_merc.id_merc (è un campo contatore)...
    Un consiglio su come fare?

  4. #4
    ti direi: con delle INSERT! ma siccome mi pare una risposta troppo scontata, immagino che il problema sia un po' più complesso, e ti pregherei di esporlo con più chiarezza, magari con un esempio, dicendo bene dove ti stai arenando

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    201
    Allora io uso questo codice per inserire l'oggetto nella tabella: tab_merc:
    <%
    dim strBarre
    strBarre = request.form("codice a barre")

    dim strLotto
    strLotto = request.form("numero di lotto")

    dim strQuantita
    strQuantita = request.form("quantita")

    dim strSelezione
    strSelezione = request.form("selezione")

    dim strCode
    strCode="innovatel"

    Set Conn=Server.CreateObject("ADODB.Connection")

    strConn="driver={Microsoft Access Driver (*.mdb)}; "

    strConn=strConn & " DBQ=" & Server.MapPath("magazzino.mdb")

    strConn=strConn & ";pwd=" & strCode

    Conn.Open strConn

    sql = "SELECT * FROM merce, carico"

    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,3,3


    rs.addnew
    rs(1) = strBarre
    rs(2) = strLotto
    rs(4) = strQuantita
    rs(5) = strSelezione

    rs.update

    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing
    %>

    Fin qui tutto bene, l'inserimento va a buon fine, ora dovrei inserire nella tabella tab.carico la "quantita" però ovviamente id_merc.tab_merc e id_merc.tab_carico devono essere uguali perchè in altre pagine richiamo o modifico i record inseriti.
    Mi blocco perchè non saprei cosa usare se una insert oppure se provare con un UPDATE ...

  6. #6
    ooook. appena finito l'inserimento, esegui una

    SELECT @@IDENTITY FROM Merce

    il valore che ti riporta è l'id appena inserito, che puoi usare successivamente

    that easy

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    201
    Allora,
    prima di tutto grazie come sempre optime, (soprattutto perchè alle cose mi ci fai arrivare!!!)
    ora ti aggiorno su quello che ho fatto:

    dim strCode
    strCode="innovatel"

    Set Conn=Server.CreateObject("ADODB.Connection")

    strConn="driver={Microsoft Access Driver (*.mdb)}; "

    strConn=strConn & " DBQ=" & Server.MapPath("magazzino.mdb")

    strConn=strConn & ";pwd=" & strCode

    Conn.Open strConn

    sql = "SELECT * FROM merce"

    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,3,3


    rs.addnew
    rs(1) = strBarre
    rs(2) = strLotto
    rs(4) = strQuantita
    rs(5) = strSelezione

    rs.update

    Function GetLastId(byRef Conn,merce)
    Dim Rs
    Set Rs = Conn.Execute("Select @@IDENTITY FROM " & merce)
    GetLastId = Rs(0)
    Rs.Close()
    Set Rs=Nothing
    end Function

    LastId=GetLastId(Conn,"merce")

    sql_c= "SELECT * FROM carico"
    Set rs_carico = Server.CreateObject("ADODB.Recordset")
    rs_carico.Open sql_c, conn ,3,3
    rs_carico.addnew

    rs_carico(1) = LastId
    rs_carico(2) = quantita

    rs_carico.update

    rs_carico.Close
    set rs_carico = Nothing


    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing
    %>

    Allora vedo che l'id è lo stesso, ma ho un problemino la quantità non la vedo se richiamo la pagina del carico, c'è qualcosa che non và...

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    201
    ahahah che babbo...
    Maledetta distrazione, il nome della variabile era diverso... Ora funziona, mah c'è un problema...
    Nella tabella carico, ho un campo data (mi serve per fare delle ricerche) quando visualizzo la tabella carico vedo che il campo data si ripete...

    Non capisco questo esito da cosa dipenda!

  9. #9
    non capisco la storia della data

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    201
    In allegato ho messo la visualizzazione della pagina .asp.
    Questo è il codice della pagina di visualizzazione:

    <%
    rs.Open "SELECT * FROM merce INNER JOIN carico ON merce.ID_merc=carico.ID_merc", cn, 1
    If rs.EOF Then
    %>


    Nessun record trovato!</p>
    <%
    Else
    While rs.EOF = False
    %>

    <TD width="16%"><%=rs("barre")%></TD>
    <TD width="8%"><%=rs("lotto")%></TD>
    <TD width="25%"><%=rs("data")%></TD>
    <TD width="8%"><%=rs("quantita")%></TD>
    <TD width="7%"><%=rs("selezione")%></TD>
    <TD width="8%"><%=rs("bolla")%></TD>
    <TD width="12%"><%=rs("scadenza")%></TD>
    <TD width="16%"><%=rs("id_fornitore")%></TD>
    <TD width="25%"><%=rs("descrizione")%></TD>
    <TD width="7%"><%=rs("prezzo")%></TD>

    </TR>

    <%
    rs.MoveNext
    Wend
    End If
    rs.Close
    %>
    Immagini allegate Immagini allegate

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.