Ciao a tutti...
ho un problema con l'esecuzione del comando RemoveRow() del dataprovider.
All'interno del record da eliminare ci sono alcune date valorizzate (database oracle).
Abilitando la stampa degli statement ho piotuto notare che prima del delete il dataprovider esegue una pre-delete select. Il problema sta proprio qui....perché la select non la fa solo per il campo chiave ("UTENTE") ma su tutti i campi. Qui di seguito un esempio
codice:
pre-delete select SELECT UTENTE, PASSWD, ENABLE, PRINTER, ALLPROC, TIPABIL, KEYB, OPER, GRUPPO, NOME, EXPIRED, PWDLIFETIME, PWDCHANGE, DATIN, WINUSR, WINDOMAIN, CREATO, VARIATO, LINGUA, SEPXLS, SMS, IND_EMAIL, IND_CC, SMTPSERV, POP3SERV, PSWD FROM UTENTI WHERE UTENTE = ? AND PASSWD = ? AND ENABLE IS NULL AND PRINTER IS NULL AND ALLPROC IS NULL AND TIPABIL IS NULL AND KEYB IS NULL AND OPER IS NULL AND GRUPPO IS NULL AND NOME IS NULL AND EXPIRED IS NULL AND PWDLIFETIME IS NULL AND PWDCHANGE IS NULL AND DATIN IS NULL AND WINUSR IS NULL AND WINDOMAIN IS NULL AND CREATO = ? AND VARIATO IS NULL AND LINGUA IS NULL AND SEPXLS IS NULL AND SMS IS NULL AND IND_EMAIL IS NULL AND IND_CC IS NULL AND SMTPSERV IS NULL AND POP3SERV IS NULL AND PSWD IS NULL
DeleteParam[1]=(java.lang.String,pippo ) DeleteParam[2]=(java.lang.String,pluto ) DeleteParam[3]=(java.sql.Date,2008-05-12)
Quando nel record le date non sono a null la delete fallisce.
Esiste un modo per dirgli che nella pre-delete deve prendere solo i campi chiave??????
Ho provato con
codice:
utentiRowSet.setKeyColumns(new int[] {1});
ma non cambia nulla....
Any idea????