delete com sql
Pessoal,
A tabela FREQUENCIA tem 31 campos (FREQUENCIA FREQUENCIA_FALTA1... FREQUENCIA FREQUENCIA_FALTA31) O código abaixo está excluindo todos os campos da tabela de acordo com o ano e mês, mas preciso que só exclua a coluna referente ao dia da data informada (FREQUENCIA FREQUENCIA_FALTA_' + inttostr(dia)) e não todos os 31 campos do referido mês.
A tabela FREQUENCIA tem 31 campos (FREQUENCIA FREQUENCIA_FALTA1... FREQUENCIA FREQUENCIA_FALTA31) O código abaixo está excluindo todos os campos da tabela de acordo com o ano e mês, mas preciso que só exclua a coluna referente ao dia da data informada (FREQUENCIA FREQUENCIA_FALTA_' + inttostr(dia)) e não todos os 31 campos do referido mês.
procedure TFrmFrequencia.BtnExcluirClick(Sender: TObject);
Var
PegaData, RecebeData : string;
dia, mes, ano : Word;
sSQL : String;
begin
PegaData := FormatDateTime('yyyymm', Edt_DataFrequencia.Date);
DecodeDate(edt_datafrequencia.Date,ano,mes, dia);
with DmDados.IBQryFrequencia do
begin
Close;
sSQL := SQL.Text;
SQL.Clear;
SQl.Add('DELETE FROM FREQUENCIA FREQUENCIA_FALTA_' + inttostr(dia));
SQL.Add('where escola =:escola and codigo_Turma =:turma and codigo_disciplina =:disciplina and anomes =:data');
ParamByName('ESCOLA').AsInteger := DmDados.IBQryEscolaCODIGO.AsInteger;
ParamByName('turma').AsInteger := DmDados.IBQryTurmaCODIGO.AsInteger;
ParamByName('disciplina').AsInteger := DmDados.IBQryDisciplinaCODIGO.AsInteger;
ParamByName('data').AsString := PegaData;
ExecSQL;
DmDados.IBTransaction.CommitRetaining;
SQL.Text := sSQL;
end;
Osmar
Curtidas 0
Respostas
Joel Rodrigues
01/09/2014
Não se pode EXCLUIR uma coluna, creio que nesse caso você queira fazer um UPDATE, alterando o valor.
GOSTEI 0
Osmar
01/09/2014
Joel, realmente preciso excluir os dados inseridos na coluna, nessas colunas o usuário inseri a frequência dos alunos com 'C' ou 'F', mas se ele fez um lançamento indevidamente preciso ter a opção de excluir só os dados de uma das 31 colunas, a não ser que possa ser feito um UPDATE deixando os campos da referida coluna vazio.
GOSTEI 0
Osmar
01/09/2014
Joel,
Obrigado pela dica, refiz o código e funcionou.
SQl.Add('UPDATE FREQUENCIA SET FREQUENCIA_FALTA_' + inttostr(dia) + ' = ' + quotedstr(''));
Valeu irmão.
Obrigado pela dica, refiz o código e funcionou.
SQl.Add('UPDATE FREQUENCIA SET FREQUENCIA_FALTA_' + inttostr(dia) + ' = ' + quotedstr(''));
Valeu irmão.
GOSTEI 0
Joel Rodrigues
01/09/2014
Opa, show de bola.
Abraço e bons códigos.
Abraço e bons códigos.
GOSTEI 0