Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Scrittura su disco.
giovedì 11 ottobre 2007 - 09.22
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
secks
Profilo
| Senior Member
442
messaggi | Data Invio:
gio 11 ott 2007 - 09:22
In un pc in cui ho installato un programmino in vb.net 2003 su windows con base dati Access mi accade che qualche volta sembra che tutto funzioni perfettamente, ma alla fine non ha scritto sul database con la conseguente perdita di dati.
Penso che il PC abbia impostato la memoria in modo non corretto.
Cmq qualcuno sa dirmi se c'è un comando in vb che permetta di scrivere immediatamente su disco le operazioni su database?
Ciao a tutti.
Paolo.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
gio 11 ott 2007 - 09:44
>In un pc in cui ho installato un programmino in vb.net 2003 su
>windows con base dati Access mi accade che qualche volta sembra
>che tutto funzioni perfettamente, ma alla fine non ha scritto
>sul database con la conseguente perdita di dati.
>
>Penso che il PC abbia impostato la memoria in modo non corretto.
>
>Cmq qualcuno sa dirmi se c'è un comando in vb che permetta di
>scrivere immediatamente su disco le operazioni su database?
>
>Ciao a tutti.
>Paolo.
Non dipende sicuramente da Windows ne tantomeno dal tuo PC, il problema stà senza dubbio sul programma.
E' da capire se lavori in modalità connessa o disconnessa?!?
Dovresti postare il codice che utilizzi per il salvataggio dei dati in modo da poter individuare l'intoppo.
http://blogs.dotnethell.it/alebadalin
pieroalampi
Profilo
| Expert
816
messaggi | Data Invio:
gio 11 ott 2007 - 10:06
esiste anche un altra ipotesi, cioe i permessi su cartella, che utente hai impostato? administator? o altro? sei in una rete con dominio?
vb.net 2005
------------------------------------------------------
::::Sempre a manetta in curva::::
------------------------------------------------------
secks
Profilo
| Senior Member
442
messaggi | Data Invio:
gio 11 ott 2007 - 10:07
Modalità disconnessa:
dim sSql as string = "UPDATE GesFatTestate SET fat_ndo='0000000422', fat_ddo=#10/11/2007# WHERE fat_num='0000004034'"
Public Function SqlWrite(ByVal sDcn As String, ByVal sSql As String)
Dim b As Boolean = True
Dim dcnApv As OleDbConnection = New OleDbConnection(sDcn)
dcnApv.Open()
Dim cmdApv As OleDbCommand = New OleDbCommand(sSql, dcnApv)
Try
cmdApv.ExecuteNonQuery()
Catch exp As Exception
MsgBox("Errore su " & sSql & ": " & exp.Message, MsgBoxStyle.Critical)
b = False
End Try
cmdApv.Dispose()
dcnApv.Dispose()
Return b
End Function
Ma il problema è successo una volta, ma ripetendo l'operazione non si è ripetuto.
Una volta eseguendo delle operazioni di massa sul PC in questione scriveva solo una parte dei dati, mentre sul mio portatile il loop andava + lento ma scriveva correttamente.
Una volta usavo un cmd di nome COMMIT, non esiste in VB.NET qualcosa di simile per essere sicuri che i dati in memoria siano trasferiti su disco?
Ciao.
Paolo.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
gio 11 ott 2007 - 10:21
>Modalità disconnessa:
>
>dim sSql as string = "UPDATE GesFatTestate SET fat_ndo='0000000422',
>fat_ddo=#10/11/2007# WHERE fat_num='0000004034'"
>
>Public Function SqlWrite(ByVal sDcn As String, ByVal sSql As
>String)
>
> Dim b As Boolean = True
>Dim dcnApv As OleDbConnection = New OleDbConnection(sDcn)
> dcnApv.Open()
>
>Dim cmdApv As OleDbCommand = New OleDbCommand(sSql, dcnApv)
>
> Try
> cmdApv.ExecuteNonQuery()
> Catch exp As Exception
>MsgBox("Errore su " & sSql & ": " & exp.Message, MsgBoxStyle.Critical)
> b = False
> End Try
>
> cmdApv.Dispose()
> dcnApv.Dispose()
>
> Return b
>
> End Function
>
>Ma il problema è successo una volta, ma ripetendo l'operazione
>non si è ripetuto.
>Una volta eseguendo delle operazioni di massa sul PC in questione
>scriveva solo una parte dei dati, mentre sul mio portatile il
>loop andava + lento ma scriveva correttamente.
>
>Una volta usavo un cmd di nome COMMIT, non esiste in VB.NET qualcosa
>di simile per essere sicuri che i dati in memoria siano trasferiti
>su disco?
>
>Ciao.
>Paolo.
>
Mi spiace contraddirti ma la modalità che stai usando è connessa (per disconnessa si intende tramite l'utilizzo di DataSet).
Se esegui delle operazioni di massa sulla tua base dati, potrebbe essere utile usare la modalità disconnessa ed effettuare un Update alla fine delle operazione.
In questo modo snellisci l'operazione e hai meno problemi di sincronizzazione del database.
Dai un'occhiata sul mio forum (link qui sotto), trovi una classe per facilitarti la vita per gestire gli accessi al database.
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !