[firebase-br] Auto Incremento

Paulo Portella pportellaa em hotmail.com
Sáb Abr 21 17:43:19 -03 2007


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


Mais detalhes sobre a lista de discussão lista