Integridade referencial - Rotina

23/05/2003

2

Bom dia a todos!

Tenho duas tabelas: Exemplo: uma Produtos e outra Categoria do Produto
Sempre que cadastro um produto eu informo a qual categoria ele pertence
existe uma integridade entre esta duas tabelas, no qual não permite eu excluir uma categoria quando há um produto cadastrado que utiliza ela.

A questão é como faria para tratar este erro e Mostrar mensagem “existe produto cadastrado para esta categoria”.

Se alguém puder me passar uma rotina, ou apostila fico muito grato!


Estou utilizando: DELPHI 7
Banco de dados: Interbase
Estou usando Dbexpress no qual utilizo SQLQuery, DatasetProvider e ClientDataSet.

jelves@bol.com.br


Responder

Posts

23/05/2003

Wallacest

Olha vc pode pedir para ele fazer um loop e se nao encontrar nada entao deletar tipo:

TProduto.First;
While not TProduto.Eof Do
begin
If ProdutoGrupo.AsString = TGrupodescricao.Text then
begin
ShowMessage(´ Tal...´);
[...Seus codigos...]
end;
DM.TPonto.Next;
end else
TGrupo.delete;

Acho q isso pode t ajudar



ah, isso em banco de dados Desktop (paradox). pode sem SQL tb.

Qualquer duvida, entre em contato


Responder

24/05/2003

E_gama

Você pode fazer o que o amigo acima lhe disse, mas utilizando SQL:
Coloque um componente Query (QryProduto) no form de cadastro de categorias, e configure-o adquedamente. Depois, antes de excluir a categoria faça:

if QryProduto.Active then 
   QryProduto.Close;

QryProduto.SQL.Text := ´select count(*) as QTEPROD from PRODUTO ´
                     + ´where CODIGOCATEGORIA = ´ 
                     + IntToStr(CODIGODACATEGORIAQUEDESEJAEXCLUIR);
QryProduto.Open;
if QryProduto.FieldByName(´QTEPROD´).AsInteger > 0 then
   raise Exception.Create(´Existem produtos cadastrados nessa Categoria !´);



Basta, é claro, que você configure os nomes de tabelas e campos de acordo com o suas informações.


Responder

26/05/2003

Jelves

Não teria uma rotina que diz especificamente este erro? tipo assim quando dá esse erro, se trata de um erro de integridade referencial, ai todas vezes que dar esse erro no projeto, eu emito uma frase dizendo que existe um produto cadastrado pela aquela categoria (fazendo um try exception-´só q não sei como faz´, isso é sem ser preciso fazer um Instrução SQL para verificar este erro?

Jelves


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira