Hola invitado         31 Jul, 2010 - 07:32
Menú principal
 
Ads
 
Patrocinadores
 
Anuncios
 
© 2009 PortalFox
Detectar si MDAC está instalado y que versión lecturas 5449
 Enviado por Luis María Guayán en Martes, 10 Mayo, 2005
API Rutina para saber si MDAC (Microsoft Data Access Components) está instalado y que versión está instalada.

Días pasados esta pregunta fue formulada en el Grupo de Noticias de Microsoft Visual FoxPro en español y hubo dos respuestas que en definitiva buscan si existe la siguiente clave en el registro de Windows: HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\FullInstallVer como lo indica el artículo de la Base de Conocimientos de Microsoft:

-- Cómo comprobar la versión de MDAC --
http://support.microsoft.com/kb/301202

Las rutinas son las siguientes:

1. Respuesta de Luis María Guayán:

? "Version de MDAC: " + NVL(GetMDACVersion(),"No istalado")

FUNCTION GetMDACVersion()
#DEFINE HKEY_LOCAL_MACHINE -2147483646
LOCAL lcSubKey, lcValue, lcRet
lcSubKey = "Software\Microsoft\DataAccess"
lcValue = "FullInstallVer"
lcRet = ReadRegistryString(HKEY_LOCAL_MACHINE, lcSubKey, lcValue)
RETURN lcRet
ENDFUNC

FUNCTION ReadRegistryString(tnHKey, tcSubkey, tcEntry, tlInteger)
#DEFINE KEY_READ 25
LOCAL lnRet, nKey, nType, nSize, cValor
DECLARE INTEGER RegOpenKeyEx IN WIN32API ;
INTEGER nKey, ;
STRING cSubKey, ;
INTEGER nReserved, ;
INTEGER nSamDesired, ;
INTEGER @nResult
DECLARE INTEGER RegCloseKey IN WIN32API ;
INTEGER nKey
DECLARE INTEGER RegQueryValueEx IN WIN32API ;
INTEGER nKey, ;
STRING cValueName, ;
INTEGER nReserved, ;
INTEGER @nType, ;
STRING @cData, ;
INTEGER @nSizeData
nKey = 0
nType = 0
nSize = 255
cValor = REPLICATE(CHR(0), nSize)
lnRet = RegOpenKeyEx(tnHKEY, tcSubkey, 0, KEY_READ, @nKey)
IF lnRet # 0
RETURN .NULL.
ENDIF
lnRet = RegQueryValueEx(nKey, tcEntry, 0, @nType, @cValor, @nSize)
=RegCloseKey(nKey)
IF lnRet # 0
RETURN .NULL.
ENDIF
RETURN SUBSTR(cValor, 1, nSize-1)
ENDFUNC


2. Respuesta de Espartaco Palma Martínez

? "Version de MDAC: " + NVL(GetMDACVersion(),"No istalado")

FUNCTION GetMDACVersion
LOCAL lcRetValue
lcRetValue = .NULL.
#DEFINE HKEY_LOCAL_MACHINE -2147483646
TRY
oReg = NEWOBJECT("registry",HOME(1)+"ffc\registry.vcx")
lcKey = "Software\Microsoft\DataAccess"
IF oReg.OpenKey(lcKey,HKEY_LOCAL_MACHINE,.F.) = 0
lcSubKey = "FullInstallVer"
IF oReg.GetKeyValue(lcSubKey,@lcRetValue) # 0
lcRetValue = .NULL.
ENDIF
oReg.CloseKey()
ENDIF
CATCH TO oError
lcRetValue = .NULL.
FINALLY
RELEASE oReg
ENDTRY
RETURN lcRetValue
ENDFUNC


 Versión imprimible  
Detectar si MDAC está instalado y que versión | Entrar/Crear una cuenta | 0 Comentarios
Los comentarios son propiedad de sus respectivos autores.
No somos responsables de su contenido.



Todas las marcas y los logos utilizados en este sitio son propiedad de sus respectivos dueños.
Los artículos, noticias y comentarios son propiedad y responsabilidad de sus respectivos autores.
Copyright © 2000-2010 PortalFox. Todos los derechos reservados.