Fórum Deletar registro (registro de outra tabela) #211927

05/02/2004

0

tenho uma tablea material e outra movimentacao
oq eu quere fazer é:
quando deletar qquer material, deletar a movimentacao q existir com o material q deletei
ja tentei muito, mais nao estou conseguindo,
Valew, espero a ajuda de vcs

[b:bcf4ff5353][color=red:bcf4ff5353]Editado(Beppe): Título em maiúsculas. Leais as regras de conduta.[/color:bcf4ff5353][/b:bcf4ff5353]


Wolverine

Wolverine

Responder

Posts

05/02/2004

Zottis

Qual a linguagem que você usa?

Se for delphi use um loop antes de deletar

(Before delete)


Zottis


Responder

Gostei + 0

05/02/2004

Wolverine

Eu uso Delphi e Paradox acesso BDE,
eu ja usei isso zottis (while not table.eof do)
so q ñ esta dando certo
Minha Tabela
Material
Codigo,Nome,Quantidae,
Movimentacao
Codigo,Data,Quantidade,Codigo_material

ja tentei tabem usar sql (delete from movimentacao where codigo_material = :Codigo_material(este sendo o codigo da tabela Material)), e depois eu deletava o material (tablematerial.delete)
so q esta dando um erro no dephi
Blz


Responder

Gostei + 0

05/02/2004

Zottis

As tabelas sao master details?

De uma olhada no demo do delphi

Demos\DB\Mastapp\mastapp.dpr

no DM na tabela orders before delete


Para mim deu certo quando usava paradox...


Responder

Gostei + 0

06/02/2004

Wolverine

o exemplo q tem no delphi eu fiz igual, só q ele esta deletando td os registros da tabela movimentação, e ñ só os registros do material q foi deletado
eu quero fazer é, quando, no form Material, deletar o material, tds as movimentações que contenha o mesmo sejam deletados
e se eu uso master details eu ñ sei oq é
tem como vc me ou alguém passar-me o código para fazer isso
Blz, T+


Responder

Gostei + 0

06/02/2004

Wolverine

:( Help


Responder

Gostei + 0

06/02/2004

Martoss

Com q banco de dados tah trabalhando???

Ja viu como estah o relacionamento?

Talvez o problema possa ser no Banco de Dados, no relacioamento.

fala ae, soh pra confirmar


Responder

Gostei + 0

07/02/2004

Wolverine

Eu uso Delphi e Paradox acesso BDE, se vc quiser posso mandar para vc dar uma olhada


Responder

Gostei + 0

07/02/2004

Wolverine

:( Ajuda


Responder

Gostei + 0

07/02/2004

Aroldo Zanela

Colega,

Supondo que código seja inteiro:

With Query do
begin
  /* Remove detalhes antes do mestre para não ficar órfãos */
  Close;
  SQL.Text := ´DELETE FROM movimentacao WHERE codigo = :codigo´;
  ParamByName(´codigo´).Value := StrToInt(Edit1.Text);
  ExecSQL;

  Close;
  SQL.Text := ´DELETE FROM material WHERE codigo = :codigo´;
  ParamByName(´codigo´).Value := StrToInt(Edit1.Text);
  ExecSQL;
end;




Responder

Gostei + 0

07/02/2004

Wolverine

MUITO ABRIGADO [b:21c23b80d5]Aroldo Zanela[/b:21c23b80d5], ate q fim, agora deu certo

  if Application.MessageBox(´Deseja excluir este material?´,´Confirme´,
        MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2) = IDNO then
        Exit; // retorna (sem fazer nada)
    // devemos excluir os itens primeiro, para não termos
    // registros órfãos
    with DM do
    begin
    try
      With Query do
      begin
     //* Remove detalhes antes do mestre para não ficar órfãos */
        Close;
        SQL.Text := ´DELETE FROM movimentacao WHERE codigo_material = :codigo´;
        ParamByName(´codigo´).Value := StrToInt(DBEdit1.Text);
        ExecSQL;
      end;
      TableMaterial.Delete;
      TableMovimentacao.Refresh;
    except
        ShowMessage(´Ocorreu um erro durante a exclusão do pedido´);
    end;
   end;
end;



Responder

Gostei + 0

07/02/2004

Wolverine

:lol:
[b:a335270d04] Aroldo Zanela[/b:a335270d04], estava dando erro na minha logica pq estava usando, sql.add, e deu certo com sql.text, tem como vc me explicar o pq, ou endicar um lugar para eu tirar essa outra duvida


Responder

Gostei + 0

07/02/2004

Aroldo Zanela

Colega,

A principal diferença entre a propriedade Text e o método Add da classe TQuery prende-se ao fato que ao atribuir o conteúdo por meio da propriedade Text ele sobrescreve o valor atual, já no caso de Add é necessário utilizar o método Clear antes para limpar o conteúdo da propriedade Text.

São equivalentes da seguinte forma:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add(´SELECT * FROM tabela´);
Query.Open;

Query.Close;
Query.SQL.Text := ´SELECT * FROM tabela´;
Query.Open;



Responder

Gostei + 0

08/02/2004

Wolverine

Aroldo Zanela, eu tenho certeza q estava dando sql.clear, mais estava dando erro, mais Muito Obrigado


Responder

Gostei + 0

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

Aceitar