Newsgroup: it.comp.lang.visual-basic
Titolo: [?] DataGrid, AddNew, CanceUpdate

Ciao a tutti,
seguendo le indicazioni lette sul Ng, prima di porvi la mia domandina ho
cercato i vecchi post su Google dove con mia somma sorpresa su questo
argomento c'è un solo post domanda con un solo post risposta (peraltro non
esplicativa)
il problema riguarda un evento che mi pare strano non sia capitato a
nessuno:
scenario:
Rs ( "select ecc..", Connessione, adOpenDynamic, adLockOptimistic")
DataGrid appoggiata via codice su Rs
Pulsante add  (esegue Rs.AddNew)
Pulsante Cancel ( esegue Rs.CancelUpdate)
situazione:
eseguo Add poi voglio annullare subito con Cancel
Evento:
viene generato un errore, ma non dal Rs come mi aspettavo (quello funziona
correttamente), a generare l'errore è il DataGrid che mi dice "impossibile
inserire una riga vuota. Iserire almeno un valore di colonna"
Qualcuno ha qualche informazione su questo errore?
P.S. Ho l'impressione che mamma Microsoft si sia data un gran daffare a
progettare ADO ( che non gli è venuto malaccio) ma che poi ci abbia dato un
po su con i controlli (che non sembrano un granchè pratici)
grazie e ciao a tutti

po su con i controlli (che non sembrano un granchè pratici)
Beh, lavorando manin manina, unbound alla follia, un bel po' i codice in
più, la praticità te la fai tu... (:-P) però eviti un bel po' di
errori...
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------


Su questo posso mettere la firma:
Bel lavoro con Ado ma pessimo lavoro sui controlli, (credo) nel tentativo di
farne come al solito qualcosa da usare tipo copy-paste... quando la
smetteranno di trattarci come imbelli, forse miglioreranno il prodotto...
ciao
ugo


non funziona mica, perchè l'errore viene generato proprio da cancelupdate,
quindi non arriva ad eseguire la seconda riga.
mi sa che una volta fuori da questo marasma (devo presentare il programma ad
una conferenza il 15 ottobre e cominciare a spedirlo ai clienti entro il 15
novembre... come sempre i programmatori finiscono per lavorare con tempi
strettini), comincerò anch'io a lavorare su una classe per gestire un po di
situazioni.
grazie comunque.
Fabio Pellati
Ferrara

 Potresti postare il codice esatto?
il codice è quello semplice di un form dei test preparato apposta per
testare l'errore:
dopo aver creato il Rs aggancio Il DataGrid
set MiaDg.DataSource= rs
poi su Click del pulsante CmdAdd:
rs.AddNew
e su Click del pulsante CmdCancel:
Rs.CancelUpdate
ho provato con dei campi di testo connessi con la Binding collection e
funziona bene, con il DataGrid invece non funziona e debaggando il codice
risulta proprio il DataGrid ad andare in errore.
Grazie, Ciao
Fabio Pellati
Ferrara

situazioni.
ottima idea :-)
Visto che comunque sempre di controlli bound si tratta, prova un po' qui:
PRB: ADODC Error on Reposition When EOFAction Is adDoAddNew 
Q190642
http://support.microsoft.com/support/kb/articles/Q190/6/42.ASP
Dovrebbe comunque adattarsi anche al tuo caso.
ciao, hal
che non conosce questi problemi perche' non usa mai controlli bound :-)

 risulta proprio il DataGrid ad andare in errore.
(premesso che non conosco affatto ado, ma che ho letto vari post in cui si
parlava dei suoi controlli molto difettosi)
non riesci a gestire l'inserimento con un form _sganciato_ da _qualsiasi_
controllo, e aggiornare la griglia solo se e' andato a buon fine ? in questo
modo dovresti poter effettuare l'addnew solo se i campi sono stati compilati
e controllati.
ciao, a.

 inserire una riga vuota. Iserire almeno un valore di colonna"
so che ciò che sto per scrivere non è una soluzione molto pulita, però a
modo suo funziona e per ora (vista la fretta) mi devo accontentare:
per evitare questo problema vado ad eseguire le operazioni di AddNew e
CancelUpdate su un record Clonato dal mio record principale.
grazie all'utilizzo della BindingCollection non devo neanche scrivere un
mucchio di codice per re-bindare i controlli quindi in un'ottica di cercare
di risparmiare tempo (e denaro) per ora può andare.
Fabio Pellati
Ferrara

 inserire una riga vuota. Iserire almeno un valore di colonna"
so che ciò che sto per scrivere non è una soluzione molto pulita, però a
