Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Quale sistema è più pratico - Database

Salve a tutti
Mi chiedevo: è più meglio assai, quando si fa uso di database, associare i
dati alle textbox, oppure far uso dell'Execute per inserire, cancellare o
modificare i records?
Ciao
Fabio

 ha scritto nel messaggio
news:07r6a.151023$YG2.4...@twister1.libero.it...

Anche io lavoro in questo modo, ma a volte è talmente macchinoso. Mi ritrovo
con tabelle composte da diversi campi e per aggiornarli tutti è ..........
Fabio

 con tabelle composte da diversi campi e per aggiornarli tutti è ..........
beh, per esempio puoi comporre la stringa mentre modifichi i dati.
esempio di update:
nella GotFocus del text salvi il vecchio valore in una variabile e nella
LostFocus, se il valore è stato modificato aggiungi un pezzettino di query a
una variabile dichiarata generale al form. In questo modo, dando poi il
comando per aggiornare non devi fare altro che eseguirla.
's_sql è la nostra variabile globale e all'inizio verrà valorizzata così
s_sql="UPDATE tabella SET"
'nella LostFocus dei text (se il valore è stato modificato) basterà scrivere
così (qui se vuoi aggiungi i controlli sulla validità del dato)
if right(s_sql,3)<>"SET" then s_sql=s_sql & ", "
s_sql=s_sql & " campo1='" & text1 & "'"
'infine quando hai modificato tutti i campi e dai il comando basterà
aggiungere la where ed eseguire
s_sql=s_sql & " WHERE [condizione]"
xc.execute s_sql
Naturalmente è la stessa cosa per le insert, mentre per le delete non credo
ci sia problema
ciaociao

 ha scritto nel messaggio
news:L5s6a.152231$ZE.44...@twister2.libero.it...

Non avevo mai pensato a questo modo di agire. E proprio vero tante teste
tante idee.
Ti ringrazio.
Fabio

 aggiungere la where ed eseguire
No, AddNew/Edit(per DAO) e Update forever

 No, AddNew/Edit(per DAO) e Update forever
Nel senso che con DAO è più performante l'Edit, mentre per ADO l'update?
ciao e grazie

 Nel senso che con DAO è più performante l'Edit, mentre per ADO l'update?
Non so se è più performante, io uso sempre e solo la sequenza Edit (per DAO,
non previsto in ADO) o AddNew, assegnazione campi che voglio
variare/assegnare, Update

 metti in un listbox gli eventi che si verificano, nell'esatto ordine...
Ecco un esempio:
'Creare sul form:
'   Una Label con nome Label1 e caption "&Label1", TabIndex 0
'   Una TextBox con nome Text1, TabIndex 1
'   Un  CommandButton con nome Command1 e caption "&Command1", TabIndex 2
'   Un ListBox con nome List1, TabIndex 3
'Incollare tutto questo codice
'Attivare il TextBox e accedere al bottone cliccandovi col mouse. Osservare
gli eventi
'Attivare il TextBox e accedere al bottone con Alt+C da tastiera. Osservare
gli eventi
'   L'evento Click del bottone (generalmente ospite di istruzioni "calde")
'   si verifica prima del LostFocus della TextBox, mentre, correttamente, il
Validate
'   della TextBox si verifica prima del Click del bottone e, in ogni caso,
prima
'   del lostFocus del TextBox
'Ora, che puo' accadere se eseguo prima le istruzioni del Click del bottone
'   delle eventuali istruzioni del LostFocus della TextBox? Di tutto, di
piu'.
'Ecco perche' consiglierei di non usare mai (!!!) l'evento LostFocus
Private Sub Command1_Click()
    List1.AddItem "Command1_Click"
End Sub
Private Sub Command1_GotFocus()
    List1.AddItem "Command1_Got"
End Sub
Private Sub Command1_LostFocus()
    List1.AddItem "Command1_Lost"
End Sub
Private Sub Text1_GotFocus()
    List1.AddItem "Text1_Got"
End Sub
Private Sub Text1_LostFocus()
    List1.AddItem "Text1_Lost"
End Sub
Private Sub Text1_Validate(Cancel As Boolean)
    List1.AddItem "Text1_Validate"
End Sub

 ha scritto nel messaggio
news:b3f8ui$1ld941$1...@ID-174464.news.dfncis.de...

Vorrei farti un esempio. ho un recordset al quale voglio aggiungere un nuovo
record. Eseguo il metodo Addnew il quale mi inserisce un record vuoto. Se,
però, mi rendo conto che non ho bisogno di aggiungere un nuovo record e
quindi non inserisco niente, il record appena creato mi rimane e vuoto. La
successiva applicazione di tale metodo, creerà un nuovo record vuoto. A meno
che non siano presente un controllo sul sistema, questo metodo potrebbe
causare problemi.
Naturalmente c'è qualcosa che non ho considerato, ma tu come ti comporti in
questi casi?
Grazie
Fabio

 'Ecco perche' consiglierei di non usare mai (!!!) l'evento LostFocus
[cut]
Cazzarola! Hai proprio ragione, grazie!

Fabio
Aran Banjo
<math> 2 + 2 = 5 for sufficiently large values of 2</math>

 questi casi?
Prima di tutto cerco di ... usare meglio il quoting ;-)
Poi, scusa la mia chiusura mentale, ma non mi è mai capitato di decidere di
voler aggiungere un record e poi di decidere di non farlo. Io l'addnew lo
faccio solo se l'operatore ha confermato...

 ha scritto nel messaggio
news:b3fef4$1llqg5$1...@ID-174464.news.dfncis.de...

Probabilmente uso il metodo AddNew in modo sbagliato.
Faresti un esempio di utilizzo?
Grazie
Fabio

 Faresti un esempio di utilizzo?
If MsgBox("Confermi l'aggiunta?",vbYesNo+vbQuestion)=vbYes Then
    rs.AddNew
    rs!quoting=False
    rs!richiamo=True
    rs!descrizione="Attenzione al quoting!!!"
    rs.Update
End If

 End If
ma se dopo aver confermato cambia idea? :-) :-)
--
Salutoni
Sergio

CSSoft ha scritto:

Call MsgBox("Dove sei?, dimmi dove sei che ti vengo a
menare!!!",vbOkonly+vbExclamation)


Speriamo che così stia rispettando i criteri giusti.
Spiego meglio il perché della mia domanda:
    ho sempre usato AddNew senza l'Update. L'aggiornamento, in pratica,
avveniva al momento dello spostamento dalla posizione corrente nel
recordset.
    Quindi se inavvertitamente veniva aggiunto un record e subito si usciva
(per motivi vari, anche errori), restava il record vuoto.
E' questa la ragione per cui successivamente ho sempre usato l'Execute.
Comunque grazie per la pazienza
Ciao
Fabio


Sicuramente saresti un indeciso.
Ciao
Fabio

 E' questa la ragione per cui successivamente ho sempre usato l'Execute.
Con l'Execute cosa fai, quando lo fai?


Nell'evento Lostfocus dell'ultima textbox insieme a delle verifiche, eseguo
l'Execute.
Ciao
Fabio

Che aggiorna, aggiunge, elimina.
Ciao
Fabio

 l'Execute.
Intendevo dire (e approfitto per consigliarti di non usare mai l'evento
LostFocus, vedi post recenti):
Quando esegui l'Execute ... come fai a interromperlo?
E quindi, a parte le prestazioni (che non ho verificato e le simpatie), qual
è la differenza fra:
rs.Addnew
rs!campo1="abc"
rs!campo2="abc"
rs!Update
e
db.Execute ...comando_sql...?
Agli effetti dell'interruzione o ... del cambio d'idea... IMHO nessuna.


    Comunque sto provando ad utilizzare il tuo metodo per testare la mia
praticità con questo modo di agire.
Ciao
Fabio

     Mi stai rigirando la domanda che avevo posto..
Non mi pare proprio? Eri tu che ti ponevi il problema di un AddNew prima di
una ... smentita che lasciava un record vuoto. Come vedi, io fra l'AddNew e
l'Update non consento un bel niente all'utente, esattamente come il tuo
Execute.
Rileggi la tua domanda e la mia prima risposta...


    Ciao
Fabio