Salve a tutti ho 2 tabelle DOC_MAST e DOC_DETT collegate tra loro da un campo chiamato donumdoc con integrità referenziale e con relazione uno a molti da mast a dett.
Devo cancellare tutti gli articoli di doc_dett che rispettano delle determinate condizioni su doc_mast così avevo pensato ad una "delete in select".
L'ho scritta così:
non mi restituisce nessun errore ma non effettua la cancellazione.codice:qry = qry & " DELETE FROM dbo.DOC_DETT " qry = qry & " WHERE dbo.DOC_DETT.DONUMDOC IN (SELECT dbo.DOC_MAST.DONUMDOC FROM dbo.DOC_MAST WHERE dbo.DOC_MAST.DODATA = '" + Replace(dataieri, "'", "''") + "' AND dbo.DOC_MAST.DOCODCLI = " + Replace(codcli, "'", "''") + " AND dbo.DOC_MAST.DOSTATO = '" + Replace(stato, "'", "''") + "' AND dbo.DOC_MAST.DONUMDOC < 0) "
In fondo ho messo questo controllo per vedere se c'è errore in (ASP):
E la pagina mi scrive sempre OK, quindi non riscontra errori ma non effettua la cancellazione.codice:if err = 0 Then response.write("OK") else response.Write("Errore in fase di cancellamento dati errore numero " & err) end if
se stampo la stringa questo è il risultato:
quindi i valori sono passati correttamente (anche se la select deve restituire non un record solo ma molti più record.codice:DELETE FROM dbo.DOC_DETT WHERE dbo.DOC_DETT.DONUMDOC IN (SELECT dbo.DOC_MAST.DONUMDOC FROM dbo.DOC_MAST WHERE dbo.DOC_MAST.DODATA = '27/04/2010' AND dbo.DOC_MAST.DOCODCLI = 99 AND dbo.DOC_MAST.DOSTATO = 'T' AND dbo.DOC_MAST.DONUMDOC < 0)
Come mai non cancella niente??

Rispondi quotando
