Validando se cadastro já existe
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.
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.
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
Curtidas 0
Respostas
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!
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