TESTER LA VERSION DU MDAC INSTALLÉ

BZY1
Messages postés
214
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
12 avril 2008
- 18 juil. 2005 à 10:36
JuanedaEr
Messages postés
15
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
9 août 2007
- 16 févr. 2006 à 14:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/32761-tester-la-version-du-mdac-installe

JuanedaEr
Messages postés
15
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
9 août 2007

16 févr. 2006 à 14:25
La version du MDAC peut aussi être directement extraite du registre.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataAccess]
"FullInstallVer"="2.53.6301.0"
Zlub
Messages postés
809
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
29 septembre 2010
9
26 juil. 2005 à 18:37
vi c'est comme ça que je fais mais ça gonfle la taille du fichier setup pour rien... notament quand tu installes des soft sur un poste qui a son mdac à jour ... donc mon idée était de tester la version du MDAC et si besoin est télécharger et installer mise à jour sur le poste (par le code bien sur)
FENETRES
Messages postés
196
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
14 avril 2009

26 juil. 2005 à 10:22
Pour conclure, j'aborderais le problème d'une manière plus courante. Car, à tout point de vue, il est plus sûr et plus judicieux d'incorporer le fichier MDAC_typ.exe à un exécutable de déploiement (setup).
Cette approche plus professionnelle suppose aussi l'installation éventuelle de DCOM95 ou 98 sur le poste client.
Naturellement, dans le cadre de macrocommandes VBA l'autre choix s'impose.

Cordialement,
Zlub
Messages postés
809
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
29 septembre 2010
9
25 juil. 2005 à 16:48
thx, j'adapte ça pour access et j'ajoute au pack !
FENETRES
Messages postés
196
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
14 avril 2009

25 juil. 2005 à 16:46
Voici les méthodes de base pour SQL Server extraites d'un ancien programme. Je n'en suis pas l'auteur (adaptation).

Public Sub getAttributes()
'Lecture de la base de registres
Dim hKey As Long
Dim regValue As String
Dim valueType As Long

'Pilote SQL Server
If RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\ODBC\ODBCINST.INI\SQL server", 0, KEY_ALL_ACCESS, hKey) = 0 Then
regValue = String$(1024, 0)
If RegQueryValueEx(hKey, "Driver", 0, valueType, regValue, Len(regValue)) = 0 Then
If valueType = REG_SZ Then
'Récupère l'emplacement de la dll
RegVal(0) = Left$(regValue, InStr(regValue, vbNullChar) - 1)
'Récupère le n° de version du pilote SQL Server
RegVal(0) = GetFileVersion(RegVal(0))
End If
End If
RegCloseKey hKey
End If
End sub

Private Function GetFileVersion(ByVal strFullPath As String) As String
Dim vffi As VS_FIXEDFILEINFO
Dim nDataLen As Long
Dim pData As Long
Dim buffer() As Byte
Dim RetVal As Long

'Numéro de version du pilote SQL Server (dll)
nDataLen = GetFileVersionInfoSize(strFullPath, pData)
'Si l'exécutable est en 32 bits
If nDataLen <> 0 Then
ReDim buffer(0 To nDataLen - 1) As Byte
'Récupère l'information de version
RetVal = GetFileVersionInfo(strFullPath, 0, nDataLen, buffer(0))
'Retourne un pointeur sur la structure de données
RetVal = VerQueryValue(buffer(0), "", pData, nDataLen)
'Copie celle-ci dans la strucure de données pour y accéder.
CopyMemory vffi, ByVal pData, nDataLen
'Retourne le n° de version du pilote
GetFileVersion = Trim(Str(HIWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(HIWORD(vffi.dwFileVersionLS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionLS)))
End If
End Function

Private Function HIWORD(ByVal dwValue As Long) As Long
Dim hexstr As String
hexstr = Right("00000000" & Hex(dwValue), 8)
HIWORD = CLng("&H" & Left(hexstr, 4))
End Function

Private Function LOWORD(ByVal dwValue As Long) As Long
Dim hexstr As String
hexstr = Right("00000000" & Hex(dwValue), 8)
LOWORD = CLng("&H" & Right(hexstr, 4))
End Function
Afficher les 13 commentaires