Testar se registro em uso
Boa tarde Amigos.
Estou fazendo um programinha que cadastra clientes e orçamentos.
A tabela orcamento esta relacionada com a tabela clientes através do campo cliente.id_cliente e orcamento.cod_cliente.
Beleza....
Na verdade o que eu desejo? Eu quero colocar um teste no botão Excluir do Cadastro de Clientes, que, ao tentar excluir ele vai fazer uma pesquisa, para ver se a tabela orçamentos esta utilizando este cliente.
Se estiver cadastrado algum orçamento para este cliente, o cliente não pode ser excluido, se não tiver nenhum orçamento cadastrado para este cliente, o registro será excluido.
Como devo fazer este teste?
Já tentei de várias formas, mas não fica perfeito.
Se alguém puder me ajudar?
Obrigado.
Estou fazendo um programinha que cadastra clientes e orçamentos.
A tabela orcamento esta relacionada com a tabela clientes através do campo cliente.id_cliente e orcamento.cod_cliente.
Beleza....
Na verdade o que eu desejo? Eu quero colocar um teste no botão Excluir do Cadastro de Clientes, que, ao tentar excluir ele vai fazer uma pesquisa, para ver se a tabela orçamentos esta utilizando este cliente.
Se estiver cadastrado algum orçamento para este cliente, o cliente não pode ser excluido, se não tiver nenhum orçamento cadastrado para este cliente, o registro será excluido.
Como devo fazer este teste?
Já tentei de várias formas, mas não fica perfeito.
Se alguém puder me ajudar?
Obrigado.
Uelinton_reis
Curtidas 0
Respostas
Macario
13/03/2008
Olá colega [b:35d5e9e2e6]uelinton_reis[/b:35d5e9e2e6], boa tarde.
Então qual base de dados você utiliza?
um exemplo em SQL:
Esta instrução nao deve ser usada como, voce deve usar uma restrição, como TOP (SQL Server) pois identificando apenas um registro ja basta.
Agora se voce quiser o codigo em Delphi, diz ai. 8)
Então qual base de dados você utiliza?
um exemplo em SQL:
select COD_CLIENTE from Orcamento where COD_CLIENTE = :COD_CLIENTE;
Esta instrução nao deve ser usada como, voce deve usar uma restrição, como TOP (SQL Server) pois identificando apenas um registro ja basta.
Agora se voce quiser o codigo em Delphi, diz ai. 8)
GOSTEI 0
Uelinton_reis
13/03/2008
Olá colega [b:60f27b02d4]uelinton_reis[/b:60f27b02d4], boa tarde.
Então qual base de dados você utiliza?
um exemplo em SQL:
Esta instrução nao deve ser usada como, voce deve usar uma restrição, como TOP (SQL Server) pois identificando apenas um registro ja basta.
Agora se voce quiser o codigo em Delphi, diz ai. 8)
select COD_CLIENTE from Orcamento where COD_CLIENTE = :COD_CLIENTE;
--------------------------
Valeu amigo....
Se vc puder me ajudar com o código em delphi....
obrigado.
GOSTEI 0
Macario
13/03/2008
Qual a base de dados para que eu possa montar o codigo correto.
8)
8)
GOSTEI 0
Uelinton_reis
13/03/2008
Qual a base de dados para que eu possa montar o codigo correto.
8)
Estou utilizando Interbase 6.5
valeu
GOSTEI 0
Macario
13/03/2008
Onde esta Dataset troque pelo seu compenente de acesso.
A clausula FIRST 1 limita a consulta a unico resgistro, pois é so o que precisamos.
Espero que ajude.
var sSQL : String; begin sSQL := ´ select [b]FIRST 1[/b] COD_CLIENTE from Orcamento where COD_CLIENTE = ´+insttostr(iCodCliente) Dataset.Close; Dataset.SQL.clear; Dataset.SQL.Add(sSQL); Dataset.Open; if not Dataset.isEmpty then begin Mensagem(´Existe orçamento para este cliente´); abort; end; end;
A clausula FIRST 1 limita a consulta a unico resgistro, pois é so o que precisamos.
Espero que ajude.
GOSTEI 0
Uelinton_reis
13/03/2008
Onde esta Dataset troque pelo seu compenente de acesso.
A clausula FIRST 1 limita a consulta a unico resgistro, pois é so o que precisamos.
Espero que ajude.
var sSQL : String; begin sSQL := ´ select [b]FIRST 1[/b] COD_CLIENTE from Orcamento where COD_CLIENTE = ´+insttostr(iCodCliente) Dataset.Close; Dataset.SQL.clear; Dataset.SQL.Add(sSQL); Dataset.Open; if not Dataset.isEmpty then begin Mensagem(´Existe orçamento para este cliente´); abort; end; end;
Valeu cara, obrigado mesmo pela ajuda......
só me tira mais esta duvida.
Qual o significado de:
if not Dataset.isEmpty then
valeu, até mais....
GOSTEI 0
Macario
13/03/2008
if not Dataset.isEmpty then
A propriedade isEmpty de TDataset verifica se o mesmo esta vazio
retornando True se estiver vazio e False do contrario.
8)
A propriedade isEmpty de TDataset verifica se o mesmo esta vazio
retornando True se estiver vazio e False do contrario.
8)
GOSTEI 0
Uelinton_reis
13/03/2008
if not Dataset.isEmpty then
A propriedade isEmpty de TDataset verifica se o mesmo esta vazio
retornando True se estiver vazio e False do contrario.
8)
Cara, o que seria estes [b:276f0df65b] e [/b:276f0df65b] do código abaixo?
select [b:276f0df65b]FIRST 1[/b:276f0df65b] COD_CLIENTE from Orcamento
valeu.
GOSTEI 0
Uelinton_reis
13/03/2008
if not Dataset.isEmpty then
A propriedade isEmpty de TDataset verifica se o mesmo esta vazio
retornando True se estiver vazio e False do contrario.
8)
Caro amigo, testei aqui com a clausula First 1, mas não deu certo.
Ele da erro...
valeu.
GOSTEI 0