Questione : Pacchetti Runtime di Delfi

Ciao, il

I che sviluppa il mio programma con il pacchetto runtime della versione 8 di vantaggio, quando eseguo esso e la prova per fare una richiesta tutto funziona fine.

I vuole sapere se è possibile trasportare un .exe che eseguirebbe anche se il cliente ha versioni 8 o 9 di vantaggio senza dovere recompile il .exe.

Example: Costruisco il mio .exe con il pacchetto runtime della versione 9 di vantaggio, io lo trasportano al cliente quale ha già il pacchetto della versione 8 di vantaggio, i miei .exe registreranno a quella versione ed eseguiranno?

 
class= del

Risposta : Pacchetti Runtime di Delfi

Il mio obiettivo principale è di avere soltanto un .exe con cui essere costruito con vantaggio 9 e lo vorrei anche per potere eseguire con vantaggio 8…

Ci è ancora mezzi da cui potete (specie di) fate che cosa state provando a fare.  È un po'più lavoro ma potrebbe essere “un lavoro intorno.„

  1. In primo luogo entrare il vostro accesso di dati in un Datamodule, se non avete già.  
     
  2. Allora generare una versione del Datamodule che è specifico a ciascuna delle versioni di vantaggio, cioè devono essere esattamente paralleli/identici tranne le stringhe e i cnoonections del collegamento alle versioni differenti di vantaggio.  Devono avere la stesse funzione/procedure che accettano gli stessi parametri e restituiscono gli stessi risultati (nel caso delle funzioni) e fanno le stesse cose.  Inoltre significa che dovete avere tutte datasources e domande e tutte altre componenti di accesso di dati chiamati lo stessi in ogni datamodule.
     
  3. Il DLLs da 2) qui sopra dovrà essere DLL “dinamicamente caricati„ (che è dove “un po'il più lavoro„ realmente entra in immagine.
     
  4. Quello inoltre significa che avrete bisogno di una procedura nel vostro app principale che caricherà e si collegherà sul DLL adatto di DataModule.
     
  5. Allora dovrete avere un senso da identificare che favoriscono mai la versione che il cliente ha.  Quello lo lascerà caricare il DLL adatto di DataModule. 

Ho fatto questo nel passato in cui ho dovuto potere commutare il colpo fra l'assistente di SQL, di DB2 e Oracle.  (Almeno, teoricamente, la vostra situazione è tutta in una famiglia. ; -)  

Alternativamente, mi sono collegato o all'assistente di SQL espresso (localmente) o assistente di SQL (su una rete) semplicemente installando le stringhe del collegamento per ciascuno ed allora avendo la prova di applicazione per fare il collegamento all'assistente di SQL della rete ed allora, se quello non funzionasse, provo l'assistente locale di SQL espresso.  Questo metodo potrebbe probabilmente essere modificato in modo che potesse funzionare con la vostra variazione sul tema.  

Secondo che le componenti del collegamento voi stanno usando, potete potere usare lo stesso trucco ho fatto esattamente quando tknow del didn di I a che cosa la rete o il collegamento locale avrebbe assomigliato.  Ho generato una procedura nel mio datamodule che ha camminato l'utente through generando la stringa del collegamento ed allora ha conservato quello.

Altre soluzioni  
 
programming4us programming4us