Pregunta

Tenemos una aplicación que almacena los archivos de base de datos en una subcarpeta del directorio Archivos de programa. Estos archivos son redirigidos a la VirtualStore en Vista y Windows 7. Nosotros representamos a los datos de la base de datos utilizando Microsoft DataReports (VB6). Hasta aquí todo bien.

Pero ahora queremos utilizar Crystal Reports XI para representar los datos de la base de datos. Nuestra idea es no transmitir estos datos a CR de nuestro programa, pero para tener CR retreive desde la base de datos utilizando un DSN de un sistema a través de ODBC. De esta manera esperamos presentar a nuestros usuarios una mayor flexibilidad en el diseño de sus propios informes. Lo que sí queremos asegurar es que aunque estos DSN del sistema están configurados correctamente cuando el usuario instala el programa o cuando el programa llama al informe cristalino.

¿Hay una manera inteligente de hacer esto utilizando las variables del sistema, por ejemplo, en lugar de tener que escribir una rutina que comprueba OS-versión, si UAC está habilitado en el sistema operativo, si las restricciones de escritura en la carpeta Archivos de programa han sido levantadas, etc. y luego se adapta él DSN de sistema para apuntar a la carpeta C: \ archivos de programa \ OurApp \ Data, o la C?: \ Users \ usuario \ archivos de datos de programa \ VirtualStore \ programa \ OurApp \ datos

Sugerencias para un enfoque totalmente diferente también son bienvenidos!

¿Fue útil?

Solución 3

Parece que tienda virtual se encarga de todo, por lo que puede señalar el DSN descaradamente en C: \ Archivos de programa \ MyApp \ Data \ MyDB.mdb incluso mientras la base de datos se ha vuelto a poner a la tienda virtual.

Otros consejos

Las nuevas aplicaciones deben tener un manifiesto de aplicación que especifica requestedExecutionLevel. Esto declara su programa "Vista conscientes" y evita los intentos de virtualización.

Durante la instalación se debe crear una carpeta como [CommonAppData] \ Empresa \ App \ completa y un conjunto de seguridad en esta carpeta para permitir el pleno acceso de todos (o por los usuarios). Poner su base de datos en esta carpeta.

En un MDB se puede eliminar la base de datos aquí. Para un cliente / servidor de base de datos de poner un archivo UDL aquí. También vea Uso Universal Data Link (.udl) Archivos .

DSN ODBC y tecnologías son bastante obsoletos.

El uso de los enfoques sugeridos deben trabajar para casi cualquier cosa, pero el equipo Win95 más antigua.

¿Es esta una base de datos? No se ha especificado.

Para una base de datos, no es necesario apuntar el DSN para una base de datos específica cuando lo instale. Puede modificar la cadena de conexión de punto a diferentes bases de datos en tiempo de ejecución ( detalles ). Por ejemplo

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;

Se puede leer simplemente la ruta de instalación en tiempo de ejecución (en VB6 es App.Path) y luego enviar una cadena de conexión diferente a Crystal Reports?

Versión actual


Es posible que desee para detectar la corriente versión de Windows el sistema está funcionando.

Esto a su vez ayudará a la hora de determinar la PATH correcta .

¿Cómo encontrar la versión de Windows, construir y números de revisión ??

  

Lea las claves del registro -

     

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ CurrentBuildNumber
   HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ CurrentVersion
   HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ EditionID
   HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ ProductId    HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ BuildLabEx

El CurrentBuildNumber es su compilación de Windows Número. Luego valor de CurrentVersion es su versión de Windows es decir, la versión de su Windows 7, Windows Vista, Windows XP, etc. EditionID y ProductId saber las ventanas de edición y producto-id.

  

La clave BuildLabEx contiene número de compilación y el número de revisión.

Por ejemplo, en el valor 6001.17387.x86fre.vistasp1_gdr.070927-1921, España los cuatro primeros dígitos representan el número de compilación es decir, 6001 y
los siguientes cinco dígitos representan ventanas número de revisión es decir, 17387.
x86 le dice que está ejecutando un sistema operativo de 32 bits.

  

Es posible que también esté interesado en esto:
   Cómo detectar la verdadera versión de Windows?

Goodluck !!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top