Pergunta : Pacotes Runtime de Delphi

Olá!, o

I am que constrói meu programa com o pacote runtime da versão 8 da vantagem, quando eu executo o e a tentativa para fazer um pedido tudo trabalha fine.

I quer saber se é possível entregar um .exe que execute mesmo que o cliente tivesse a versão 8 ou 9 da vantagem sem ter que recompile o .exe.

Example: Eu construo meu .exe com o pacote runtime da versão 9 da vantagem, mim entregam-no ao cliente quem tem já o pacote da versão 8 da vantagem, meus .exe ajustarão a essa versão e executarão?

 
class= do

Resposta : Pacotes Runtime de Delphi

Meu objectivo principal é ter somente um .exe com que ser construído com vantagem 9, e eu gostaria d igualmente de poder executar com vantagem 8…

Há ainda os meios por que você pode (sorte de) faz o que você está tentando fazer.  É um pouco mais trabalho mas poderia ser um “trabalho ao redor.”

  1. Mover primeiramente seu acesso de dados em um Datamodule, se você não tem já.  
     
  2. Criar então uma versão do Datamodule que é específico a cada um das versões da vantagem, isto é devem ser exatamente paralelos/idênticos à exceção das cordas e dos cnoonections da conexão às versões diferentes da vantagem.  Devem ter a mesmos função/procedimentos que aceitam os mesmos parâmetros e retornam os mesmos resultados (no caso das funções) e fazem as mesmas coisas.  Igualmente significa que você precisa de ter todas as origens de dados e perguntas e todos os outros componentes do acesso de dados nomeados o mesmos em cada datamodule.
     
  3. O DLLs em 2) acima terá que ser DLL “dinâmicamente carregados” (que é onde “um pouco mais trabalho” entra realmente o retrato.
     
  4. Isso igualmente significa que você precisará um procedimento em seu app principal que carregará e conetará acima do DLL apropriado de DataModule.
     
  5. Você precisará então de ter uma maneira para identificar que favorizam nunca a versão que o cliente tem.  Isso deixá-lo-á carregar o DLL apropriado de DataModule. 

Eu fiz este no passado em que eu tive que poder comutar a batida entre o usuário de DB2, de SQL, e o Oracle.  (Pelo menos, teòrica, sua situação está toda em uma família. ; -)  

Alternativamente, eu conetei ou ao usuário do SQL expresso (localmente) ou usuário do SQL (em uma rede) simplesmente setting-up as cordas da conexão para cada um e então tendo a tentativa da aplicação para fazer a conexão ao usuário do SQL da rede e então, se aquele não trabalhará, tento o usuário local do SQL expresso.  Esta aproximação poderia provavelmente ser modificada de modo que pudesse trabalhar com sua variação no tema.  

Dependendo exatamente que os componentes da conexão você estão usando, você pode poder usar o mesmo truque do eu fiz quando tknow do didn de I o que a rede ou a conexão local olhariam como.  Eu criei um procedimento em meu datamodule que andou o usuário com da criação da corda da conexão e conservou então aquele.

Outras soluções  
 
programming4us programming4us