[firebase-br] Gravar dados

Cristiano Rebonatto crebonatto em upf.br
Qua Nov 8 11:32:25 -03 2006


Você pode criar um índice único pelo campo nome e se der duplicidade, 
tratar a EXCEPTION gerada.
Se você utiliza uma Stored Procedure, pode fazer a verificação se o nome 
já existe e não inserir.
Apenas um comentário, deve-se avaliar a criação de unique índice para 
campos varchar, pois a eficácia da solução irá depender muito de quem 
irá cadastrar. Qualquer diferença, erro, espaços, abreviatura na 
digitação já não é a mesmo conteúdo.

Ex. Missão Impossível 3
      Missão Impossível III
      Missão   Impossível 3
      Missão Impossível 3.

Att.





Vander escreveu:
> ***********************
> Sua mensagem foi verificada pelo InterScan MSS.
> ***********-***********
>
>
> Bom Dia a todos.
>
> Estou usando a seguinte rotina para gravar registro no banco e esta funcionando quase que corretamente , tenho um campo chamado LOC_ID esse campo é PK e tb autoincremento e tb um campo chamado NOME varchar,
> eu sei que o campo LOC_ID não pode ser duplicado , mas o campo NOME pode ser , ae esta o meu problema como eu fasso para tb não deixar gravar duplicidade do campo NOME , tem como verificar antes de gravar se já existe o NOME digitado ?  por exemplo o cliente vai cadastrar um filme e no campo NOME ele vai digitar o filme até aki sem problema automaticamente vai ser gerado um LOC_ID e vai ser gravado o filme , mas o problema é se ele por acaso for cadastrar o mesmo filme ele tb vai conseguir pois o mas com outro LOC_ID .
>
>
> procedure TFRM_Consulta_Locadora.SpeedButton3Click(Sender: TObject);
> var
>     td:TTransactionDesc;
> begin
>     // incluir na USES dbxpress
>     if MessageDlg('Deseja Realmente Excluir o Registro ?',mtConfirmation,[mbyes,mbno],0)=mryes then
>     begin
>     if not DM_LVS.DB_Locadora.InTransaction then
>     begin
>         TD.TransactionID:=1;
>         TD.IsolationLevel:=xilREADCOMMITTED;
>         DM_LVS.DB_Locadora.StartTransaction(TD);
>     end;
>     if DM_LVS.CDS_Locadora.State in[dsinsert]then
>     begin
>         DM_LVS.SP_Locadora.ExecProc;
>         DM_LVS.CDS_LocadoraLOC_ID.Value:=DM_LVS.SP_Locadora.Params[0].value;
>     end;
>         DM_LVS.CDS_Locadora.delete;
>     Try
>         if (DM_LVS.CDS_Locadora.ChangeCount>0)then
>             DM_LVS.CDS_Locadora.ApplyUpdates(-1);
>             DM_LVS.DB_Locadora.Commit(td);
>     except
>         DM_LVS.DB_Locadora.Rollback(td);
>     end;
>        //DMos.CDSClientes.Insert;
>        DM_LVS.CDS_Locadora.Append;
>     end;      
>
> end;
>
> end.
>
> Desde já agradeço pela atenção de todos.
>
>
>
>
>
> Atenciosamente,
> Vanderlei
> Help Desk / RS
> 08007013700
> vanderleif em dimper.com.br
> ______________________________________________
> 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
>
>   

-- 
+-----------------------------------------------------------+
 Cristiano Rebonatto 
 Setor de Análise e Desenvolvimento             
 Divisão de Tecnologia da Informação 
 Universidade de Passo Fundo
 Passo Fundo - RS
+-----------------------------------------------------------+





Mais detalhes sobre a lista de discussão lista