Domanda

Abbiamo un'applicazione che memorizza i propri file di database in una sottocartella della directory Program Files. Questi file vengono reindirizzate al VirtualStore in Vista e Windows 7. Noi rappresentiamo i dati dal database utilizzando Microsoft DataReports (VB6). Fin qui tutto bene.

Ma ora vogliamo utilizzare Crystal Reports XI per rappresentare i dati dal database. La nostra idea è di non passare i dati al CR dal nostro programma, ma per avere CR prelevare dal database utilizzando un DSN di un sistema tramite ODBC. In questo modo speriamo di presentare ai nostri utenti una maggiore flessibilità nella progettazione dei loro propri rapporti. Ciò che vogliamo garantire, però, è che questi DSN di sistema sono configurati correttamente quando l'utente installa il programma o quando il programma chiama la Crystal Report.

C'è un modo intelligente per fare questo utilizzando le variabili di sistema per esempio, invece di dover scrivere una routine che verifica la presenza di OS-versione, se UAC è abilitato sul sistema operativo, se le restrizioni di scrittura sulla cartella dei programmi sono state eliminate, ecc e poi si adatta lui DSN di sistema a punto sia alla cartella C: \ Program Files \ OurApp \ Data, o il C:? \ Users \ User \ cartella AppData \ VirtualStore \ Programmi \ OurApp \ Data

Suggerimenti per un approccio completamente diverso sono i benvenuti!

È stato utile?

Soluzione 3

Sembra che Virtual Store si occupa di tutto, in modo da poter puntare il DSN palesemente in C: \ Program Files \ MyApp \ Data \ MyDB.mdb anche mentre il database è stato trasferito al Virtual Store.

Altri suggerimenti

Le nuove applicazioni dovrebbero avere un file manifesto che specifica requestedExecutionLevel. Questo dichiara il programma "Vista consapevole" e ignora i tentativi di virtualizzazione.

Durante l'installazione è necessario creare una cartella come [CommonAppData] \ Azienda \ App \ completi e di sicurezza previste in questa cartella per consentire l'accesso completo da tutti (o dagli Utenti). Mettere il database in questa cartella.

Per un MDB è possibile eliminare il database proprio qui. Per un client / server di database di mettere un href="http://msdn.microsoft.com/en-us/library/e38h511e(VS.71).aspx" rel="nofollow noreferrer"> file di qui. Vedere anche Usa Universal Data Link (UDL) File .

ODBC e DSN sono tecnologie piuttosto obsoleti.

Utilizzando gli approcci suggeriti dovrebbe funzionare per quasi nulla, ma la più antica di computer Win95.

Si tratta di un database di Access? Non è stata specificata.

Per un database di Access, non è necessario puntare il DSN per un database specifico quando lo si installa. È possibile modificare la stringa di connessione al punto da diversi database in fase di esecuzione ( dettagli ). Per esempio

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

Si può semplicemente leggere il percorso di installazione in fase di esecuzione (in VB6 è App.Path) e quindi inviare una stringa di connessione diverso da Crystal Reports?

Versione corrente


Si potrebbe desiderare di rilevare il corrente versione di Windows il sistema è in esecuzione.

Ciò a sua volta aiuterà nel determinare la percorso corretto .

Come trovare la versione di Windows, costruire e revisione numeri ??

  

Leggi le chiavi del Registro di sistema -

     

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

Il CurrentBuildNumber è la build di Windows numero. Quindi il valore CurrentVersion è la versione di Windows vale a dire la versione del tuo Windows 7, Windows Vista, Windows XP, ecc EditionID e ProductId conoscere il finestre-edizione e product-id.

  

La chiave BuildLabEx contiene numero di build e il numero di revisione.

Ad esempio, nel valore 6001.17387.x86fre.vistasp1_gdr.070927-1921,
le prime quattro cifre rappresentano il numero di build vale a dire 6001 e
i prossimi cinque cifre si distinguono per le finestre numero di revisione cioè 17387.
86 si dice che si esegue un sistema operativo a 32-bit.

  

Si potrebbe anche essere interessato a questo:
   Come rilevare vera versione di Windows?

Goodluck !!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top