Generator no DBEXPRESS / FIREBIRD

Firebird

09/08/2004

Tenho um generator em uma trigger criada em um banco de dados firebird. No IBX era facinho colocar o generator mas troquei para SQLdataset(Dbexpress) e naum sei como faço para colocar o generator.
Alguém pode me ajudar ???


Delphus

Delphus

Curtidas 0

Respostas

Afarias

Afarias

09/08/2004

Não entendi o lance da Trigger --- ou vc gera o valor no banco (trigger) *OU* na aplicação!!

na aplicação é simples (dê um desconto no código pq não conheço DBX)::

function NovoID(const NomeGenerator: string): Integer;
const
  sqlText = ´SELECT GEN_ID(¬s, 1) FROM RDB$DATABASE´;
begin
  with SQLQuery do
  begin
    { abre a transação }
    try
      SQL.Text := Format(sqlText, [NomeGenerator]);
      ExecSQL;
      Result := Fields[0].AsInteger;
    finally
      { fecha a transação }
    end;
  end;
end;


dai é só usar o código acima onde desejar... como num evento OnNewRecord ou BeforePost de um DataSet... ou no BeforeUpdateRecords de um DataSetProvider... ou onde for melhor!

ex::

DataSetTal.FieldByName(´CODIGO´).AsInteger := NovoID(´gerador1´);



T+


GOSTEI 0
POSTAR