Fórum Deletar registro (registro de outra tabela) #211927
05/02/2004
0
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
Curtir tópico
+ 0Posts
05/02/2004
Zottis
Se for delphi use um loop antes de deletar
(Before delete)
Zottis
Gostei + 0
05/02/2004
Wolverine
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
05/02/2004
Zottis
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
06/02/2004
Wolverine
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
06/02/2004
Wolverine
Gostei + 0
06/02/2004
Martoss
Ja viu como estah o relacionamento?
Talvez o problema possa ser no Banco de Dados, no relacioamento.
fala ae, soh pra confirmar
Gostei + 0
07/02/2004
Wolverine
Gostei + 0
07/02/2004
Wolverine
Gostei + 0
07/02/2004
Aroldo Zanela
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
07/02/2004
Wolverine
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
07/02/2004
Wolverine
[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
07/02/2004
Aroldo Zanela
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
08/02/2004
Wolverine
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)