Fórum Distribuir Aplicação com DBXpress + XE4 + Firebird #449995

30/07/2013

0

Olá a todos,

Estou com um problema ao gerar executável que utiliza banco de dados com o XE4.

Na máquina onde desenvolvi a aplicação roda 100% mas quando vou disponibilizar em outro computador dá erro e não consigo identificar.

Como faço para saber quais dll´s e arquivos são necessários para fazer um projeto dproj funcionar?
Flex Ltda

Flex Ltda

Responder

Posts

30/07/2013

Flex Ltda

Isso é o que tenho nas configurações do DBX

DriverUnit=Data.DBXFirebird
DriverPackageLoader=TDBXDynalinkDriverLoader,DbxCommonDriver180.bpl
DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxCommonDriver,Version=18.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
MetaDataPackageLoader=TDBXFirebirdMetaDataCommandFactory,DbxFirebirdDriver180.bpl
MetaDataAssemblyLoader=Borland.Data.TDBXFirebirdMetaDataCommandFactory,Borland.Data.DbxFirebirdDriver,Version=18.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
GetDriverFunc=getSQLDriverINTERBASE
LibraryName=dbxfb.dll
LibraryNameOsx=libsqlfb.dylib
VendorLib=fbclient.dll
VendorLibWin64=fbclient.dll
VendorLibOsx=/Library/Frameworks/Firebird.framework/Firebird
Database=C:\FlexVendas\FLEXVENDAS.FDB
User_Name=sysdba
Password=masterkey
Role=RoleName
MaxBlobSize=-1
LocaleCode=0000
IsolationLevel=ReadCommitted
SQLDialect=3
CommitRetain=False
WaitOnLocks=True
TrimChar=False
BlobSize=-1
ErrorResourceFile=
RoleName=RoleName
ServerCharSet=
Trim Char=False

A dll está na pasta da aplicação. Coloquei os arquivos:
- midas.dll
- dbxadapter.dll

Tem mais algum que devo colocar?
Responder

Gostei + 0

30/07/2013

Flex Ltda

esse é o Files do meu InnoSetup:

[Files]
Source: "C:\Flex2010\OutrosXE4\Instalacoes\DLL\dbxadapter.dll"; DestDir: ; Flags: ignoreversion; Check: not Is64BitInstallMode;
Source: "C:\Flex2010\OutrosXE4\Instalacoes\DLL\dbxfb.dll"; DestDir: ; Flags: ignoreversion; Check: not Is64BitInstallMode;
Source: "C:\Flex2010\OutrosXE4\Instalacoes\DLL\midas.dll"; DestDir: ; Flags: ignoreversion; Check: not Is64BitInstallMode;
Source: "C:\Flex2010\OutrosXE4\Instalacoes\DLL\fbclient.dll"; DestDir: ; Flags: ignoreversion; Check: not Is64BitInstallMode;
Source: "C:\Flex2010\OutrosXE4\FlexAtualizador\Win32\FlexAtualiza.exe"; DestDir: ; Flags: ignoreversion; Check: not Is64BitInstallMode;
Source: "C:\Flex2010\OutrosXE4\FlexAtualizacoes\32bits\FlexAtualizacoes.exe"; DestDir: ; Flags: ignoreversion; Check: not Is64BitInstallMode;

Source: "C:\Flex2010\OutrosXE4\Instalacoes\DLL64\dbxadapter.dll"; DestDir: ; Flags: ignoreversion; Check: Is64BitInstallMode;
Source: "C:\Flex2010\OutrosXE4\Instalacoes\DLL64\dbxfb.dll"; DestDir: ; Flags: ignoreversion; Check: Is64BitInstallMode;
Source: "C:\Flex2010\OutrosXE4\Instalacoes\DLL64\midas.dll"; DestDir: ; Flags: ignoreversion; Check: Is64BitInstallMode;
Source: "C:\Flex2010\OutrosXE4\Instalacoes\DLL64\fbclient.dll"; DestDir: ; Flags: ignoreversion; Check: Is64BitInstallMode;
Source: "C:\Flex2010\OutrosXE4\FlexAtualizador\Win64\FlexAtualiza.exe"; DestDir: ; Flags: ignoreversion; Check: Is64BitInstallMode;
Source: "C:\Flex2010\OutrosXE4\FlexAtualizacoes\64bits\FlexAtualizacoes.exe"; DestDir: ; Flags: ignoreversion; Check: Is64BitInstallMode;

Source: "C:\Flex2010\OutrosXE4\Instalacoes\DLL\libeay32.dll"; DestDir: ; Flags: ignoreversion;
Source: "C:\Flex2010\OutrosXE4\Instalacoes\DLL\ssleay32.dll"; DestDir: ; Flags: ignoreversion;

Source: "C:\Flex2010\OutrosXE4\FlexVendas\Win32\FlexVendas.exe"; DestDir: ; Flags: ignoreversion;
Responder

Gostei + 0

30/07/2013

Flex Ltda

Mais algumas informações:

Não utilizo bpl´s, tudo está incluso no executável.

ao gerar versão sempre aplico release

desconecto do banco de dados ( sqlconnection.active = False)
Responder

Gostei + 0

30/07/2013

Flex Ltda

usei como base também este link mas nada....

http://docwiki.embarcadero.com/RADStudio/XE4/en/Deploying_dbExpress_Database_Applications#dbExpress_deployment_with_driver_DLLs
Responder

Gostei + 0

30/07/2013

Francisco Macário

Olá.

A primeira coisa a fazer é identificar a exceção gerada pela aplicação.

Do contrario você ficará na tentativa e erro.

Implemente um "LOG de Erros" no sistema, pois para uma aplicação distribuída é essencial.

Veja esse topico abaixo espero que ajude.

[url]http://forum.devmedia.com.br/viewtopic.php?t=90477&highlight=log+erro[/url]
Responder

Gostei + 0

30/07/2013

Thiago Porto

Pelo que vi você esta com todas as dll possíveis para se mandar na aplicação, mas elas ficam na mesma pasta que o executável?
Responder

Gostei + 0

30/07/2013

Flex Ltda

Resolvi da seguinte maneira:

adicionar a unit midaslib a uses do source do projeto, pois dessa forma não é necessário distribuir a midas.dll.
Responder

Gostei + 0

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

Aceitar