Discussione:
Errore di run-time 2147467259 il DB Viene Bloccato!!!
(troppo vecchio per rispondere)
.:: P ::.
2005-09-15 08:31:00 UTC
Permalink
Ciao a Tutti,
ho un grosso problema!
Ho un DB access su cui vanno a lavorare 2 diversi applicativi uno scritto in
VB6 e l'altro in VB.Net e accade che quando anche il programma in VB.Net va
a lavorare sul DB causa un errore sul programma VB6.
L'errore riscontrato è il seguente: ERRORE DI RUN-TIME 2147467259 (80004005)
IL DATABASE E' STATO MESSO DALL'UTENTE 'ADMIN' NEL COMPUTER 'PC5' IN UNO
STATO CHE NON CONSENTE DI APRIRLO O DI BLOCCARLO.
Premetto che il PC identificato con PC5 è il pc in cui gira l'applicativo
con VB.Net.
La stringa di connessione che utilizzo nel sw VB.Net è la seguente:
Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin; Data
Source=c:\..........
Per quanto riguarda la connessione fatta in VB6 Vi ricapitolo di seguito il
codice:
Sub Apriconnessione()
Set CN = New ADODB.Connection
CN.Provider = "Microsoft.Jet.OLEDB.4.0"
CN.Connectionstring = "Data Source=C:\......... ;User
ID=Admin;Password=;"
CN.ConnectionTimeout = 60
CN.Mode = adModeReadWrite
CN.CursorLocation = adUseServer
CN.Open
End Sub

Non so che pesci prendere! e entro domani dovrei risolvere il problema! Sui
gruppi ho letto di controllare se apro il DB in modo esclusivo. Come posso
controllare?
Sono disperato e non so che pesci prendere.
Vi ringrazio per il tempo che mi avete dedicato.
Ciao a Tutti .:: P ::.
Alex
2005-09-15 09:05:16 UTC
Permalink
A leggere questi
http://support.microsoft.com/kb/q174943/
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q306269

sembrerebbe un problema di diritti dell'utente sei sicuro che abbia
i diritti di scrittura nella directory dove hai il db
--
Alex
MCP - .NET & SQL Server 2000
MBS CP - Programming & Development

UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/AlexBlog
.:: P ::.
2005-09-15 10:00:41 UTC
Permalink
Post by Alex
A leggere questi
http://support.microsoft.com/kb/q174943/
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q306269
sembrerebbe un problema di diritti dell'utente sei sicuro che abbia
i diritti di scrittura nella directory dove hai il db
Ciao Alex!
Sono contento di risentirti è da tanto che non postavo più e neanche
visitavo il gruppo ma mi hai sempre trovato il bandalo della matassa.
Il sw VB.Net funziona e riesce a inserire i dati nel DB.
Quindi presuppongo che non sia un problema di diritti.
Comunque gli ho dato un occhiatan ai link e non mi sembra che facciano al
mio caso essenzialmente negli articoli si fa essenzialmente riferiemento
alle applicazioni ASP.
Ti ringrazio per il tempo che mi hai dedicato sperando in una tua
illuminazione.
Intando continuo a rodermi il fegato cercando una soluzione.

Ciao e Grazie!
Post by Alex
--
Alex
MCP - .NET & SQL Server 2000
MBS CP - Programming & Development
UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/AlexBlog
Alex
2005-09-15 10:34:48 UTC
Permalink
Controlla anche la modalità di apetura del DB di Access
Da Access Strumenti->Opzioni->Avanzate->Modalità di apertura predefinita

O che il programma in VB6 non usi una stringa di connessione che blocca
altri accessi
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q306435
--
Alex
MCP - .NET & SQL Server 2000
MBS CP - Programming & Development

UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/AlexBlog
.:: P ::.
2005-09-15 16:05:26 UTC
Permalink
Post by Alex
Controlla anche la modalità di apetura del DB di Access
Da Access Strumenti->Opzioni->Avanzate->Modalità di apertura predefinita
O che il programma in VB6 non usi una stringa di connessione che blocca
altri accessi
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q306435
Ciao Alex,
i problemi persistono e le soluzioni non sembrano trovarsi le proprietà del
file access sono corrette:
Modalità di apertura predefinita: Accesso condiviso
Blocco record predefinito: Nessun blocco
Apri database utilizzando blocco a livello di record: attivato

Poi come puoi vedere dal codice che sotto ti riporto (apertura connessione
VB6):
Sub Apriconnessione()
Set CN = New ADODB.Connection
CN.Provider = "Microsoft.Jet.OLEDB.4.0"
CN.Connectionstring = "Data Source=" & App.Path & "\db\DBProva.mdb;User
ID=Admin;Password=;Jet OLEDB:Database Locking Mode=1;"
CN.ConnectionTimeout = 60
CN.Mode = adModeReadWrite
CN.CursorLocation = adUseServer
CN.Open
End Sub

Ho provveduto a modificare la connection string come puoi vedere nel codice
sopra riportato ma nienete da fare!
Ho anche modificato la connection string dell'aplicativo VB.Net sotto te la
riporto:
"Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Locking
Mode=1;Password=;User ID=Admin; Data Source=" & VarGlobali.StrPatDb
Ma niente!!!!!

Diciamo che sono Disperato.
Io continuo a cercare e pensare, spero di leggere un tuo post.
Ciao .:: P ::.
Post by Alex
Alex
MCP - .NET & SQL Server 2000
MBS CP - Programming & Development
UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/AlexBlog
Alex
2005-09-15 16:54:24 UTC
Permalink
Il programma VB6 lo avvi dallo stesso pc
o da un PC diverso in questo caso controlla
la versione del MCAD e jet

http://msdn.microsoft.com/data/mdac/downloads/default.aspx
http://www.microsoft.com/downloads/details.aspx?familyid=78cac895-efc2-4f8e-a9e0-3a1afbd5922e&displaylang=en
http://www.microsoft.com/downloads/details.aspx?familyid=2deddec4-350e-4cd0-a12a-d7f70a153156&displaylang=en
--
Alex
MCP - .NET & SQL Server 2000
MBS CP - Programming & Development

UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/AlexBlog
Alex
2005-09-15 17:12:17 UTC
Permalink
Magari fai una prova con:

CN.CursorLocation = adUseClient
http://www.vbitalia.it/static/ado-conn.htm
--
Alex
MCP - .NET & SQL Server 2000
MBS CP - Programming & Development

UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/AlexBlog
.:: P ::.
2005-09-16 10:29:24 UTC
Permalink
Post by Alex
CN.CursorLocation = adUseClient
http://www.vbitalia.it/static/ado-conn.htm
Ciao Alex,
niente da fare (sono afflitto) ho fatto le prove che mi suggerivi:
- Aggiornato MDAC e Jet, l'unica differenza è questa il sistema con il sw
VB.Net ha MDAC 2.8 SP1 di Win XP SP2 mentre il sistema (sempre con XP) ha
MDAC 2.8 RTM ho anche aggiornato il driver Jet a SP8. L'unica cosa è che sul
sistema con il sw .Net quando installo il SP8 di Jet mi dice che il sistema
ha un aggiornamento più recente, mentre sul sistema in cui c'è VB6 il SP8 di
Jet me lo ha instalalto correttamente.
- Ho provato anche a modificare la proprietà CursorLocation delal
connessione da adUseServer a adUseClient

Alex ora ricontrollo nuovamente il codice non fosse che lascio aperto
qualche oggetto ma non dovrebbe essere.
Se hai qualche suggerimento ho le orecchie ... pardon occhi aperti!

Ciao e Grazie Mille per il tempo che mi stai dedicando.
.:: P ::.
Post by Alex
--
Alex
MCP - .NET & SQL Server 2000
MBS CP - Programming & Development
UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/AlexBlog
Alex
2005-09-16 10:55:21 UTC
Permalink
Sul programma in VB.Net apri la connessione solo quando ti serve o la tieni
sempre aperta? io la aprirei solo quano serve

Al limite prova su due virtual machine pulite per evitare di impazzire
su qualche problema di installazione.
--
Alex
MCP - .NET & SQL Server 2000
MBS CP - Programming & Development

UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/AlexBlog
Fabiana Minardi
2005-09-23 08:48:14 UTC
Permalink
Post by .:: P ::.
Ciao a Tutti,
ho un grosso problema!
Ho un DB access su cui vanno a lavorare 2 diversi applicativi uno
scritto in VB6 e l'altro in VB.Net e accade che quando anche il
programma in VB.Net va a lavorare sul DB causa un errore sul
programma VB6.
L'errore riscontrato è il seguente: ERRORE DI RUN-TIME 2147467259
(80004005) IL DATABASE E' STATO MESSO DALL'UTENTE 'ADMIN' NEL
COMPUTER 'PC5' IN UNO STATO CHE NON CONSENTE DI APRIRLO O DI
BLOCCARLO.
Premetto che il PC identificato con PC5 è il pc in cui gira
l'applicativo con VB.Net.
Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin; Data
Source=c:\..........
[cut]

In .NET usi mai l'oggetto Transaction? Secondo me potrebbe essere un
problema di reset delle transazioni (nel senso che qualcosa rimane
comunque aperto o bloccato).

Loading...