Fórum Dados atualizados na tela - Firebird #339765

02/04/2007

0

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

Responder

Posts

03/04/2007

Facc

[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


Responder

Gostei + 0

03/04/2007

Rodrigo Lima

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


Responder

Gostei + 0

03/04/2007

Facc

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


Responder

Gostei + 0

03/04/2007

Rodrigo Lima

Facc, mais uma vez obrigado.

Vou testar e ver se funciona.

Rodrigo


Responder

Gostei + 0

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

Aceitar