Fórum Problemas com a distribuição do DBExpress nos clientes. #254595

15/10/2004

0

Olá pessoal,
Estou tentando distribuir uma aplicação nas máquinas clientes, utilizando o DBExpress e o Crystal Report 10. O SO é Windows XP Professional. Na minha máquina está tudo rodando perfeitamente. Mas ao distribuir para uma cliente Windows 2000 apresenta erro faltal, mas isso apenas em uma máquina. Pois também roda no NT e em outras máquina Win2000. Alguém pode me ajudar nesta distribuição? Já coloquei na unit do Data Module Midaslib e Dbexpora, mas não funcionou. O que pode ser??

Hugo


Hcnc

Hcnc

Responder

Posts

15/10/2004

Gandalf.nho

Instalou o cliente do banco de dados?


Responder

Gostei + 0

15/10/2004

Hcnc

Ah! Esqueci de mencionar que o banco que uso é o Oracle 9i. E o cliente está instalado em todas as máquinas e funcionando perfeitamente. Outra, os arquivos de dbxconnections.ini e dbxdrivers.ini gravei na pasta system32. E agora??


Responder

Gostei + 0

15/10/2004

Vinicius2k

Já coloquei na unit do Data Module Midaslib e Dbexpora, mas não funcionou.

Não faça isso. Distribua as DLLs separadamente, mas pelo q entendi vc já tentou isso ou não ?
A regra é simples :
1. Driver para dbExpress (no seu caso [b:44cef1ceb9]dbexpora.dll[/b:44cef1ceb9]) e [b:44cef1ceb9]midas.dll[/b:44cef1ceb9] no system/system32 do Windows.
2. Registrar a midas como dll compartilhada/sistema com a execução de :
[b:44cef1ceb9]regsvr32 midas.dll[/b:44cef1ceb9]

Fora isso, a tendencia é que não seja um problema de distribuição da aplicação com dbExpress...
Pode ser como a gandalf falou do cliente do banco de dados (Oracle) na estação ou em relação ao Cristal mas quanto à estes dois, não saberia lhe informar se alguma instalação ou registro adicional seria necessário.

T+


Responder

Gostei + 0

15/10/2004

Vinicius2k

Outra, os arquivos de dbxconnections.ini e dbxdrivers.ini gravei na pasta system32.

Não trabalho com conexões nomeadas para não ter que distribuir estes arquivos, mas o local correto para eles é na pasta da aplicação, afinal, uma estação pode ter mais de uma aplicação usando dbExpress, e a instalação deles no system não seria a ideal.

T+


Responder

Gostei + 0

15/10/2004

Hcnc

Valeu cara!
Mas não entendi o que fazer, quando vc falou em :
´Registrar a midas como dll compartilhada/sistema com a execução de :
regsvr32 midas.dll´

Registrar por que?


Responder

Gostei + 0

15/10/2004

Vinicius2k

Este registro informa ao Windows que a midas é uma DLL usada por outras aplicações e que suas funcionalidades devem estar disponíveis...
Em geral, isso não é necessário, mas é bom para evitar problemas de carregamento dela pela aplicação, como ´Could not load midas.dll´ ou ´Error loading midas.dll´...

T+


Responder

Gostei + 0

16/10/2004

Rômulo Barros

Este registro informa ao Windows que a midas é uma DLL usada por outras aplicações e que suas funcionalidades devem estar disponíveis... Em geral, isso não é necessário, mas é bom para evitar problemas de carregamento dela pela aplicação, como ´Could not load midas.dll´ ou ´Error loading midas.dll´... T+


Uau !!! Como é bom ler comentários. Está aí mais uma q eu não sabia. Mas, apareceu uma dúvida:

:?: [color=blue:6fecfe86a0]Após registrar minha dll, vamos supor q eu não queira mais esta dll compartilhada. Como faço para desregistrá-la ou descompartilhar a mesma?[/color:6fecfe86a0]


Responder

Gostei + 0

16/10/2004

Carval

Coloque no uses de sua aplicação:

Uses DbExpora, Mida;

Isso resolve o problema da distribuição pois as Dlls serão incorporadas ao executável.


Responder

Gostei + 0

16/10/2004

Vinicius2k

[quote:cb4edde2e8=´Undeclared Identifier´]Após registrar minha dll, vamos supor q eu não queira mais esta dll compartilhada. Como faço para desregistrá-la ou descompartilhar a mesma?[/quote:cb4edde2e8]
[b:cb4edde2e8]regsvr32 /u midas.dll[/b:cb4edde2e8], realiza o ´unregister´ da DLL

Coloque no uses de sua aplicação: Uses DbExpora, Mida; Isso resolve o problema da distribuição pois as Dlls serão incorporadas ao executável.

Resolve o problema de distribuição e cria outros. Essa incorporação, apesar de ser possível, não é recomendada e não deve ser feita.

T+


Responder

Gostei + 0

16/10/2004

Rômulo Barros

:arrow: [b:89284e761b]Valeu, Vina2k !!!![/b:89284e761b]


Responder

Gostei + 0

18/10/2004

Hcnc

Vinícius,
Por que não é acoselhado incluir o DBExpora e Midas na unit do Data Module.


Responder

Gostei + 0

18/10/2004

Vinicius2k

Bem, já li e vi várias situações de erros ´inexplicáveis´ quando se faz esta inclusão... pelo que ouvi dizer -- não comprovei, o problema foi solucionado no Delphi 7, mas prefiro não arriscar...
Outro detalhe é que tanto a midas quanto o driver, podem sofrer -- e sofrem atualizações nos Service Packs do Delphi, se vc incorporá-los aos projetos, teria que recompilá-los, ao invés de apenas redistribuir as DLLs ou enviar aos clientes as novas versões...
Além disso, na minha opinião, fere o próprio conceito da função de uma DLL que é compartilhar os mesmos recursos entre aplicações diferentes... vc pode ter mais de uma aplicação rodando sobre a mesma arquitetura e estaria ´engordando´ desnecessariamente todos os .exe...

T+


Responder

Gostei + 0

17/11/2004

Michaell

Não trabalho com conexões nomeadas para não ter que distribuir estes arquivos, mas o local correto para eles é na pasta da aplicação, afinal, uma estação pode ter mais de uma aplicação usando dbExpress, e a instalação deles no system não seria a ideal. T+


Poderia explicar como seria a configuração de conexões não nomeadas com o SQLConnection?

[]´s


Responder

Gostei + 0

17/11/2004

Vinicius2k

Poderia explicar como seria a configuração de conexões não nomeadas com o SQLConnection?

Michaell,

- Informe apenas a propriedade [b:187af6814b]DriverName[/b:187af6814b] no TSQLConnection que as propriedades [b:187af6814b]GetDriverFunc, LibraryName e VendorLib[/b:187af6814b] deverão ser preenchidas automaticamente.
- Ajuste a propriedade [b:187af6814b]LoadParamsOnConnect[/b:187af6814b] para [b:187af6814b]False[/b:187af6814b].
- Neste ponto vc poderá deixar os parametros da SQLConnection fixos ou dinamicos. Se desejar deixá-los dinamicos, crie seu próprio arquivo .ini com os parametros que deseja passar em tempo de execução, por exemplo :
[Banco]
Database=<caminho do banco>
User_Name=<usuario>
Password=<senha>

E antes de conectar, leia este arquivo .ini atribuindo os valores dos parametros para o TSQLConnection :
with SQLConnection1 do
begin
  Params.Values[´Database´]:=  ArquivoINI.ReadString(´Banco´,´Database´ ,´´);
  Params.Values[´User_name´]:= ArquivoINI.ReadString(´Banco´,´User_name´,´´);
  Params.Values[´Password´]:=  ArquivoINI.ReadString(´Banco´,´Password´ ,´´);
end;


Blz?

T+


Responder

Gostei + 0

17/11/2004

Rômulo Barros

[quote:a45f52fd1d=´Michaell´]Poderia explicar como seria a configuração de conexões não nomeadas com o SQLConnection?

Michaell,

- Informe apenas a propriedade [b:a45f52fd1d]DriverName[/b:a45f52fd1d] no TSQLConnection que as propriedades [b:a45f52fd1d]GetDriverFunc, LibraryName e VendorLib[/b:a45f52fd1d] deverão ser preenchidas automaticamente.
- Ajuste a propriedade [b:a45f52fd1d]LoadParamsOnConnect[/b:a45f52fd1d] para [b:a45f52fd1d]False[/b:a45f52fd1d].
- Neste ponto vc poderá deixar os parametros da SQLConnection fixos ou dinamicos. Se desejar deixá-los dinamicos, crie seu próprio arquivo .ini com os parametros que deseja passar em tempo de execução, por exemplo :
[Banco]
Database=<caminho do banco>
User_Name=<usuario>
Password=<senha>

E antes de conectar, leia este arquivo .ini atribuindo os valores dos parametros para o TSQLConnection :
with SQLConnection1 do
begin
  Params.Values[´Database´]:=  ArquivoINI.ReadString(´Banco´,´Database´ ,´´);
  Params.Values[´User_name´]:= ArquivoINI.ReadString(´Banco´,´User_name´,´´);
  Params.Values[´Password´]:=  ArquivoINI.ReadString(´Banco´,´Password´ ,´´);
end;


Blz?

T+[/quote:a45f52fd1d]

Legal, Vina2k !!!! Já utilizei o método descrito por vc, mas não seria melhor utilizar o [b:a45f52fd1d]´LoadParamsFromIniFile(´dbxconnections.ini´)´ ?[/b:a45f52fd1d]

:wink: [color=red:a45f52fd1d]Valeu !!!![/color:a45f52fd1d]


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar