Integridade referencial - Rotina
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
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
Jelves
Curtidas 0
Respostas
Wallacest
23/05/2003
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
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
GOSTEI 0
E_gama
23/05/2003
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:
Basta, é claro, que você configure os nomes de tabelas e campos de acordo com o suas informações.
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.
GOSTEI 0
Jelves
23/05/2003
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
Jelves
GOSTEI 0