[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