Fórum Problemas com a distribuição do DBExpress nos clientes. #254595
15/10/2004
0
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
Curtir tópico
+ 0Posts
15/10/2004
Gandalf.nho
Gostei + 0
15/10/2004
Hcnc
Gostei + 0
15/10/2004
Vinicius2k
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+
Gostei + 0
15/10/2004
Vinicius2k
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+
Gostei + 0
15/10/2004
Hcnc
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?
Gostei + 0
15/10/2004
Vinicius2k
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+
Gostei + 0
16/10/2004
Rômulo Barros
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]
Gostei + 0
16/10/2004
Carval
Uses DbExpora, Mida;
Isso resolve o problema da distribuição pois as Dlls serão incorporadas ao executável.
Gostei + 0
16/10/2004
Vinicius2k
[b:cb4edde2e8]regsvr32 /u midas.dll[/b:cb4edde2e8], realiza o ´unregister´ da DLL
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+
Gostei + 0
16/10/2004
Rômulo Barros
Gostei + 0
18/10/2004
Hcnc
Por que não é acoselhado incluir o DBExpora e Midas na unit do Data Module.
Gostei + 0
18/10/2004
Vinicius2k
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+
Gostei + 0
17/11/2004
Michaell
Poderia explicar como seria a configuração de conexões não nomeadas com o SQLConnection?
[]´s
Gostei + 0
17/11/2004
Vinicius2k
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+
Gostei + 0
17/11/2004
Rômulo Barros
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]
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)