Deletar registro (registro de outra tabela)

Delphi

05/02/2004

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

Curtidas 0

Respostas

Zottis

Zottis

05/02/2004

Qual a linguagem que você usa?

Se for delphi use um loop antes de deletar

(Before delete)


Zottis


GOSTEI 0
Wolverine

Wolverine

05/02/2004

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


GOSTEI 0
Zottis

Zottis

05/02/2004

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...


GOSTEI 0
Wolverine

Wolverine

05/02/2004

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+


GOSTEI 0
Wolverine

Wolverine

05/02/2004

:( Help


GOSTEI 0
Martoss

Martoss

05/02/2004

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


GOSTEI 0
Wolverine

Wolverine

05/02/2004

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


GOSTEI 0
Wolverine

Wolverine

05/02/2004

:( Ajuda


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

05/02/2004

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;




GOSTEI 0
Wolverine

Wolverine

05/02/2004

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;



GOSTEI 0
Wolverine

Wolverine

05/02/2004

: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


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

05/02/2004

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;



GOSTEI 0
Wolverine

Wolverine

05/02/2004

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


GOSTEI 0
POSTAR