Coloca no botão salvar:

var Book : BookMarkStr;

if NomedoDatasorce.State = dsEdit then
  begin
    NomedoDatasource.Dataset.Post;
    NomedoDatasource.Dataset.Refresh;
  end
Else
  Begin
      Book := NomedoDatasource.Dataset.Bookmark;
      NomedoDatasource.Dataset.Post;
      NomedoDatasource.Dataset.Refresh;
      NomedoDatasource.Dataset.Bookmark := Book;
  End;
      
  ----- Original Message ----- 
  From: <<ledo>> 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, September 14, 2005 1:17 AM
  Subject: RES: [delphi-br] Interbase Generator x Trigger


  Oi Jenifer.

      Sua duvida é igual a minha. Tb uso o IB/FB com a paleta IBX.
      A forma que utilizei com a ajuda de um amigo aqui da lista foi
  colocar o seguinte codigo no seu botão gravar;

      IBDataset.close;
      IBDataset.clear;
      IBDataset.SelectSql.Add('select * from tabela');
      IBDataset.open;
      IBDataset.last;
      DataWare.caption := IBDataset.FieldByName('seucampoid').AsString;

      Assim vai funcionar tudo o que vc pediu... Seu generator disparado
  por uma trigger no post e como mostrar esse codigo de incremento no seu
  formulario.

      Meio que gambiarra mas vai funcionar.
      Se algum outro colega tiver uma solução melhor.

  Espero ter ajudado
  [[]]
  Ledo

      

  -----Mensagem original-----
  De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
  Em nome de Jenifer Arosa
  Enviada em: sexta-feira, 9 de setembro de 2005 15:24
  Para: delphi-br@yahoogrupos.com.br
  Assunto: RES: [delphi-br] Interbase Generator x Trigger


  Oi Gente,,,,

      Eu criei uma tabela de vendedores e o campo que identifica o código
  do vendedor é integer not null
      Bom. Criei um generator para incrementar esse campo, mas no
  GeneratorFields do DataSet eu perco a numeração quando o usuário desiste
  da operação de inclusão.
      Para contornar resolvi fazer uso de uma Trigger que dispara o
  generator apos a sua inserção, ou seja no post. Porque desta forma eu
  não perco o numero e tenho o banco controlando essa operação.

      Meu problema é que no fields editor tenho que colocar o required
  como false para não dar erro.
      então não consigo que um DataWare mostre o valor desse campo a não
  ser quando em edição.

      Alguma sugestão para contornar esse problema.
      Agradeço muito

  beijos
  {{}}
  Jenifer

  -----Mensagem original-----
  De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
  Em nome de Jenifer Arosa
  Enviada em: sexta-feira, 9 de setembro de 2005 15:13
  Para: delphi-br@yahoogrupos.com.br
  Assunto: RES: [delphi-br] Interbase Generator x Trigger


  Oi Antonio,,,

      Pois é... Mas voltando a sua dica do required.... O campo é integer
  e not null no IB.
      Criei um generator para incrementar e a trigguer para disparar no
  post.

      O problema é que se retorno o required no Fields do DataSet ele da
  erro.

      Tem outra forma para que eu possa fazer isso?

  Grata pela ajuda

  beijos
  {{}}
  Jenifer

  -----Mensagem original-----
  De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
  Em nome de Antonio Sérgio P. Santin
  Enviada em: sexta-feira, 9 de setembro de 2005 10:33
  Para: delphi-br@yahoogrupos.com.br
  Assunto: Re: [delphi-br] Interbase Generator x Trigger


  Ola Jenifer

  bom, para ajudar no teu raciocínio, o código é gerado no momento do
  POST, ou
  seja, quando você manda gravar os dados.
  Para obter o código é só associar um dbedit somente leitura ao campo
  código.

  bjs...
      Antonio.

  ----- Original Message ----- 
  From: "Jenifer Arosa" <[EMAIL PROTECTED]>
  To: <delphi-br@yahoogrupos.com.br>
  Sent: Friday, September 09, 2005 10:11 AM
  Subject: RES: [delphi-br] Interbase Generator x Trigger


  Oi Antonio,,,

      Funcionou como eu esperava. Realmente a Trigger controla o
  incremento numa boa.
      Já estou modificando tudo o que havia feito.
      Agradeço ao Francisco sua dica do required no DataSet ja é. D+
      Agradeço ao Alisson tb... vcs são 10+.

      Porem tenho uma duvida básica de como fazer o tratamento de uma
  label ou até mesmo de um edit para receber esse valor apos a gravação..
      Minha tela fica sem o danado do código do vendedor. Eu abro ele em
  branco mas gostaria que ao gravar o usuário pudesse ver o numero que foi
  gravado...  Já tentei IbDataset.FieldByName('id').asString, já tentei
  Value mas não mostra.
      Acho que o erro possa estar no botão gravar... pois pelo meu
  entendimento o código vem antes do post. Mas não sei como poderia
  faze-lo.

      Agradeço a ajuda.

  beijos.
  {{}}
  Jenifer

  -----Mensagem original-----
  De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
  Em nome de Antonio Santin
  Enviada em: quinta-feira, 8 de setembro de 2005 17:00
  Para: delphi-br@yahoogrupos.com.br
  Assunto: Re: [delphi-br] Interbase Generator x Trigger


  Oi Jenifer, já queimei as pestanas com isto e resolvi o problema com a
  seguinte definição do generator e do trigger, tudo rodando dentro do
  delphi
  em uma rotina de "Instalação da Tabela", é importante que o campo
  "Chave"
  seja definido como NOT NULL na criação da tabela, talvez aí esteja o teu

  problema.

  SQL.Text := 'CREATE GENERATOR Chv_Numer;';
  ExecQuery;
  SQL.Text := 'CREATE TRIGGER Auto_Table1 FOR Table1 ACTIVE BEFORE INSERT
  POSITION 0 ' +
                      'AS BEGIN IF (Table1.Chave = 0) THEN NEW.Chave =
  GEN_ID(Chv_Numer, 1); END';
  ExecQuery;

  Quanto a tua dúvida se funciona em rede, sim funciona, pois os números
  serão
  controlados pelo servidor e trigger será disparado no banco e não na
  aplicação.

  Bjs. ;)
      Antonio




  [As partes desta mensagem que não continham texto foram removidas]



  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]




  Yahoo! Grupos, um serviço oferecido por:      

  PUBLICIDADE



  <http://br.rd.yahoo.com/SIG=12fnlgm8q/M=365837.7000707.7924794.2369893/D
  =brclubs/S=2137111264:HM/Y=BR/EXP=1126296859/A=2950750/R=2/id=noscript/S
  IG=10tift5qr/*http://br.movies.yahoo.com/> 

    _____  

  Links do Yahoo! Grupos


  *      Para visitar o site do seu grupo na web, acesse:
  http://br.groups.yahoo.com/group/delphi-br/
    

  *      Para sair deste grupo, envie um e-mail para:
  [EMAIL PROTECTED]
  <mailto:[EMAIL PROTECTED]> 
    

  *      O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
  Serviço do Yahoo! <http://br.yahoo.com/info/utos.html> . 




  [As partes desta mensagem que não continham texto foram removidas]



  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]




  Yahoo! Grupos, um serviço oferecido por:      

  PUBLICIDADE



  <http://br.rd.yahoo.com/SIG=12fc6ecp9/M=365837.7000707.7924794.2369893/D
  =brclubs/S=2137111264:HM/Y=BR/EXP=1126297547/A=2950750/R=2/id=noscript/S
  IG=10tift5qr/*http://br.movies.yahoo.com/> 

    _____  

  Links do Yahoo! Grupos


  *      Para visitar o site do seu grupo na web, acesse:
  http://br.groups.yahoo.com/group/delphi-br/
    

  *      Para sair deste grupo, envie um e-mail para:
  [EMAIL PROTECTED]
  <mailto:[EMAIL PROTECTED]> 
    

  *      O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
  Serviço do Yahoo! <http://br.yahoo.com/info/utos.html> . 




  [As partes desta mensagem que não continham texto foram removidas]



  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por: 
              PUBLICIDADE
                
       


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 




----------------------------------------------------------------------------

    avast! Antivirus: Inbound message clean. 

    Virus Database (VPS): 0537-0, 12/09/2005
    Tested on: 14/9/2005 08:05:12
    avast! - copyright (c) 1988-2005 ALWIL Software.
     



---
avast! Antivirus: Outbound message clean.
Virus Database (VPS): 0537-1, 14/09/2005
Tested on: 14/9/2005 10:14:20
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com




[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a