Executável sem Delphi (dbexpress) não funciona...
Estou fazendo um aplicativo q acessa o Firebird via dbexpress...
Ao colocar em uma máquina q não tenha o Delphi instalado ele não funciona...
Obs.: O firebird está funcionando perfeitamente!
Eu coloquei os seguintes arquivos no c:\windows\system:
midas.dll, gds32.dll, fbclient.dll, dbexpint.dll
E coloquei o dbxconnections.ini na pasta da aplicação...
O componente está com a propriedade LoadParamsOnConnect = True
Na aplicação no evento OnCreat eu coloquei:
SQLConnection1.Params.LoadFromFile(ExtractFilePath(Application.ExeName) + ´dbxconnections.ini´);
SQLConnection1.Open;
Alguem sabe porque não está funcionando??
Ao colocar em uma máquina q não tenha o Delphi instalado ele não funciona...
Obs.: O firebird está funcionando perfeitamente!
Eu coloquei os seguintes arquivos no c:\windows\system:
midas.dll, gds32.dll, fbclient.dll, dbexpint.dll
E coloquei o dbxconnections.ini na pasta da aplicação...
O componente está com a propriedade LoadParamsOnConnect = True
Na aplicação no evento OnCreat eu coloquei:
SQLConnection1.Params.LoadFromFile(ExtractFilePath(Application.ExeName) + ´dbxconnections.ini´);
SQLConnection1.Open;
Alguem sabe porque não está funcionando??
Dodacs
Curtidas 0
Respostas
Acid_rain
30/11/2003
Vc setou a propriedade ConnectionName?
GOSTEI 0
Dodacs
30/11/2003
sim.. Para FASTREST
o meu dbxconnection.ini está da seguinte forma...
[FASTREST]
DriverName=Interbase
Database=C:\Net\Projeto\Sistema\BANCO\FASTREST.FDB
RoleName=RoleName
User_Name=sysdba
Password=masterkey
ServerCharSet=
SQLDialect=3
BlobSize=-1
CommitRetain=False
WaitOnLocks=True
ErrorResourceFile=
LocaleCode=0000
Interbase TransIsolation=ReadCommited
Trim Char=False
com o dbxconnection.ini no diretório da aplicação, é necessário colocar o SQLConnection1.Params.LoadFromFile??
Se sim. Qual o melhor evento???
o meu dbxconnection.ini está da seguinte forma...
[FASTREST]
DriverName=Interbase
Database=C:\Net\Projeto\Sistema\BANCO\FASTREST.FDB
RoleName=RoleName
User_Name=sysdba
Password=masterkey
ServerCharSet=
SQLDialect=3
BlobSize=-1
CommitRetain=False
WaitOnLocks=True
ErrorResourceFile=
LocaleCode=0000
Interbase TransIsolation=ReadCommited
Trim Char=False
com o dbxconnection.ini no diretório da aplicação, é necessário colocar o SQLConnection1.Params.LoadFromFile??
Se sim. Qual o melhor evento???
GOSTEI 0
Dodacs
30/11/2003
Gente eu coloquei a seguinte linha no on create para testar se tá carregando os parâmentros...
SQLConnection1.Params.LoadFromFile(ExtractFilePath(Application.ExeName) + ´dbxconnections.ini´);
if SQLConnection1.ParamsLoaded then
showmessage(´BD OK´);
SQLConnection1.Open;
E o showmessage não aparece... Pq não está carregando os parâmetros?
SQLConnection1.Params.LoadFromFile(ExtractFilePath(Application.ExeName) + ´dbxconnections.ini´);
if SQLConnection1.ParamsLoaded then
showmessage(´BD OK´);
SQLConnection1.Open;
E o showmessage não aparece... Pq não está carregando os parâmetros?
GOSTEI 0
Dodacs
30/11/2003
Eu fiz um teste aqui na minha máquina q tem o delphi instalado... Renomeie o dbxconnection.ini que está no diretorio C:\Arquivos de programas\Arquivos comuns\Borland Shared\DBExpress
Assim o programa sendo executado fora do delphi (com o delphi fechado) não consegue achar o banco de dados... quando eu coloco o nome dele no lugar o programa funciona numa boa!
Eu acho que o erro que está acontecendo no meu sistema é saber especificar onde está o dbxconnection.ini
Alguem que já fez um programa que acessa banco de dados (dbexpress) funcionar em uma máquina que não tenha delphi... me passe qual o procedimento usado... Tenho q apresentar esse projeto dia 15...
Um abraço..
Assim o programa sendo executado fora do delphi (com o delphi fechado) não consegue achar o banco de dados... quando eu coloco o nome dele no lugar o programa funciona numa boa!
Eu acho que o erro que está acontecendo no meu sistema é saber especificar onde está o dbxconnection.ini
Alguem que já fez um programa que acessa banco de dados (dbexpress) funcionar em uma máquina que não tenha delphi... me passe qual o procedimento usado... Tenho q apresentar esse projeto dia 15...
Um abraço..
GOSTEI 0
Dodacs
30/11/2003
sobe
GOSTEI 0
Lindomar.des
30/11/2003
Dodacs,
Uso o seguinte codigo com dbexpress:
//uso isso pois as vezes esqueço de fechar a conexão antes de compilar
//então o sistema fica com path do banco fixo.
//arquivo config.ini
[Servidor]
TCPIP=LocalHost
Path=C:\APLICATIVOS\GenesisAT\Bd\GENESIS.GDB
Uso o seguinte codigo com dbexpress:
ifArqIni := TIniFile.Create(ExtractFilePath(Application.ExeName) + ´Config.ini´); FecharBanco; dmDBEXMaster.sqcMaster.Params.Clear; dmDBEXMaster.sqcMaster.Params.Values[´DRIVERNAME´] := ´Interbase´; dmDBEXMaster.sqcMaster.Params.Values[´DATABASE´] := UpperCase(ifArqIni.ReadString(´Servidor´, ´TCPIP´, ´LocalHost´)) + ´:´ + UpperCase(ifArqIni.ReadString(´Servidor´, ´Path´, ´C:\´)); dmDBEXMaster.sqcMaster.LoginPrompt := False; dmDBEXMaster.sqcMaster.Params.Values[´USER_NAME´] := ´ SYSDBA´ dmDBEXMaster.sqcMaster.Params.Values[´PASSWORD´] := ´masterkey´; dmDBEXMaster.sqcMaster.Params.Values[´SQLDIALECT´] := ´3´; dmDBEXMaster.sqcMaster.Open;
//uso isso pois as vezes esqueço de fechar a conexão antes de compilar
//então o sistema fica com path do banco fixo.
procedure FecharBanco; begin if dmDBEXMaster.sqcMaster.Connected then begin dmDBEXMaster.sqcMaster.CloseDataSets; dmDBEXMaster.sqcMaster.Close; end; end;
//arquivo config.ini
[Servidor]
TCPIP=LocalHost
Path=C:\APLICATIVOS\GenesisAT\Bd\GENESIS.GDB
GOSTEI 0
Mdm
30/11/2003
Ola Colega, sei q não é a solução mas vou relatar o que passei pois esta relacionado ao seu problema, e espero que algum colega nos esclareça.
Estava com o mesmo prroblema que vc, tudo configurado tudo certo, mas não conectava no banco, exeto quando eu compilava minha applicação sem o banco apontado no sqlConnection, ow seja eu removia a configuração com o caminho do banco, desta forma funcionou.
Estranho né ?
[]s
Estava com o mesmo prroblema que vc, tudo configurado tudo certo, mas não conectava no banco, exeto quando eu compilava minha applicação sem o banco apontado no sqlConnection, ow seja eu removia a configuração com o caminho do banco, desta forma funcionou.
Estranho né ?
[]s
GOSTEI 0
Aasn
30/11/2003
Caros colegas,
O que pode estar acontecendo é que a conexão com o banco já está aberta em tempo de projeto, e ao executar o sistema fora do delphi, ele não redireciona para o novo caminho. Tentem ao executar a aplicação, enviar um comendo para desconectar, em seguida informar o caminho do banco e conectar novamente.
[]´s
AASN
O que pode estar acontecendo é que a conexão com o banco já está aberta em tempo de projeto, e ao executar o sistema fora do delphi, ele não redireciona para o novo caminho. Tentem ao executar a aplicação, enviar um comendo para desconectar, em seguida informar o caminho do banco e conectar novamente.
[]´s
AASN
GOSTEI 0
Emerson Nascimento
30/11/2003
duas coisas:
[b:6a7a0d50a6][color=blue:6a7a0d50a6]1.o[/color:6a7a0d50a6][/b:6a7a0d50a6]: [b:6a7a0d50a6]antes de compilar o projeto SEMPRE desconecte o banco[/b:6a7a0d50a6]. NUNCA compile o projeto com o banco conectado
[b:6a7a0d50a6][color=blue:6a7a0d50a6]2.o[/color:6a7a0d50a6][/b:6a7a0d50a6]: não me recordo se o ExtractFilePath() retorna a última barra.
se não retornar, supondo que seu executável esteja na pasta C:\Sistema\Bin, o arquivo que ele está procurando é:
[i:6a7a0d50a6]C:\Sistema\Bindbxconnections.ini[/i:6a7a0d50a6] (que não existe).
então, altere a string para:
SQLConnection1.Params.LoadFromFile(ExtractFilePath(Application.ExeName) + ´[b:6a7a0d50a6]\[/b:6a7a0d50a6]dbxconnections.ini´);
assim, o retorno será:
[i:6a7a0d50a6]C:\Sistema\Bin\dbxconnections.ini[/i:6a7a0d50a6]
[b:6a7a0d50a6][color=blue:6a7a0d50a6]1.o[/color:6a7a0d50a6][/b:6a7a0d50a6]: [b:6a7a0d50a6]antes de compilar o projeto SEMPRE desconecte o banco[/b:6a7a0d50a6]. NUNCA compile o projeto com o banco conectado
[b:6a7a0d50a6][color=blue:6a7a0d50a6]2.o[/color:6a7a0d50a6][/b:6a7a0d50a6]: não me recordo se o ExtractFilePath() retorna a última barra.
se não retornar, supondo que seu executável esteja na pasta C:\Sistema\Bin, o arquivo que ele está procurando é:
[i:6a7a0d50a6]C:\Sistema\Bindbxconnections.ini[/i:6a7a0d50a6] (que não existe).
então, altere a string para:
SQLConnection1.Params.LoadFromFile(ExtractFilePath(Application.ExeName) + ´[b:6a7a0d50a6]\[/b:6a7a0d50a6]dbxconnections.ini´);
assim, o retorno será:
[i:6a7a0d50a6]C:\Sistema\Bin\dbxconnections.ini[/i:6a7a0d50a6]
GOSTEI 0