CRIAR CONEXÃO NA MÃO COM DBX DELPHI 2009 FIREBIRD 2.0

07/09/2009

0

Olá !!!!
Não estou conseguindo fazer uma conexão utilizando linhas de comandos pra criar uma conexão com o banco de dados!
tenho o seguinte código digitado em uma unit que add ao projeto e a função está declarada na seção public e faz a validação do usuário :

function TUsuario.Login(AUsuario, ASenha: String;
Acoes: TCustomActionList): Boolean;
var
// CLASSE QUE REPRESENTA UMA CONEXÃO COM O BANCO DE DADOS - CONEXÃO
DBCon : TDBXConnection;
// CLASSE RESPONSÁVEL POR RECEBER OS COMANDOS / INSTRUÇÕES SQL - INSTRUÇÃO
Command : TDBXCommand;
// CLASSE QUE IRÁ RECEBER O RESULTSET EXECUTADO PELO DBXCOMMAND - RESULTSET
Reader : TDBXReader;
begin
// TDBXCONNECTIONFACTORY - CLASSE EXCLUSIVA PARA CONEXÃO COM BANCO DE DADOS
// GETCONNECTIONFACTORY - MÉTODO QUE RETORNA UMA INSTÂNCIA DA ´FABRICA´ DE CONEXÃO CHAMANDO O GETCONNECTION
// GETCONNECTION - MÉTODO QUE RETORNA O NOME DA CONEXÃO, USUÁRIO E SENHA PARA A INSTÂNCIA DA FÁBRICA
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection(´TBODbxFirebird´,´SYSDBA´,´masterkey´);
// A CLASSE DE COMANDOS(COMMAND) VAI CRIAR CLASSE CREATECOMMAND CRIA UM OBJETO COMMAND COM OS DADOS DA CONEXAO DBCON
Command := DBCon.CreateCommand;
// COMANDO SQL
Command.Text := ´select * from FUNCIONARIO where LOGIN_FUN = ´+QuotedStr(AUsuario)+´ and SENHA_FUN = ´+QuotedStr(ASenha);
// EXECUTANDO O COMANDO SQL E PASSANDO O RESULTADO PARA A VARIÁVEL READER
Reader := Command.ExecuteQuery;
....
...
...


Na tela de login ... no botão OK faço a seguinte chamada:

procedure Tfrm_login.btn_OKClick(Sender : TObject);
begin
if TUsuario.GetInstance.Login(edt_Usuario.Text, edt_Senha.Text, frm_MenuPrincipal.Acoes) then
modalResult := mrOk
else
Application.MessageBox(´USUÁRIO OU SENHA INVÁLIDO´,´PROJETO MEU´, MB_OK);
end;


Quando compilo a aplicação dá o seguinte erro:

Debugger Exception Notification
Project PROJETO_MEU.exe raised exception class TDBXError with message ´unavailable database´.


Não sei mais o que fazer!!! já procurei no fórum e não achei nda respeito! por favor me ajudem!!

Desde já eu agradeço!!


Tpaulon

Tpaulon

Responder

Posts

10/08/2010

Rodrigo Santos

Cara... tudo indica que onde você tem q passar o nome da conexão do banco de dados você tá passando o nome do
driver de conexão, quando você chama o factory.

DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection(´TBODbxFirebird´,´SYSDBA´,´masterkey´);

Acho que poderia ser algo como:

DBCon:= TDBXConnectionFActory.getConnectionFactory.getConnection('MINHACONEXAO','SYSDBA','masterkey');


Espero ter ajudado... sds
Responder

21/02/2018

Valter Rui

Eu tive este mesmo problema recentemente, estou começando a OOP agora, o que aconteceu ai foi que ele tem que passar o local da base de dado dentro do arquivo de configuração que fica na pasta do windows : C:\\Users\\Public\\Documents\\Embarcadero\\Studio\\dbExpress\\16.0 no meu caso é o delphi EX8, alterei o local da base e aí funcionou
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar