J'ai été chargé de supporter une ancienne application VB6. (yay moi) J'ai des problèmes avec la propriété ADO connection timeout. La méthode ci-dessous fonctionne bien si le serveur existe, mais si le serveur n'existe pas ou si les connexions réseau n'ont pas démarré pour la machine, il faudra 30 secondes pour expirer même si intTimeout est défini sur 1.Comment faire un délai d'attente de connexion ADO plus tôt si le serveur n'existe pas?
Y at-il un moyen pour ADO de ne pas se connecter plus tôt? Est-ce encore possible? Merci!
Public Sub GetConnectionObject(ByRef oCn As ADODB.Connection, strServer As String, strInitialCatalog As String, Optional intTimeout = 10)
Dim strConnectionString As String
strConnectionString = "Data Source=[SERVER];Provider=SQLOLEDB.1;User ID=ScanReq1;Password=ScanR3Q;Initial Catalog=[INITIALCATALOG];ConnectionTimeout=" & intTimeout & ";"
strConnectionString = Replace(strConnectionString, "[SERVER]", strServer)
strConnectionString = Replace(strConnectionString, "[INITIALCATALOG]", strInitialCatalog)
Set oCn = New ADODB.Connection
oCn.CursorLocation = adUseClient
oCn.ConnectionString = strConnectionString
oCn.CommandTimeout = intTimeout
oCn.ConnectionTimeout = intTimeout
oCn.Open
End Sub
Il doit s'agir d'un problème de résolution de nom. Vous pouvez l'accélérer sur TCP en utilisant uniquement DNS (pas de diffusion + timeout) et en utilisant directement l'adresse IP pour [SERVER]. A votre place, je ne m'embêterais pas trop avec ce problème de "performance". – wqw