Newsgroup: it.comp.lang.visual-basic
Titolo: vb6 - ADO - salvataggio e modifica dati

Risolti i problemi BOF EOF, basta farci l'abitudine.
Ringrazio chi m'ha aiutato.
--
Per quanto riguarda l'eliminazione di un record ho provveduto con un bel:
cnn.execute "delete from tablename where campo = valore"
--
per l'inserimento ho fatto una cosa del tipo:
with rec
    .addnew
    !campo=valore1
    !altrocampo=valore2
    .update
end with
--
non trovo come fare la modifica di un record però.
non trovo un .edit, ma solo un .editmode che mi restituisce lo stato del record attuale.
devo per forza fare un cnn.execute "....." ?
suggerimenti?

no, no........puoi usare anche la .Execute.....ma il fatto è che non c'è un
.Edit, per cui diventa:
with rec
    !campo=valore1
    !altrocampo=valore2
    .update
end with
cioè, dopo aver aperto un recordset, sei già in modalità Edit, al contrario
di quanto avveniva con DAO dove invece dovevi esplicitarlo.....
good coding!!!
-- 
Damiani Liborio Igor
ig...@igordamiani.it
 - 
soft...@igordamiani.it
 - 
idam...@hotmail.com
http://www.igordamiani.it
ICQ : 11847262

 good coding!!!
Beeelllooo!!!
Grazie ;-)

 di quanto avveniva con DAO dove invece dovevi esplicitarlo.....
Non ho provato e quindi potrei dire una frescaccia, ma mi sento di
"pignolare":
Non sei in stato di Edit dopo aver aperto un recordset, ma solo dopo averne
assegnato almeno un campo.
Non so infatti se un Update senza aver assegnato alcun campo funzioni...
Comunque il concetto è chiaro e semplice: In ADO scompare il metodo Edit
(che è di DAO) e ogni assegnazione ai campi è sempre disponibile, da
concludersi, come in DAO, con l'Update, ma, attenzione, uno spostamento su
altro record esegue un Update (se ci sono state assegnazioni) implicito e
automatico, salvo un esplicito (se non ricordo male) CancelUpdate prima
dello spostamento.


Questione di punti di vista... Io direi "bruttissimo!"
Sempre per la leggibilitŕ e "io gli faccio fare quel che voglio, lui di suo
non deve fare un bel niente"

sempre a fare il guastafeste, tu, eh?!?!?!?!?
:-)))
però mi sa che hai ragione, se dopo aver fatto la .Open dai un .Update mi sa
che ti dà errore......
perciò in effetti la modalità Edit "inizia" quando modifichi il valore di un
campo......
secondo me è comodo così, non è che ADO fa di testa sua senza dir
nulla......
prima dovevo fare .Edit e poi fare la modifica, adesso invece faccio
direttamente la modifica e sono a posto!!


 non deve fare un bel niente"
io ho messo dei campi di testo non collegati.
faccio tutte le mie modifiche senza cambiare il record.
se non ci sono record nel database ho messo il "command" modifica disabilitato. (per prevenire l'errore)
se clicco su salva e sono nella modalità inserimento (significa che ho premuto il command nuovo) mi aggiunge un record.
se clicco su salva e sono nella modalità modifica (significa che il command modifica è abilitato e l'ho premuto) mi modifica il
record.
quando scorro avanti e indietro nel recordset, eseguo una "sub cancella_video" seguita da una "sub visualizza" che mi mostra i dati
attuali sui campi di testo, dtpicker, combo ecc..
c'è qualcos'altro da tener conto?
a me sembra funzionare bene.
ho già provato ad eliminare tutti i record, premere modifica senza record, modificare un record esistente, andare all'ultimo record
e premere record successivo, andare al primo record e premere record precedente, spostarmi tra i record quando non ci sono
record,...
ho dimenticato qualcosa?

 ho già provato ad eliminare tutti i record
Il ragionamento sopra vale anche per la "modalità" elimina: Se uno ha
cambiato i dati a video e il record non c'è?

 cambiato i dati a video e il record non c'è?
quando sei in modalità modifica, i pulsanti "nuovo, elimina, movimento tra record" sono disabilitati.. si può solo salvare/annullare
e questo preferisco tenerlo così.
quindi il problema che mi dici non dovrebbe sussistere perchè in fase di aggiunta/modifica non posso fare null'altro.
(sono previsti degli "help" d'inserimento per varii codici "codice cliente e cose simili")
grazie della pazienza.

 d'inserimento per varii codici "codice cliente e cose simili")
Vero, ma puoi sempre variare campi chiave che, di fatto, trasformano la tua
intenzione di "modifica" in "aggiunta" o viceversa nella modalità aggiunta.

 intenzione di "modifica" in "aggiunta" o viceversa nella modalità aggiunta.
Ti ringrazio delle risposte.
Quei campi che dici non li lascio modificare quando sono in modifica.
Un campo "codice cliente" ad esempio rimane disabilitato.. se non proprio nascosto nella maschera di modifica.

 Aggiungo anche, specialmente in condizioni di "multiutenza":
sono molto inesperto di multiutenza.
la cosa mi preoccupa un po.
il progr girerà su 2 pc.
comunque l'eliminazione di un record non sarà una cosa frequente
neppure la modifica di un record.
frequente sarà l'inserimento di dati in una tabella di log che ho creato.
già che ci sono, è un problema per msde trovarsi sui 120.000 record annui su una tabella?
(altra cosa che mi preoccupa e che devo trovare un metodo indolore da utilizzare)
magari poi quei record si potranno compattare per totali mensili.. devo vedere col cliente..

 una tabella?
No, ci mancherebbe altro. Non è un problema nemmeno per Access.