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
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Errore di runtime ‘3151’. ODBC connessione a ‘SQL ServerServerName’ no...
mercoledì 12 novembre 2008 - 12.02
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
vellgiul
Profilo
| Newbie
3
messaggi | Data Invio:
mer 12 nov 2008 - 12:02
Ciao a tutti,
Da un po’ di mesi a questa parte ho un problema abbastanza serio con la mia applicazione che utilizza come linguaggio di programmazione VBA (Access 2000) e VB6.
Lo scenario con cui succede il problema è il seguente:
Strumento di Programmazione:
Microsoft Access 2000 (Microsoft Access 2007) e Visual Basic 6
Database:
SQL Server 2000 o SQL Server 2005. Entrambi aggiornati con le ultime patch disponibili.
Sistema Operativo Client:
Windows XP SP2 o SP3
Sistema Operativo Server:
Windows 2003 Server.
Accesso ai dati:
Microsoft DAO tramite tabelle allegate.
In modo Random la procedura va in errore restituendo:
Errore di runtime ‘3151’. ODBC connessione a ‘SQL ServerServerName’ non riuscita.
E’ molto importante sottolineare che se accedo con client Windows 2000 allo stesso database e nelle stesse condizioni di rete il problema non si verifica.
Le reti sono certificate e non hanno perdite di pacchetti (ho fatto dei test e nel momento in cui si verifica il problema la rete funziona correttamente).
L’errore si verifica solo in presenza di una rete (in locale nel server il problema non di verifica).
L’errore si manifesta quando si effettuano operazioni ripetitive tramite oggetti DAO (in particolare QueryDef) su tabelle con un gran numero di dati.
L’errore compare dopo circa 60 secondi.
L’errore succede con qualsiasi tabella ed è indipendente dal gestinale. Ho scritto delle semplici routine di test che leggono ad esempio le testate dei documenti e per ogni testata scorrono le righe e la procedura va in errore.
Questo è un esempio di codice:
Dim db As dao.Database
Dim qdRig As dao.QueryDef
Dim rsRig As dao.Recordset
Dim rsTes As dao.Recordset
Dim strsql As String
Set db = CodeDb
strsql = "SELECT * FROM EosVn_Documenti WHERE EosVn_dOCUMENTI.FCliFor = 'C'"
Set rsTes = db.OpenRecordset(strsql, dbOpenDynaset)
strsql = "PARAMETERS Parameter1 Text; " _
& "SELECT * FROM EosVN_dOCrIGHE where eosvn_docrighe.iddocumento = [Parameter1]"
Set qdRig = db.CreateQueryDef("", strsql)
qdRig.Parameters!Parameter1 = ""
Set rsRig = qdRig.OpenRecordset(dbOpenDynaset)
If Not rsTes.EOF Then
While Not rsTes.EOF
qdRig.Parameters!Parameter1 = rsTes!IDDocumento
rsRig.Requery qdRig
While Not rsRig.EOF
Debug.Print rsRig!IDDocumento
rsRig.MoveNext
Wend
rsTes.MoveNext
Wend
End If
L'istruzione che va in errore è rsRig.Requery qdRig.
Ho provato in un PC con Office 2007 e il problema è lo stesso.
Avete già riscontrato il problema ?
Esiste qualche patch in merito ?
Grazie
janez69
Profilo
| Newbie
1
messaggi | Data Invio:
gio 11 ago 2011 - 10:30
Scusami, hai risolto? ho un problema simile anch'io.
Grazie
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 !