Public cnnSqlServer As ADODB.Connection Public Function ConnectSqlServer(sServerName As String, _ sDBName As String) As Boolean ' Renvoie True si connexion Ok On Error GoTo Erreur With cnnSqlServer ' Referme si déjà ouverte If .State <> adStateClosed Then .Close ' Paramétrage connexion .ConnectionTimeout = 25 .Provider = "sqloledb" .Properties("Data Source").Value = sServerName .Properties("Initial Catalog").Value = sDBName If IsSqlServerLocal(sServerName) Then ' SQL Server sur la même machine : Authentification Windows .Properties("Integrated Security").Value = "SSPI" Else ' SQL Server dédié .Properties("Locale Identifier").Value = 1033 ' Anglais .Properties("User ID").Value = sUserID .Properties("Password").Value = sPassword End If On Error Resume Next ' Connexion .Open ' Attend connexion terminée Do While .State = adStateConnecting DoEvents Loop On Error Goto 0 ' Au final, renvoie True si on est bien ouvert ConnectSqlServer CBool(.State adStateOpen) End With Fin: Exit Function Erreur: MsgBox "#### ConnectSqlServer - Erreur " & CStr(Err.Number) & " - " & Err.Description GoTo Fin End Functionet
Public Function IsSqlServerLocal(NomDuServeur As String) As Boolean ' Renvoie True si le SQL Server est installé sur la même machine ' que celle qui veut faire des requètes (ici) ' Utile pour le mode de connexion et la conversion des dates Dim sTemp As String sTemp = myComputerName IsSqlServerLocal CBool(LCase(NomDuServeur) LCase(sTemp)) End Functionet
Public Function myComputerName() As String ' Renvoie le nom du poste Dim sTemp As String Dim r As Long sTemp = String(MAX_COMPUTERNAME_LENGTH, Chr$(0)) r = MAX_COMPUTERNAME_LENGTH + 1 Call GetComputerName(sTemp, r) sTemp = Left$(sTemp, r) myComputerName = sTemp End Function
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question