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.
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
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
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
Curtir tópico
+ 0
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+
|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
Clique aqui para fazer login e interagir na Comunidade :)