Distribuir Aplicação com DBXpress + XE4 + Firebird
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?
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
Curtidas 0
Respostas
Flex Ltda
30/07/2013
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?
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?
GOSTEI 0
Flex Ltda
30/07/2013
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;
[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;
GOSTEI 0
Flex Ltda
30/07/2013
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)
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)
GOSTEI 0
Flex Ltda
30/07/2013
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
http://docwiki.embarcadero.com/RADStudio/XE4/en/Deploying_dbExpress_Database_Applications#dbExpress_deployment_with_driver_DLLs
GOSTEI 0
Francisco Macário
30/07/2013
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]
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]
GOSTEI 0
Thiago Porto
30/07/2013
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?
GOSTEI 0
Flex Ltda
30/07/2013
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.
adicionar a unit midaslib a uses do source do projeto, pois dessa forma não é necessário distribuir a midas.dll.
GOSTEI 0