Consegui pegar o sequencial sem incrementá-lo: ... ZConnection1.StartTransaction; try ZQuery1.Open; ZQuery1.SQL.Text := 'select * from teste_oid_seq'; ShowMessage(IntToStr(ZQuery1.FieldByName('last_value').AsInteger)); ZConnection1.Commit; ...
Fica a dica ;) --- Em delphi-br@yahoogrupos.com.br, "silvioprog" <silviop...@...> escreveu > > Galera consegui fazer sem POG mudando o SQL, vejam como fiz, com outras > tabelas: > > ========== > insert into Pedido (Oid, Data) > values (nextval('pedido_oid_seq'), current_date); > > insert into PedidoItem (OidPedido, Preco, Quantidade) > values (currval('pedido_oid_seq'), 10, 1); > ========== > > Pequei a dica nesse artigo: > > http://imasters.uol.com.br/artigo/1804 > > Mas se alguém conseguir pegar o valor atual de um sequenciador sem > incrementá-lo eu agradeço. > > --- Em delphi-br@yahoogrupos.com.br, "silvioprog" <silvioprog@> escreveu > > > > Olá galera, > > > > Pelo que pesquisei no Google a combinação de campo do tipo Serial + > > tdataset não é legal, e pelo que vi, a solução seria via POG (argh! :P*), > > vejam: > > > > Tabela: > > ===================================== > > CREATE TABLE teste > > ( > > oid serial NOT NULL, > > nome character varying(50), > > CONSTRAINT pk_oidteste PRIMARY KEY (oid) > > ); > > ===================================== > > > > Código (com Zeos): > > ... > > procedure TForm1.Button1Click(Sender: TObject); > > begin > > ZConnection1.StartTransaction; > > try > > ZQuery1.SQL.Text := 'insert into Teste (Nome) values (''testando'') > > returning Oid'; > > ZQuery1.Open; // Será? > > ShowMessage(IntToStr(ZQuery1.FieldByName('Oid').AsInteger)); > > ZConnection1.Commit; > > except > > ZConnection1.Rollback; > > end; > > end; > > ... > > > > Hum... Com Open? Isso é POG e das feias, só existe essa maneira de fazer? > > Não tem como pegar o valor do sequencial antes de aplicar o commit? > > > > No Firebird-2.1.3 o código acima nem funcionou. -- Silvio Clécio -- Contato - silvioprog<gmail/googlewave> Blog estilo mural - silvioclecio.blogspot.com Twitter - twitter.com/silvioprog -- programmer ObjectPascal - silvioprog.blogspot.com -- "Duas coisas instruem o homem, qualquer que seja a sua natureza: o instinto e a experiência. Blaise Pascal.