GARANTIR DESCONTO

Fórum Relacionamento e Domain #48811

11/01/2005

0

Pergunta 1
Como eu faco para quando for deletar um cliente verificar se este tem algum pedido pendente, se tiver, nao deixar tal cliente ser deletado.
Tabela Cliente        /           Tabela Pedido
  
CodCliente                     CodPedido
Nome Cliente                     CodCliente
                     TotalPagar

Pergunta 2
Para banco de dados C/S poderia ser feito no codigo um generator para ir incrementando o codigo do cliente, porem caso cancele tal insercao cancelaria no generatoro incremento? ou isto nao é recomendado para C/S, exemplo

Generator = 14
[INSERIR]
Generator manda codigo 15
[CANCELA]
Generator volta para codigo 14


O Sistema vai ser rodado por uns 5 computadores, sera que teria perigo se voltasse o generator? ja que sendo poucos computadores dificilmente vao tar dois inserindo ao mesmo tempo, mas pode acontecer.


Pergunta 3
Quando gravo um dado na tabela ´commit´ o dataset é fechado, fazendo eu chamar o ´open´ de novo, teria como evitar que isso seja fechado, o correto é utilizar o CommitRetaining ja que ele reabre a transation, ou o open sem trazer registro ( where codigo = 0 ) é mais eficiente?

Valeuu Pessoal


Peterks

Peterks

Responder

Posts

11/01/2005

Afarias

|Como eu faco para quando for deletar um cliente verificar se este tem
|algum pedido pendente, se tiver, nao deixar tal cliente ser deletado.

1- criando uma chave estrangeira

alter table pedido add constraint fk_pedido_cliente
foreign key (codcliente) references cliente (codcliente);

2- criando uma trigger before delete q execute uma exceção caso da existência de um registro na tabela pedido (faça 1 select para determinar isso)


|Para banco de dados C/S poderia ser feito no codigo um generator para
|ir incrementando o codigo do cliente, porem caso cancele tal insercao
|cancelaria no generator o incremento? ou isto nao é recomendado para
|C/S, exemplo

não é recomendado. esta não é uma boa prática em um sistema multi-usuário


|Quando gravo um dado na tabela ´commit´ o dataset é fechado, fazendo
|eu chamar o ´open´ de novo, teria como evitar que isso seja fechado, o
|correto é utilizar o CommitRetaining ja que ele reabre a transation, ou o
|open sem trazer registro ( where codigo = 0 ) é mais eficiente?

A segunda opção é mais eficiente.


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar