Newsgroup: it.comp.lang.visual-basic
Titolo: [vb6][ADO] - errore su .AddNew

premessa: uso un db Access 2k (ma lo stesso errore, in una situazione
simile, mi è capitato sotto oracle)
le textbox non sono collegate al recordset e nemmeno una griglia.
ho un recordset aperto su una tabella:
SELECT * FROM Tab1
mi capita questo fatto:
aggiungo un nuovo record tramite addnew, scrivo i dati nei campi via
codice e faccio update.
tutto ok
ora faccio subito una modifica assegnando a un campo un nuovo valore;
faccio update e mi compare
Run-time error '-
2147217864
 (80040e38)':
Impossibile individuare la riga specificata per l'aggiornamento. E'
possibile che
alcuni valori siano stati modificati dopo l'ultima operazione di
lettura.
ora:
ho notato che questo errore sembra (ripeto: SEMBRA) non comparire nel
caso che tutti i campi siano riempiti.
qualcuno ha altre idee?
grazie
ciao
Daniele

Modifichi un record appena inserito?
    1.Fai attenzione ai blocchi sulla tabella nella modalità incui la apri
    2.dopo addnew devi aggiungere update / updatebatch per confermare la
scrittura nel db
    3.controlla che i campi della tabella accettino il valore <NULL> (nel
caso di ti SEMBRA)
    4.fornisci altre info utili per una soluzione più precisa (ad esempio,
parte del codice)
Ciao Massimiliano
"(-: Dan :-)" <Lu...@Jigen.Goemon> ha scritto nel messaggio
news:3A8D17D9...@Jigen.Goemon...


 faccio update e mi compare
E' capitato anche a me, ma pensavo accadesse solo quando tentavo di
aggiornare un campo chiave.


[...]

Ragazzi, vi siete persi in un bicchier d'acqua!
allora, rispondo a max:
1.non blocco la tabella (anche xè sono io il singolo utente)
2.ovviamente faccio l'update (lo dico anche ....)
3.funziona xè il primo Update non dà errori
4. inserisco i dati (addnew + scrittura dei campi); salvo (update); scrivo
i nuovi valori; rifaccio update.-> errore
rispondo a marco:
non tocco il campo chiave
rispondo ad alfondo:
uso ADO, non serve (non esiste!) l'edit.
cmq grazie a tutti
ora: qualcun'altro ha un'idea??
è molto urgente, devo (dovrei... :-((   ) consegnare il programma

Ok hai ragione, me ne ero scordato.
Dal messaggio d'errore sembrerebbe un problema di ID univoco del record,
anche se non ci giurerei. Ce l'hai una chiave univoca sulla tabella?
Ciao
Alfonso
[...]

Allora provo io :)
"Generalmente, il tipo di informazioni generate da ADO al fallimento di
aggiornamenti ottimistici restituisce un messaggio di errore indicante che
non è possibile individuare la riga specificata per l'aggiornamento ed è
possibile che alcuni valori siano stati modificati dall'ultima lettura:
THE SPECIFIED ROW COULD NOT BE LOCATED FOR UPDATING: SOME VALUES MAY HAVE
BEEN CHANGED SINCE IT WAS LAST READ.
ma ciò dipende da quello che non è andato a buon fine. Se si presenta un
conflitto di aggiornamento ottimistico o una violazione di integrità
referenziale quando si chiama recordset.updatebatch, si potrebbe ricevere un
errore che fa riferimento solo alle violazioni di integrità referenziale. E
in alcuni casi ADO restituirà un messaggio che indica semplicemente che si è
verificato un errore".    David Sceppa "Programmare ADO"
Insomma hai un bel problema: capire dove sta il problema.
a quanto pare ADO segnala l'ultimo di una serie di errori non la causa
scatenante
forse c'è qualcosa che non quadra sull'integrità referenziale.
per evitare conflitti, ma non credo che questo sia il caso prova con un
resync prima del secondo addnew.
Lo so: è una ca...ata ma anche il messaggio di errore e una ca...ta.
Ciao
Basty

il fatto è che chiavi univoche ne ho... solo 1 .... il contatore!!!!!! che
quindi non è il problema :-(((
non ho relazioni tra tabelle!!!... :-((((
il problema infatti l'ho già risolto rifacendo il requery..
ma non mi piace....


 ma non mi piace....
Domanda stupida: per caso apri il recordset in ForwardOnly?

 è molto urgente, devo (dovrei... :-((   ) consegnare il programma
mi sembra che altri avessero postato lo stesso errore, ma non ricordo
risposte certe. forse in deja, cercondo numero o descrizione dell'errore.
evidentemente l'addnew o non influisce o incasina il risultato della query.
forse la cosa piu' semplice e' proprio rifare la query.
mi sa che c'eri arrivato, dicendo che fai il requery. ma questo nel post
iniziale non lo dicevi. e neanche in quello che cito qui sopra. lo dici in
quello finale...
un'antica glossa all'haiku di palsho^ dice:
non intorbidare l'acqua, se vuoi vederci chiaro... :)
ciao, a.

ovviamente no!
keyset..


ok
al termine di questa discussione, mi fareste un piacere?
rispondete anche al msg appena sopra?? (query VS child)