Non è che ti stai confondendo? Hai invertito il tuo modo di pensare.
Devi tener presente che RecTab.Available restituisce TRUE se il record c'è e FALSE se esso non c'è. Quel NOT secondo me ti sta facendo solo confondere.
Daccordissimo con la tua riflessione teorica sul
RecTab.Available . Però essa non vale per l'istruzione
DELETE, perché si comporta come se cercasse il record cancellato e fornisce sempre
FALSE, sia che il record venga cancellato, sia che il record non venga trovato, perché inesistente. Ho voluto infatti essere certo della mia affermazione del post di apertura ed ho eseguito la seguente prova:
RecTab = DB_Connection.EXEC("DELETE FROM partmovv WHERE DtCoPartGlob = '" & i_dataCont & "' and DtSolPartGlob = '" & i_Data & "' and OraSolPartGlob = '" & i_Orario & "'")
IF RecTab.Available THEN
Message.Info("Record 'partmovv' valido")
ELSE
Message.Info("Record 'partmovv' non valido")
ENDIF
Come si può vedere dal codice riportato qui sopra,
ho cambiato la "IF NOT RecTab.Available" in "IF RecTab.Available" ed il risultato ottenuto dopo la cancellazione del record é l'emissione del messaggio "
Record 'partmovv' non valido", corrispondente alla condizione di
FALSE. Ho ripetuto poi la prova tentando la cancellazione di un record inesistente ed ho ottenuto sempre lo stesso risultato:
FALSEProvare per ... credere.