Exclusão de Registro pelo IbDataSet não deu certo

Firebird

30/08/2004

como eu faço para excluir um registro em um ibdataset depois de uma consulta sql nele.
estou fazendo uma consulta no ibdataset(sql) e no resultado da consulta eu quero excluir um registro mas, eu já tentei:

ibdataset.delete

//////////////////
ibdataset.delete;
ibdataset.transaction.commit;


mas quando pesquiso novamente o registro ainda está lá.


Tap_pedroso

Tap_pedroso

Curtidas 0

Respostas

Afarias

Afarias

30/08/2004

A propriedade DeleteSQL deve estar preenchida com o código q deve ser executado ao chamar o método Delete. Em geral é algo como::

delete from tabela_tal
where campo_chave=:campo_chave



T+


GOSTEI 0
Tap_pedroso

Tap_pedroso

30/08/2004

a propriedade foi preeenchida automaticamente pelo ibdataset quando eu o liguei com a tabela no banco de dados e está assim:

delete from CONTASPAGAR
where
NCONTA = :OLD_NCONTA


quando eu coloco o evenTo .DELETE no botão eu não tenho que jogar o número da conta selecionada no grid no parametro OLD_NCONTA?


GOSTEI 0
Afarias

Afarias

30/08/2004

|quando eu coloco o evenTo .DELETE no botão eu não tenho que jogar o
|número da conta selecionada no grid no parametro OLD_NCONTA?

NÃO .. isso é feito automaticamente pelo componente! Basta fazer como está fazendo mesmo::

DataSet.Delete;
DataSet.Transaction.Commit;


Apenas q o campo NCONTA deve ser único (chave primária de preferência)


T+


GOSTEI 0
Tap_pedroso

Tap_pedroso

30/08/2004

então era isto,eu verifiquei e tinha + de 1 registro com o mesmo nº de conta e eu deixei somente 1 e ele excluiu.

então para excluir e alterar no ibdataset o registro deve ser único para o campo que o ibdataset irá usar para excluir o registro?


GOSTEI 0
Afarias

Afarias

30/08/2004

|então para excluir e alterar no ibdataset o registro deve ser único para o
|campo que o ibdataset irá usar para excluir o registro?

SIM -- na verdade, o SQL deve ´atingir´ apenas 1 registro, seja com um campo ou mais! Ex::

delete from tabela_tal
where campo1 = :old_campo1 and campo2 = :old_campo2

neste caso os campos campo1 e campo2 definem um registro único (juntos) -- como uma chave primária composta


T+


GOSTEI 0
POSTAR