Betoldna 0 Denunciar post Postado Fevereiro 10, 2011 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
Betoldna 0 Denunciar post Postado Fevereiro 11, 2011 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