Public Function ConnectSqlServer(ServerName As String, DBName 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 = ServerName .Properties("Initial Catalog").Value = DBName If IsSqlServerLocal(ServerName) 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: M.LogOnly "#### ConnectSqlServer - Erreur " & CStr(Err.Number) & " - " & Err.Description Resume Fin End Function
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(StrComp(NomDuServeur, sTemp, vbTextCompare) 0) End Function 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 Functionqui nécessitent ces déclarations :
Private Const MAX_COMPUTERNAME_LENGTH As Long = 31 Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire
117 internautes nous ont dit merci ce mois-ci
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.