[firebase-br] Auto Incremento
Marcelo Castro - [www.ligteltelecom.com.br]
marcelo.castro em ligteltelecom.com.br
Sáb Abr 21 20:44:25 -03 2007
O problema deu usar trigger esta sendo, após o aplly uptade não receber o
codigo gerado pelo FB.
Eu estou usando generator(100% ok) acionado pela uma Query, mais queria usar
trigger.
Para eu receber o codigo gerado pela trigger , tenho que fechar e abrir a
tabela.
Alguém tem uma ideia?
----- Original Message -----
From: "Paulo Portella" <pportellaa em hotmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Saturday, April 21, 2007 7:16 PM
Subject: Re: [firebase-br] Auto Incremento
Sim, eu sei disso, o codigo que passei, foi apenas pra dar uma ""ideia"" pra
ele.
Quanto a usar Generator/Triggers, tambem eh uma otima, e no caso dele, soh
parece ser a "unica" solucao.
Mas voltarah ao caso de o EXE ter que fazer um ""Refresh"", (nas outras
estacoes), pra "tambem" atualizar-se.
Quanto a 1a.opcao, nao tem nada a ver com EXE nem com o BD. Eh soh um
conceito de que na Natureza nada se perde.? sim, se perde sim, e eh por isso
que tem-se que ter muito cuidado em usar DELETE.
Pra cada caso (projeto) tem-se que encontrar uma melhor "atitude", e nele, o
uso de Generator, eh sim a melhor opcao.
[]s a todos.
Pportellaa.
> Date: Sat, 21 Apr 2007 19:09:49 -0300> From: rdeggau em gmail.com> To:
> lista em firebase.com.br> Subject: Re: [firebase-br] Auto Incremento> >
> Paulo,> > isso depende do conceito que vai ser usado no sistema; SE o seu>
> sistema NUNCA terá exclusão de registros, como voce propoe, a 1ª> opção
> pode funcionar;> a 2ª pode provocar erro no caso de 2 ou mais usuarios
> simultaneamente> estarem inserindo um registro: os 2 terão o mesmo codigo
> e provocará> erro.> > Mas este assunto está fugindo da lista; para o
> Firebird a "melhor" e> mais segura solução é usar GENERATOR disparado por
> uma trigger no> insert, o que garantirá a consistencia dos teus dados> >
> Renato Deggau> > On 4/21/07, Paulo Portella <pportellaa em hotmail.com>
> wrote:> > Mais uma vez peco humildes desculpas aos moderadores da lista:>
> >> > Gente, Informacao nunca eh demais, entao pq nao resolvemos isso
> evitando-se o DELETE da tabela. ?Ha casos e ""casos"" pra isso, mas em sua
> maioria uma opcao seria->Marca-lo como Ativo/Inativo, fazendo assim, a
> informacao (registro na tabela) continuarah lah, apenas Inativado.> >> >
> Odeio essa expressao-> DELETAR/APAGAR.> > Lembre-se Quem tem UM Tem
> Nenhum, Quem tem Dois "talvez" tem Um.> >> > Enfim. Existem opcoes, Se ele
> quer fazer isso de dentro do executavel, entao segue exemplo:> >
> 1a.Opcao)> >> > Evento OnNewRecord da
> tabela:dm.cdsclientesCODIGO.Value:=dm.cdsClientes.RecordCount+1; -> Caso
> ele aceite a opcao de NAO DELETAR o registro, apenas marca-lo como
> Ativo/Inativo> >> >> > 2a.Opcao)> > uma funcao pra "acharr" o valor do
> campo em questao:> > var> > NovoCodigo : Integer;> > IndiceAtual :
> String;> > begin IndiceAtual:=dm.cdsClientes.IndexFieldNames;> >
> dm.cdsClientes.IndexFieldNames:='CODIGO'; dm.cdsClientes.Last;
> NovoCodigo:=dm.cdscdsClientesCODIGO.Value+1;> >
> dm.cdsClientes.IndexFieldNames:=IndiceAtual;> > end;> >> > []s a todos> >
> Pportellaa.> >> >> >> > > Date: Sat, 21 Apr 2007 15:38:55 -0300> From:
> rdeggau em gmail.com> To: lista em firebase.com.br> Subject: Re: [firebase-br]
> Auto Incremento> > Reijanio:> > suponha que voce tenha cadastrado 5
> clientes (1,2,3,4 e 5); dai pela> identificacao de que o cliente 4 náo
> deveria ter sido cadastrado, voce> o exclui - agora voce tem 4 clientes;
> posteriormente vai incluir um> novo cliente; pelo seu codigo ele receberia
> o codigo 5 e este já> existe no sistema o que provocaria violaçao de chave
> primaria> > Renato Deggau> > On 4/20/07, Reijanio Nunes Ribeiro
> <rnribeiro em gmail.com> wrote:> > se vc usar direto no evento onnewrecord no
> clientdataset n seria mais facil> > não?> > ClientesIDcli.value :=
> clientes.recordcount + 1> >> > Em 20/04/07, Marcelo Castro -
> [www.ligteltelecom.com.br] <> > marcelo.castro em ligteltelecom.com.br>
> escreveu:> > >> > > Amigos;> > >> > > Eu estou usando um generator para
> criar auto incremento.> > >> > > Seria possível fazer eu fazer esse auto
> incremento direto no banco.> > >> > > Porém estou usando uma query para
> isso.> > >> > > Estou fazendo assim pelo delphi.> > >> > > procedure
> TDM_Server.DspProdutosBeforeUpdateRecord(Sender: TObject;> > > SourceDS:
> TDataSet; DeltaDS: TCustomClientDataSet;> > > UpdateKind: TUpdateKind; var
> Applied: Boolean);> > > begin> > > IF UpdateKind = ukInsert THEN> > >
> BEGIN> > > if SourceDS = QryProdutos THEN> > > BEGIN> > >
> QryGenProdutos.OPEN;> > >> > > TRY> > > FNUMPROD :=
> QryGenProdutos.fieldbyname> > > ('PROD_CODIGO_NOVO').AsInteger;> > >
> finally> > >> > > QryGenProdutos.Close;> > >> > > end;> > >
> DeltaDS.fieldbyname('PROD_CODIGO').NewValue := FnumPROD;> > >> > > end;> >
> > end;> > > end;> > > ______________________________________________> > >
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br> > >
> Para editar sua configuração na lista, use o endereço> > >
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br> > >
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa> > >> >
> ______________________________________________> > FireBase-BR
> (www.firebase.com.br) - Hospedado em www.locador.com.br> > Para editar sua
> configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br> > Para
> consultar mensagens antigas: http://firebase.com.br/pesquisa> >> >
> ______________________________________________> FireBase-BR
> (www.firebase.com.br) - Hospedado em www.locador.com.br> Para editar sua
> configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br> Para
> consultar mensagens antigas: http://firebase.com.br/pesquisa> >
> _________________________________________________________________> > O
> Windows Live Spaces já chegou! É fácil criar o seu próprio Web site
> pessoal.> > http://spaces.live.com/signup.aspx> >
> ______________________________________________> > FireBase-BR
> (www.firebase.com.br) - Hospedado em www.locador.com.br> > Para editar sua
> configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br> > Para
> consultar mensagens antigas: http://firebase.com.br/pesquisa> >> >
> ______________________________________________> FireBase-BR
> (www.firebase.com.br) - Hospedado em www.locador.com.br> Para editar sua
> configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br> Para
> consultar mensagens antigas: http://firebase.com.br/pesquisa
_________________________________________________________________
Procure em qualquer página Web com protecção eficaz. Obtenha já o Windows
Live Toolbar GRATUITO!
http://www.toolbar.live.com
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista