Como apagar várias linhas da tabela?
Pessoal,
Estou tentanto apagar 13 linhas ao mesmo tempo, usando esse código, mas não funciona.
Osmar.
procedure TFrmFinanceiro.cxButton7Click(Sender: TObject);
begin
with DmDados.IBQueryApagar_Mensalidade do
begin
Close;
SQL.Clear;
SQl.Add('Delete from MENSALIDADE');
SQL.Add('where escola = :escola and matricula_mensalidade = :matricula_mensalidade');
SQL.Add('and ano_mensalidade = :ano_mensalidade');
ParamByName('ESCOLA').AsString := DmDados.IBQryMensalidadeESCOLA.AsString;
ParamByName('matricula_mensalidade').AsString := DmDados.IBQryMensalidadeMATRICULA_MENSALIDADE.AsString;
ParamByName('ano_mensalidade').AsString := DmDados.IBQryMensalidadeANO_MENSALIDADE.AsString;
DmDados.IBQueryApagar_Mensalidade.ExecSQL;
DmDados.IBQryMensalidade.close;
DmDados.IBQryMensalidade.open;
end;
end;
Estou tentanto apagar 13 linhas ao mesmo tempo, usando esse código, mas não funciona.
Osmar.
procedure TFrmFinanceiro.cxButton7Click(Sender: TObject);
begin
with DmDados.IBQueryApagar_Mensalidade do
begin
Close;
SQL.Clear;
SQl.Add('Delete from MENSALIDADE');
SQL.Add('where escola = :escola and matricula_mensalidade = :matricula_mensalidade');
SQL.Add('and ano_mensalidade = :ano_mensalidade');
ParamByName('ESCOLA').AsString := DmDados.IBQryMensalidadeESCOLA.AsString;
ParamByName('matricula_mensalidade').AsString := DmDados.IBQryMensalidadeMATRICULA_MENSALIDADE.AsString;
ParamByName('ano_mensalidade').AsString := DmDados.IBQryMensalidadeANO_MENSALIDADE.AsString;
DmDados.IBQueryApagar_Mensalidade.ExecSQL;
DmDados.IBQryMensalidade.close;
DmDados.IBQryMensalidade.open;
end;
end;
Osmar
Curtidas 0
Respostas
Claudia Nogueira
16/12/2012
Dá algum erro ou simplesmente não apaga?
GOSTEI 0
Osmar
16/12/2012
não apaga e dá este erro:
First chance exception at $7523C6E3. Exception class EIBClientError with message 'Database not assigned'. Process GE.exe (2720)
First chance exception at $7523C6E3. Exception class EIBClientError with message 'Database not assigned'. Process GE.exe (2720)
GOSTEI 0
Alan Souza
16/12/2012
provavelmente seu dataset IBQueryApagar_Mensalidade não está conectado ao componente correspondente de conexão ao banco de dados (tem algum IBDatabase que conecta ao banco?).
GOSTEI 0
Osmar
16/12/2012
obrigado a todos, consegui resolver, ficou assim:
procedure TFrmFinanceiro.ButtonExcluir_MensalidadeClick(Sender: TObject);
begin
with QryExcuir_Mensalidade do
begin
Close;
SQL.Clear;
SQl.Add('Delete from MENSALIDADE');
SQL.Add('where escola = :escola and matricula_mensalidade = :matricula_mensalidade and ano_mensalidade = :ano_mensalidade');
ParamByName('ESCOLA').AsInteger := DmDados.IBQryAlunoESCOLA.AsInteger;
ParamByName('matricula_mensalidade').AsInteger := DmDados.IBQryAlunoMATRICULA.AsInteger;
ParamByName('ano_mensalidade').AsInteger := DmDados.IBQryMensalidadeANO_MENSALIDADE.AsInteger;
ExecSQL;
IBQryMensalidade.close;
IBQryMensalidade.open;
DmDados.IBQryAluno.Close;
DmDados.IBQryAluno.Open;
end;
end;
procedure TFrmFinanceiro.ButtonExcluir_MensalidadeClick(Sender: TObject);
begin
with QryExcuir_Mensalidade do
begin
Close;
SQL.Clear;
SQl.Add('Delete from MENSALIDADE');
SQL.Add('where escola = :escola and matricula_mensalidade = :matricula_mensalidade and ano_mensalidade = :ano_mensalidade');
ParamByName('ESCOLA').AsInteger := DmDados.IBQryAlunoESCOLA.AsInteger;
ParamByName('matricula_mensalidade').AsInteger := DmDados.IBQryAlunoMATRICULA.AsInteger;
ParamByName('ano_mensalidade').AsInteger := DmDados.IBQryMensalidadeANO_MENSALIDADE.AsInteger;
ExecSQL;
IBQryMensalidade.close;
IBQryMensalidade.open;
DmDados.IBQryAluno.Close;
DmDados.IBQryAluno.Open;
end;
end;
GOSTEI 0