Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TESTER LA VERSION DU MDAC INSTALLÉ


Information sur la source

Catégorie :Base de Donnees Classé sous : version, mdac, tester, installé Niveau : Débutant Date de création : 17/07/2005 Date de mise à jour : 29/11/2005 08:39:42 Vu : 13 633

Note :
8 / 10 - par 3 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

Description

reste à définir le mdac que vous utilisez

Const V_MDAC As String = "2.8"

puis

Call testMdacVersion
 

Source

  • Private Function testMdacVersion()
  • Dim sMessage As String
  • Dim rapport As Boolean
  • Dim cnTest As Object ' New ADODB.Connection
  • rapport = False
  • On Error Resume Next
  • sMessage = "Microsoft Data Access Components Version Check"
  • Set cnTest = CreateObject("ADODB.Connection")
  • If Err.Number <> 0 Then
  • MsgBox "Microsoft Data Access Components n'est pas installé.", vbExclamation, sMessage
  • ElseIf cnTest.Version < V_MDAC Then
  • MsgBox "Votre version de Microsoft Data Access Components version est " & cnTest.Version & "." & _
  • vbCrLf & "Vous devez la mettre à jour (version " & V_MDAC & "+)", vbOKOnly, sMessage
  • Else
  • rapport = True
  • End If
  • If cnTest.State = 1 Then cnTest.Close
  • Set cnTest = Nothing
  • testMdacVersion = rapport
  • End Function
Private Function testMdacVersion()
Dim sMessage As String
Dim rapport  As Boolean
Dim cnTest   As Object ' New ADODB.Connection

  rapport = False
  
  On Error Resume Next
  sMessage = "Microsoft Data Access Components Version Check"
  Set cnTest = CreateObject("ADODB.Connection")
  
  If Err.Number <> 0 Then
    MsgBox "Microsoft Data Access Components n'est pas installé.", vbExclamation, sMessage
    
  ElseIf cnTest.Version < V_MDAC Then
    MsgBox "Votre version de Microsoft Data Access Components version est " & cnTest.Version & "." & _
            vbCrLf & "Vous devez la mettre à jour (version " & V_MDAC & "+)", vbOKOnly, sMessage
  Else
    rapport = True
  End If
  
  If cnTest.State = 1 Then cnTest.Close
  Set cnTest = Nothing
  
  testMdacVersion = rapport
  
End Function

Conclusion

voici un code qui m'a été demandé...
si ça peut aider quelqu'un d'autre...
 

Historique

17 juillet 2005 22:00:14 :
erreur de copier coller => now fermeture de la connexion
20 juillet 2005 07:14:27 :
correction au cas ou pas de mdac installé
29 novembre 2005 08:39:43 :
saisi des mots clés

Commentaires et avis

signaler à un administrateur
Commentaire de BZY1 le 18/07/2005 10:36:01

salut tu vas surement me trouver nul mais c'est quoi le mdac?

signaler à un administrateur
Commentaire de BZY1 le 18/07/2005 10:37:07

ok désolé "Microsoft Data Access Components" j'avais pas fait gaff...

signaler à un administrateur
Commentaire de popuo le 20/07/2005 07:10:58

salut,

Comme ceci le programme ne démarre même pas sur une machine qui n'a pas de MDAC ou qui n'a pas la version utilisée sur la machine de developement, je m'explique :
cnTest est typé (early binding) en fonction d'une référence du projet. Sur ma machine de Dev j'ai le 2.8 (par exemple), je coche la référence pour que le programme se compile. J'envoi l'exe à qqun qui n'a pas de MDAC (ou pas le 2.8) et le programme plante dés le départ (référence introuvable).

Résolution :
En ligne 4, remplacer Dim 'cnTest as new ADODB.Connection' par 'Dim cnTest as Object'. Ainsi plus besoin de référence en dur dans le projet VB.

signaler à un administrateur
Commentaire de Zlub le 20/07/2005 07:12:59

Yes bien vu !

signaler à un administrateur
Commentaire de FENETRES le 22/07/2005 13:17:42

En pratique, la question qui se pose est :
quelle est la version du pilote pour ma base de donnéees X ?
Il s'agit donc le plus souvent à :
      - retrouver l'emplacement du pilote dans la base de registre,
      - vérifier la version du fichier.

Sinon aucune objection ni critique.

signaler à un administrateur
Commentaire de Zlub le 22/07/2005 19:57:46

vi d'aoccord avec toi, mais c'est une méthode simple pour tester sans passer par la base des registres...

signaler à un administrateur
Commentaire de FENETRES le 25/07/2005 15:58:17


Sauf que... en réalité, il est utile de connaître la version du pilote avant de créer la connexion ADO.
Car, suite à un précédent commentaire, il est question de ne pas référencer ADO dans le projet.

signaler à un administrateur
Commentaire de Zlub le 25/07/2005 16:00:11

oki, je vais corriger ça alors ...

signaler à un administrateur
Commentaire de FENETRES le 25/07/2005 16:46:27

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


signaler à un administrateur
Commentaire de Zlub le 25/07/2005 16:48:40

thx, j'adapte ça pour access et j'ajoute au pack !

signaler à un administrateur
Commentaire de FENETRES le 26/07/2005 10:22:05


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,

signaler à un administrateur
Commentaire de Zlub le 26/07/2005 18:37:55

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)

signaler à un administrateur
Commentaire de JuanedaEr le 16/02/2006 14:25:46

La version du MDAC peut aussi être directement extraite du registre.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataAccess]
"FullInstallVer"="2.53.6301.0"

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Automation, méthode '~' de l'objet '~' a échoué --> SOLUTION [ par RageSpy ] C'est un beau forum mais il manquait la réponse a cette question sur l'automation j'ai décidé de m'inscrire pour la poster car j'ai travaillé 3 jours AU SECOURS ERREUR 430 - ADO [ par treniti ] Bonjour, j'ai un probleme extremement urgent, j'ai developpé un logiciel qui utilise ADO 2.0, d'habitude, on cas de problemes je demande aux utilisate Erreur MDAC Version [ par joluethi ] Bonjour, j'utilise Visual Studio .net 2003 pour cr&#233;er un projet.Je cr&#233;e une page avec le contenu d'une table... se trouvant sur un serveur S Version d'office installé [ par couze2003 ] Bonjour, Je cherche &#224; connaitre en VB6 la ou les versions d'office install&#233; sur le poste client. Pouvez-vous me donner une piste. Merci Vérifier si un programme est installé [ par tri_yann ] Bonjour,Quelqu'un saurait-il comment tester la présence d'un programme défini sur un PC ?Par exemple, j'installe l'application sur un pc dont le rôle tester version directx [ par mongol77 ] salut les gens,je me met &#224; direct x 7 en ce moment, et je voudrais regarder si il est install&#233; sur la machine quand je lance un prog.y a t'i aide lié à une application utilisant ado sur un poste client/Serveur [ par pat ] lors de la mise à jours d'une nouvelle version d'une application, l'ancienne application utilisait une version de Mdac antérieur, avec un service pack IPDK [ par wpjo1956 ] Est ce qu'il y a quelqu'un qui a install&#233; le IPDK ? (sert &#224; cr&#233;er des setup dans une autre langue celle du compilateur visual basic 6.0 MDAC SQL Server [ par gerard_autin ] Bonjour,Je suis sous Windows Xp Pro.J'ai installé .net framework version 2.0, dotnetfx version 2.0 et MDAC_TYP.exe.Comment créer une base de donnée SQ déploiement d'une application utilisant ado [ par pat ] lors de la mise à jours d'une nouvelle version d'une application, l'ancienne application utilisait une version de Mdac antérieur, avec un service pack


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.