Newsgroup: it.comp.lang.visual-basic
Titolo: connessione a sql server...

Salve a tutti,
ho creato un programmino che si connette
ad un MSDE via ISDN....
alle volte quando lancio il comando che richiede
dati a MSDE mi dà l'errore:
"Runtime error -
2147467259
Tempo massimo scaduto"
.... sembra quasi che non riceva in tempo la risposta...
è possibile aumentare il time out?
grazie!
ringo

è possibile aumentare il time out?
La Connection di ADO ha la proprieta' ConnectionTimeout.
Naturalmente va impostata prima di fare la Open.
-- 
ciao, hal

Per capirsi
Public conn As New ADODB.Connection
Public Sub connectNormale()
 On Error GoTo errore
    Dim rstemp
    Dim sql
    Dim strConn
    conn.ConnectionTimeout = 10
    conn.CommandTimeout = 60
    strConn = "driver={SQL
Server};SERVER=ServerSql;DATABASE=NomeDatabase;uid=Utente;pwd=Pippo"
    conn.ConnectionString = strConn
    conn.Open
    Exit Sub
errore:
    With Err
           .........
    End With
End Sub


La cosa vista così superficialmente, non mi sembra un problema solo di 
time out della connessione all'engine di SQL Server.
Hai controllato bene la connessione via ISDN?
Hai controllato se al di fuori del programma riesci a connetterti A SQL 
Server?
ciao Max

 ciao Max
Ho provato impostando i timeout ma il problema non si risolve....
La cosa stranissima è che dopo l'errore di runtime se riapro il programmino
funziona alla meraviglia.
Se lo chiudo aspetto 15/20 minuti e poi lo riapro mi ridà l'errore di
runtime....
La connessione ISDN funziona benissimo... riesco a pingare i pc...
inoltre facendo un file.udl e verificando la connessione tutto è a posto
Hai qualche dritta?
grazie!
ringo


Ti connetti a SQL Srv con ADO?
Se la seconda volta si connette, prima di lanciare una connessione 
attiva (es. una query) prova solo a fare un open e realtivo close DB e 
vedere cosa succede.
ciao

 ciao
il codice che uso č:
' Open connection.
Set cnn1 = New ADODB.Connection
cnn1.ConnectionTimeout = 0
cnn1.CommandTimeout = 0
strCnn = "Provider=sqloledb;" & _
   "Data Source=10.176.14.207;Initial Catalog=sql_agent;User
Id=sa;Password=password;"
cnn1.Open strCnn
cnn1.CursorLocation = adUseClient
' Open command object with one parameter.
Set cmdByRoyalty = New ADODB.command
cmdByRoyalty.CommandText = "[lista_clienti]"
cmdByRoyalty.CommandType = adCmdStoredProc
Set pm = cmdByRoyalty.CreateParameter("nome_cliente", adVarChar,
adParamInput, 15, Me.cliente_find)
cmdByRoyalty.Parameters.Append pm
' Create recordset by executing the command.
Set cmdByRoyalty.ActiveConnection = cnn1
Set rstCLIENTI = cmdByRoyalty.Execute
'Riempio la flexgrid
rstCLIENTI.MoveLast
grid_clienti.Rows = rstCLIENTI.RecordCount + 1
grid_clienti.Cols = rstCLIENTI.Fields.Count + 1
rstCLIENTI.MoveFirst
    For i = 1 To rstCLIENTI.RecordCount 'this loop is for rows
        For j = 1 To rstCLIENTI.Fields.Count 'this loop is for Columns
            If (Not (IsNull(rstCLIENTI(j - 1)))) Then
grid_clienti.TextMatrix(i, j) = rstCLIENTI(j - 1)
        Next
        grid_clienti.TextMatrix(i, 0) = i 'i holds the S.No.
        rstCLIENTI.MoveNext
    Next
Qual'č il comando open che accenni tu?
grazie
ringo

Set rstCLIENTI = cmdByRoyalty.Execute
Avviene qui l'errore, invece?
-- 
ciao, hal