Fórum SQLConnection em run time (tempo de execução) #462922

03/12/2013

0

Estou desenvolvendo um aplicativo em camadas no Delphi XE 5.
Meu projeto tem 4 camadas, e na camada que acessa o banco de dados eu crio um SQLConnection e atribuo as propriedades dele, junto dos parâmetros nesse bloco de comandos:

bancoDados := TSQLConnection.Create(nil);
with bancoDados do
begin
Connected := False;
ConnectionName := Self._connectionName;
DriverName := Self._driver;
GetDriverFunc := Self._driverFunc;
LibraryName := Self._libraryName;
VendorLib := Self._vendorLib;
with Params do
begin
Clear;
Add('Database = ' + Self._dataBase);
Add('HostName = ' + Self._hostName);
Add('Password = ' + Self._password);
Add('UserName = ' + Self._userName);
end;
LoadParamsOnConnect := True;
LoginPrompt := False;
end;

Depois disso, abro a conexão com o comando Open. Porém retorna esta mensagem: [img:descricao=Erro no Open do SQLConnection]http://arquivo.devmedia.com.br/forum/imagem/351767-20131203-184112.png[/img]
Parece que os parâmetros que adicionei não são reconhecidos.
Alguém sabe o que fazer? Ou o por que disso acontecer?
Luiz Jr

Luiz Jr

Responder

Posts

04/12/2013

Vander Ferraz

De onde você está trazendo os parâmetros?
Responder

Gostei + 0

04/12/2013

Luiz Jr

De onde você está trazendo os parâmetros?

De constantes declaradas na seção private de minha Unit
Responder

Gostei + 0

04/12/2013

Vander Ferraz

Cara, tira as constantes de dentro da classe, e veja se resolve.
Responder

Gostei + 0

18/12/2013

Luiz Jr

Cara, tira as constantes de dentro da classe, e veja se resolve.

Não adianta, continua anunciando o mesmo problema. Adicionei ";" após cada parâmetro para conferir e o erro persisti.
Alguma ideia?
Responder

Gostei + 0

19/12/2013

Deivison Melo

Veja isso aqui!

[url]https://www.devmedia.com.br/forum/configurar-caminho-do-banco-de-dados-atraves-de-arquivo-ini/412679[/url]

Abração e bons códigos!!
Responder

Gostei + 0

20/12/2013

Rodrigo Guelf

Já tive esse problema com o Delphi XE e a unica solução foi colocar o componente fisicamente no datamodulo para ele parar de dar esse erro.
Responder

Gostei + 0

27/12/2013

Luiz Jr

Essa foi minha solução:

Self.bancoDados := TSQLConnection.Create(nil);
with Self.bancoDados do
begin
KeepConnection := False;
LoadParamsOnConnect := False;
LoginPrompt := False;
ConnectionName := Self._connectionName;
DriverName := Self._driver;
GetDriverFunc := Self._driverFunc;
LibraryName := Self._libraryName;
VendorLib := Self._vendorLib;
with Params do
begin
Values['Hostname'] := Self._hostName;
Values['Database'] := Self._dataBase;
Values['User_Name'] := Self._userName;
Values['Password'] := Self._password;
end;
end;

Nas minhas tentativas eu estava criando parâmetros após ou não limpar os antigos. O que acontece é que o componente já tem esses parâmetro na lista de parâmetros "Params". O que fiz foi dar valor "Value" ao parâmetro de acordo com seu nome "Params['Hostname']:= hostName".
Obrigado pelas respostas e espero que quem teve ou tem este problema possa encontrar a solução em meu post.
Responder

Gostei + 0

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

Aceitar