Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Update e delete nella stessa query

    Ciao, sempre io.

    Ho due tabelle una "anagrafica" l'altra "raccoltadati"; in sostanza una parte dei dati dell'"anagrafica" vengono inseriti con delle query nella "raccolta dati".

    Le due tabelle sono così strutturate:

    Anagrafica = id, idmateriale, materiale, data
    Raccoltadati = id, idmateriale, materiale, datanew, carico, scarico.

    Il problema è che quando cancello un record dalla tabella "raccoltadati" devo fare anche l'update dell'id di quel determinato record nella tabella "anagrafica" ed ho scritto così:
    codice:
     <%
    cod = Request.Querystring("cod")
    
    SQL = "DELETE FROM raccoltadati WHERE IDmateriale = "&cod
    Cn.Execute(SQL)
    
    strSQL = "UPDATE anagrafica set data = null where id = "&cod
    cn.Execute strSQL
    %>
    In realtà nella tabella "raccoltadati" possono esserci più idmateriale uguale, per cui quando faccio il delete mi andrà ad eliminare tutti i records con idmateriale = numero; invece, dovrebbe cancellare soltanto quel materiale con l'id selezionato.

    C'è una soluzione?

  2. #2
    Non ho capito bene che vuoi fare.
    Se hai un id del materiale perchè non usi quello?
    E poi non ti consiglio di chiamare una tabella 'data'. Rientra in molte parole riservate dei db.
    www.sergiogandrus.it
    Il mio blog sull'informatica

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Forse con un esempio sono più chiaro; supponiamo di inserire nella tabella raccoltadati un materiale ricevuto venerdì passato:

    Il record avrà i seguenti campi:

    id = 1
    idmateriale = 36
    materiale = piedi di piombo
    datanew = 03/06/2005
    carico = 2
    scarico = 0

    In data di oggi riceviamo altro materiale "piedi di piombo" e lo inseriamo nel dbase:

    id = 2
    idmateriale = 36
    materiale = piedi di piombo
    datanew = 06/06/2005
    carico = 5
    scarico = 0

    Nella tabella raccoltadati, avrò a questo punto due records con id diverso (contatore chiave primaria), ma con id materiale uguale.

    Supponiamo, adesso, che per un errore di caricamento devo eliminare il record numero 2 ed aggiornare nella tabella anagrafica il campo datainserimento, inserendo un valore nullo, cosa faccio:

    mi estraggo tutti i records con una select e con un link in cui passo l'idmateriale gestione.asp?cod=<%=idmateriale%> apro la pagina:

    codice:
    <%
    cod = Request.Querystring("cod")
    
    SQL = "DELETE FROM raccoltadati WHERE IDmateriale = "&cod
    Cn.Execute(SQL)
    
    strSQL = "UPDATE anagrafica set data = null where id = "&cod
    cn.Execute strSQL
    
    %>
    cosa succede:

    che la query di update funziona e sostituisce la data registrata con un "null" nell'id richiamato, mentre la query delete va a cancellare sia il record 1 che il record 2, invece che soltanto il record 2.

    Se, invece, nel link passo l'id (contatore chiave primaria), la delete funziona, ma la update mi aggiorna un id che nulla ha a che vedere con l'idmateriale.

    Più chiaro?
    Grazie

  4. #4
    ma scusa un attimo perchè nelle due tabelle selezioni il record in base a cod ma su due campi diversi?

    codice:
    SQL = "DELETE FROM raccoltadati WHERE IDmateriale = "&cod
    Cn.Execute(SQL)
    
    strSQL = "UPDATE anagrafica set data = null where id = "&cod
    cn.Execute strSQL

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    perchè sono due campi diversi di due tabelle diverse... con una sql faccio l'eliminazione del record dalla tabella raccoltadati, con la strSQL faccio l'update della data nella tabella anagrafica...

  6. #6
    e se gliele passi tutte e due? sia id che idmateriale. con idmateriale fai la update e con id fai la delete.

  7. #7
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    tutt'è due?
    si può? come?
    grazie!

  8. #8
    come glielo passi adesso l'idmateriale?

  9. #9
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da xxfuma85xx
    come glielo passi adesso l'idmateriale?
    codice:
    gestione.asp?cod=<%=idmateriale%>

  10. #10
    codice:
    gestione.asp?cod=<%=idmateriale%>&cod2=<%=id%>

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 © 2025 vBulletin Solutions, Inc. All rights reserved.