Rilevo un fatto strano nel DB Access,
ogni volta che dò il comando: ...insert into... i records vengono scritti 3 volte !!
Come mai?![]()
Rilevo un fatto strano nel DB Access,
ogni volta che dò il comando: ...insert into... i records vengono scritti 3 volte !!
Come mai?![]()
LM
Posta il codice così vediamo meglio.
Giorgio
L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)
Come vuoi.
codice:OggSR1.CommandText = "Insert Into TblParti(RegLodi, Deposito, PartiDett, Oggetto, CollArb)" _ & "values ('" & (FrmInfo.txtPP(0).Text) & "', '" & (FrmInfo.txtPP(1).Text) _ & "', '" & Replace(FrmInfo.txtPP(2).Text, "'", "''") & "', '" & Replace(FrmInfo.txtPP(3).Text, "'", "''") _ & "', '" & Replace(FrmInfo.txtPP(4).Text, "'", "''") & "');" OggSR1.Execute![]()
LM
Quante volte viene richiamata questo blocco? Hai provato a mettere un breakpoint per verificare se, per un motivo o per un altro, esso non venga eseguito più volte?
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Sì ho provato. Il codice (query) viene eseguito una sola volta, anzi a ben vedere, nella prova ho trovato scritti 5 redords; sarà un caso ma è il numero dei campi !!VVoVe:
Sbaglio qualcosa nella query ?
LM
Posto l'intera routine, perchè effettivamente commetto degli errori (non so quali...). Ho provato ad inserire:
OggSR1.CommandText = "Delete * From TblParti"
OggSR1.Execute
e dopo la cancellazione dei records, trovo scritto un solo record, quindi a monte c'è qualcosa che non va (forse il tipo di cursore?):
codice:'Inserimento dei dati nel DB - TblParti: Dim OggSR1 As New ADODB.Command Dim ConSR1 As New ADODB.Connection 'Esegue la connessione con il DataBase: With ConSR1 .ConnectionString = DataConnessione .CursorLocation = adUseClient 'tipo di cursore .Mode = adModeShareDenyNone 'nessuna limitazione .CommandTimeout = 15 .Open End With OggSR1.ActiveConnection = ConSR1 OggSR1.CommandType = adCmdText ' Prima di salvare Elimina i vecchi records dalla tabella: OggSR1.CommandText = "Delete * From TblParti" OggSR1.Execute 'Inserisce i dati del FrmInfo nel DB TblParti: OggSR1.CommandText = "Insert Into TblParti(RegLodi, Deposito, PartiDett, Oggetto, CollArb)" _ & "values ('" & (FrmInfo.txtPP(0).Text) & "', '" & (FrmInfo.txtPP(1).Text) & "', '" & Replace(FrmInfo.txtPP(2).Text, "'", "''") & "', '" & Replace(FrmInfo.txtPP(3).Text, "'", "''") & "', '" & Replace(FrmInfo.txtPP(4).Text, "'", "''") & "');" OggSR1.Execute 'Chiude la connessione - TblParti: ConSR1.Close Set ConSR1 = Nothing
LM
Scusa ... alla fine non ho capito ...
Trovi un record o 5 record scritti nel db?
Dopo l'inserimento del codice:
OggSR1.CommandText = "Delete * From TblParti"
OggSR1.Execute
ovvero dopo aver cancellato tutti i records dalla Tbl, la query .. "Insert Into TblParti ... sembra funzionare, con la scrittura di un solo record.
E' un comportamento bizzarro, o sono io che commetto errori nella query ?
LM
Senti LMondi,
quello che ti capita succede quando si prendono i records da più tabelle e non restringi a dovere il criterio della Sql. Da quante tabelle prelevi i records? Se parli di textbox non si capisce quante sono le tabelle in gioco.
Giorgio
L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)
compatta e ripristina
ciao
i miei post sono RIFERITI TUTTI A VISUAL BASIC 6
MSN MESSENGER : magicolotto@hotmail.it