Fórum Query... Tem como fazer isso??? #287107
05/07/2005
0
como faço pra excluir os registros na tabela, mas informando quantos registros eu quero deletar...
tipo assim:
dm.qryExemplares.SQL.Clear; dm.qryExemplares.Sql.Add(´SELECT * FROM Tabela1´); dm.qryExemplares.Sql.Add(´WHERE controle=:0´); dm.qryExemplares.Parameters[0].Value:=cod; dm.qryExemplares.Open;
digamos que essa query retorne 5 resultados...
e na query abaixo eu vou deletar todos esses resultados...
dm.qryDeletar.SQL.Clear; dm.qryDeletar.Sql.Add(´DELETE * FROM Tabela1´); dm.qryDeletar.Sql.Add(´WHERE controle = :0´); dm.qryDeletar.Parameters[0].Value:=dm.tbTabela2id.Value; dm.qryDeletar.ExecSQL;
como eu faço pra ao invés de deletar todos os resultados dessa tabela eu deletar 3, por exemplo... ou uma quantidade qualquer, informada...
obrigado desde ja a ajuda!
Raphael.sx
Curtir tópico
+ 0Posts
06/07/2005
Khundalini
[]s
Rubem Rocha
Manaus, AM
Gostei + 0
06/07/2005
Sma
Ex..
dm.qryDeletar.SQL.Clear;
dm.qryDeletar.Sql.Add(´DELETE * FROM Tabela1´);
dm.qryDeletar.Sql.Add(´WHERE controle = :0´);
dm.qryDeletar.Sql.Add(´LIMIT 3´);
dm.qryDeletar.Parameters[0].Value:=dm.tbTabela2id.Value;
dm.qryDeletar.ExecSQL;
desta forma ele apenas deleta os 3 primeiros registros...
Gostei + 0
06/07/2005
Khundalini
[]s
Rubem Rocha
Manaus, AM
Gostei + 0
06/07/2005
Raphael.sx
Gostei + 0
06/07/2005
Khundalini
[]s
Rubem Rocha
Manaus, AM
Gostei + 0
06/07/2005
Cabelo
dm.qryExemplares.SQL.Clear; dm.qryExemplares.Sql.Add(´SELECT * FROM Tabela1´); dm.qryExemplares.Sql.Add(´WHERE controle=:0´); dm.qryExemplares.Parameters[0].Value:=cod; dm.qryExemplares.Open;
dm.qryDeletar.SQL.Clear; dm.qryDeletar.Sql.Add(´DELETE * FROM Tabela1´); dm.qryDeletar.Sql.Add(´WHERE controle = :0´); dm.qryDeletar.Parameters[0].Value:=dm.tbTabela2id.Value; dm.qryDeletar.ExecSQL;
Esta exclusão é aleatória, ou você deseja excluir registros selecionados..
Outra coisa.. Você quer que seja um SQL, para executar direto no banco ou pode ser via delphi???
Gostei + 0
06/07/2005
Raphael.sx
obrigado pela atenção!
Gostei + 0
06/07/2005
Tremonti
onde 1 é quantidade de registro que vc quer trazer...
Bom, o que vc pode fazer é se caso o resultado da query seja exibido em um DBGrid, criar um campo (calculado, pode ser), onde no onDblClick do DBGrid vocÊ coloque o valor para ´X´
E colocar um botao, excluir selecionados por exemplo
onde ele dará um loop na tabela e apagar somente os que o campo tal seja = ´X´
Seria mais ou menos assim
tabela.first
While not Tabela.first do
Begin
if TabelaCAmpo.value = ´X´ Then
TAbela.Delete;
Tabela.next;
End;
Tabela.First
e no onDBLCLick
Tabela.Edit;
If TabelaCAmpo.VAlue = ´X´ Then
TabelaCampo.value = ´´
Else
TabelaCampo.value = ´X´
Existem algumas considerações referentes a cada tipo de componente para conexão que vc usar....
POr exemplo, se usar BDE precisaria de um Update e dar um Apply depois, e assim vai...
Gostei + 0
06/07/2005
Raphael.sx
Gostei + 0
07/07/2005
Ivanh
SET TERM ^ ;
CREATE PROCEDURE NEW_PROCEDURE (
QTDEEXCLUIR INTEGER)
AS
DECLARE VARIABLE CODIGO INTEGER;
BEGIN
FOR
SELECT FIRST :QTDEEXCLUIR CODIGO FROM TABELA
INTO :CODIGO;
DO
BEGIN
DELETE FROM TABELA
WHERE CODIGO = :CODIGO;
END
END
^
SET TERM ; ^
Gostei + 0
08/07/2005
Tremonti
O que vc fez?!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)