[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