Como evitar duplicação de registros?

Delphi

10/08/2005

Eu tenho um form simples para cadastro dos setores. A estrutura da tabela de setores é seguinte:

CREATE TABLE ´SETORES´(
AUTOMATICO INTEGER NOT NULL,
NOME VARCHAR(40) COLLATE PXW_INTL850,
CONSTRAINT ´PK_SETORES´ PRIMARY KEY(´AUTOMATICO´)
);

Sendo que o campo automático é preenchido automaticamente em um trigger incrementandoo valor de um generator.

Adicionei no form um IBDataSet. A SelectSQL ficou:
SELECT AUTOMATICO, NOME FROM SETORES

No DataSetEditor selecionei como KeyField somente o campo automático e em UpdateFields selecionei ambos os campos e pressionei ´Generate SQL´.

Adicionei um DataSetProvider apontando para esse IBDataSet e depois adicionei um ClientDataSet apontando para esse DataSetProvider.

Adicionei os campos do ClientDataSet pelo FieldsEditor.

Pois bem, o resto do form é somente um DBEdit para o campo nome e um DBNavigator. O problema é o seguinte: A chave primária é o campo ´AUTOMATICO´. Ele nunca vai se repetir porque ele é gerado automaticamente via trigger. Então como faço agora para evitar que o usuário insira um segundo registro com o mesmo ´NOME´? Pq a partir do momento que a chave primária é o campo AUTOMATICO preencher um segundo registro com um nome existente não leventará nenhuma exceção...

Agradeço qualquer ajuda.


Djorius

Djorius

Curtidas 0

Respostas

Djorius

Djorius

10/08/2005

alguém :?:


GOSTEI 0
Fievel

Fievel

10/08/2005

1º alternativa: colocar o campo NOME como primário também.

2º alternativa: fazer um select antes de adicionar o novo registro e verificar se o nome informado não existe.


GOSTEI 0
POSTAR