Fórum Generator #191943

31/10/2003

0

Bom dia todos, tive vendo a resposta do A. Farias no Clube a cerca das perguntas, veja bem minha dúvida.

Bom, uso Dbexpress...ClientDatas e Firebird, tenho uma tela de cadastro de produto, no qual o campo codProduto é auto incremento(Generator), a questão é que toda vez q inserir um produto o meu Dbedit pegue o numero do generator, coisa que não tá fazendo, segundo nosso amigo A. Farias que relatou para nossos outros amigos, eu teria que fazer da seguinte forma:

With dm.sqlProduto do
begin
close;
commandText:=´Select GEN_ID(GEN_PRODUTO_ID,1) from rdb$database´;
Open;
dbeCodigo.Text := inttostr(Fields[0].AsInteger);
End;

Só que usando desta forma,o contador já grava direto no banco, e se derrepente o usuário cancelar a ação?! bom ai eu tentei fazer da seguinte forma:

With dm.sqlProduto do
begin
close;
commandText:=´Select GEN_ID(GEN_PRODUTO_ID,0) from rdb$database´;
Open;
dm.cdsProduto.insert;
dbeCodigo.Text := inttostr(Fields[0].AsInteger+1);
End;

Tudo até ai funcionou, porém depois de preenchido meu cadastro de produto e vou mandar gravar ´ dm.cdsProduto.ApplyUpdates(0);´ acontece o erro: ´Table unKnown rd$database At line 1, column 523.´

Se o A. Farias ou outro colega do forum, eu agradeço, pois gostaria de poder usar o GENERATOR, em de criar tabelas para colocar contadores.

Jelves


Jelves

Jelves

Responder

Posts

31/10/2003

Luizfernando777

Não sei como funciona o FB,
Mas no IB eu faço uma Trigger para o meu generator


Responder

Gostei + 0

31/10/2003

Luizfernando777

create generator idClientes;

set Term!!
create Trigger idClientes for Clientes before insert position 0 as
begin
new.Record=Gen_id(idClientes,1);
end!!
Set Term!!


Responder

Gostei + 0

31/10/2003

Jelves

Obrigado Luiz, mais No meu caso não tem jeito de fazer desta forma, devido os componentes que estou usando...


Responder

Gostei + 0

31/10/2003

Luizfernando777

Ok,.

esse exemplo que lhe enviei vc faz dentro da base de dados,
o banco de dados é que gerencia e não o seu projeto.


Responder

Gostei + 0

31/10/2003

Jelves

Tudo bem eu havia feito um Tigger, do jeito que você falou, mais toda vez que iria inserir um registro o dbedit (CodPRoduto) ficava em branco, e gostaria no momento que clicar no botão Novo, já aparecesse o código do produto dentro do Dbedit e gravasse no banco quando clicasse no botão gravar...


Responder

Gostei + 0

31/10/2003

Jelves




Responder

Gostei + 0

02/11/2003

Luizfernando777

Claro, vc quer um contador,
tem dois tipos,
o que pega o últ. e o q pega o que está faltando no meio da contagem,
tipo : 123 567
no caso é 4


Responder

Gostei + 0

02/11/2003

Jelves

Luiz obrigado pelo retorno, veja na lista a solução que encontrei...

Jelves


Responder

Gostei + 0

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

Aceitar