Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Betoldna

[Resolvido] DataBase Connection component is not assigned

Recommended Posts

Olá pessoal, estou com um problema.

Estou usando o zeos para conexão com firebird 2.5 e delphi 7.

criei uma função para receber o nome de uma tabela e retornar seu novo ID.

mas esta dando este erro: "DataBase Connection component is not assigned"

este erro ocorre no open.

 

segue a função:

function TForm1.getID(pTabela: String): integer;

var

MontaSQL : String;

execQuery :TZQuery;

begin

if not DMConexao.ZConnection1.InTransaction then

DMConexao.ZConnection1.StartTransaction;

try

try

execQuery := TZQuery.Create(execQuery);

execQuery.Close;

execQuery.SQL.Clear;

MontaSQL := 'SELECT GEN_ID(GEN_'+pTabela+',1) ';

MontaSQL := MontaSQL +'FROM RDB$GENERATORS ';

MontaSQL := MontaSQL +'WHERE RDB$GENERATOR_NAME = ''GEN_'+pTabela+'';

execQuery.SQL.Add(MontaSQL);

execQuery.Open;

Result := execQuery.Fields[0].AsInteger;

Except

on E:Exception do

begin

DMConexao.ZConnection1.Rollback;

Showmessage(E.Message);

Result := 0;

end;

end;

finally

DMConexao.ZConnection1.Commit;

end

end;

 

Alguém ja teve este problema???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estava faltando informar qual era o componente database. [RESOLVIDO]

function TForm1.getID(pTabela: String): integer;
var
MontaSQL : String;
execQuery :TZQuery;
begin
 if not DMConexao.ZConnection1.InTransaction then
   DMConexao.ZConnection1.StartTransaction;
 try
   try
     execQuery := TZQuery.Create(execQuery);
     execQuery.Database := [componente database padrão da aplicação] (neste caso é DMConexao.ZConnection1); 
     execQuery.Close;
     execQuery.SQL.Clear;
     MontaSQL := 'SELECT GEN_ID(GEN_'+pTabela+',1) ';
     MontaSQL := MontaSQL +'FROM RDB$GENERATORS ';
     MontaSQL := MontaSQL +'WHERE RDB$GENERATOR_NAME = ''GEN_'+pTabela+'';
     execQuery.SQL.Add(MontaSQL);
     execQuery.Open;
     Result := execQuery.Fields[0].AsInteger;
   Except
   on E:Exception do
   begin
     DMConexao.ZConnection1.Rollback;
     Showmessage(E.Message);
     Result := 0;
   end;
 finally
 DMConexao.ZConnection1.Commit;
 end;
end;

 

Vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.