Dados atualizados na tela - Firebird

Delphi

02/04/2007

Pessoal, estou precisando de uma ajuda muito especial.

Tenho um cadastro de construtoras feito em Firebird e estou conseguindo cadastrar beleza.

Mas depois que dou um POST, preciso que os dados que acabei de digitar estejam na tela para o usuário consultar (ver se digitou certo por exemplo). Mas o código da construtora, que é gerado por uma generator só aparece depois que dou um REFRESH.

E o REFRESH volta para o primeiro registro. Como fazer para corrigir esse problema. Já estou ficando doido.

Valeu.


Rodrigo Lima

Rodrigo Lima

Curtidas 0

Respostas

Facc

Facc

02/04/2007

[quote:c0c25f3168=´Rodrigo Lima´]Pessoal, estou precisando de uma ajuda muito especial.

Tenho um cadastro de construtoras feito em Firebird e estou conseguindo cadastrar beleza.

Mas depois que dou um POST, preciso que os dados que acabei de digitar estejam na tela para o usuário consultar (ver se digitou certo por exemplo). Mas o código da construtora, que é gerado por uma generator só aparece depois que dou um REFRESH.

E o REFRESH volta para o primeiro registro. Como fazer para corrigir esse problema. Já estou ficando doido.

Valeu.[/quote:c0c25f3168]

O código é gerado através de Generator?

se sim, coloque no OnNewRecord da table/query, pois assim no momento que vc clicar pra inserir ele trará o código


GOSTEI 0
Rodrigo Lima

Rodrigo Lima

02/04/2007

Facc, valeu pela ajuda, mas não funcionou. Não sei se estou fazendo alguma coisa errada, pois sou novo no Firebird.

O código é gerado por uma trigger e um generator.

Será que você poderia dar um exemplo de código?

Obrigado

Rodrigo


GOSTEI 0
Facc

Facc

02/04/2007

Para trazer o generator em tempo de execução

function  Generator(sNome : String) : Integer;
var
  qryPesquisa : TQuery;
begin
  qryPesquisa := TQuery.Create(nil);
  qryPesquisa.DatabaseName := FPrincipal.DatabaseSistema.DatabaseName;
  qryPesquisa.SQL.Text := ´ select gen_id(´+sNome+´, 1) codigo ´+
                          ´ from rdb$database                  ´;
  qryPesquisa.Open;

  Result := qryPesquisa.FieldByName(´codigo´).AsInteger;

  qryPesquisa.Close;
  qryPesquisa.Free;

end;



Vc deve usar assim
 no OnNewRecord coloque:

  TabelaCampoCodigo.asinteger := Generator(´Nome Generator´);



e antes de dar o refresh, vc pega o código do cadastro e faz um locate


GOSTEI 0
Rodrigo Lima

Rodrigo Lima

02/04/2007

Facc, mais uma vez obrigado.

Vou testar e ver se funciona.

Rodrigo


GOSTEI 0
POSTAR