Validando se cadastro já existe

Delphi

20/08/2013

Boa noite,

Estou usando o seguinte código para saber se o orçamento de um determinado número com o mesmo ano já está cadastrado.

 with queryOrcamentoNumero do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT ORCAPAI_NUMERO, ORCAPAI_ANO FROM ORCA_PAI WHERE ORCAPAI_NUMERO = ' +dbNumeroOrcamento.Text+ ' AND ORCAPAI_ANO = ' +dbAno.Text+'');
      Open;

   if RecordCount > 0 then
   begin
     showmessage('Este número de orçamento já foi cadastrado.');
     dbNumeroOrcamento.setfocus;
     Screen.Cursor := crDefault;
     abort;


O código funciona o problema é que se o usuário for alterar o registro o sistema acusa que o número do orçamento já existe.
Nícolas Braz

Nícolas Braz

Curtidas 0

Respostas

Adilson Júnior

Adilson Júnior

20/08/2013

Existem várias maneiras de contornar isso. Tu pode criar uma variável booleana e manipular a mesma quando o usuário estiver atualizando. Então no momento de validar tu olha se ele está inserindo um novo registro ou então alterando. A segunda forma é usar a propriedade state do clientdataset... Tipo assim:

If <seu_clientedataset>.State in [dsInsert] then
begin
<seu código para verificação se registro já existe>
end;


Obs. State pode ser dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey, dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead, dsInternalCalc, dsOpening

As opções falam por si!

Um abraço e boa sorte!
GOSTEI 0
POSTAR