Usar CommandText de um ClientDataset em memória.

Delphi

13/08/2015

Olá pessoal estou com uma duvida!

Não sei se e possível, mais gostaria de saber se tem como usar uma instrução SQL em um ClientDataset em memória.


Exemplo:

Tenho uma tabela com 100 registro em memória, ou seja não tem uma tabela física deste registro em banco de dados.
Com os seguintes campos,

[img]http://arquivo.devmedia.com.br/forum/imagem/327825-20150813-113258.png[/img]


Quero marcar e desmarcar todos os registros.

no CheckBox hoje estou utilizando um loop no ClientDataSet, exemplo.

ClientDataSet.Firts;
While Not ClientDataSet.Eof Do
Begin

ClientDataSet.Edit;
ClientDataSet.FieldByName('matsel').AsBoolean:= cbxSelecionarRegistros.Checked;
ClientDataSet.Post;

ClientDataSet.Next;
End;

Beleza funciona normalmente, mais gostaria de usar uma instrução SQl. Como por exemplo;

ClientDataSet.Close;
ClientDataSet.CommandText:= 'update teste SET matsel=:pmatsel;';
ClientDataSet.Params.ParamByName('pmatsel').AsBoolean:= cbxCheck.Checked;
ClientDataSet.Open;

Tem como fazer isso? Desde já muito obrigado pela atenção pessoal!
Leonardo Rehder

Leonardo Rehder

Curtidas 0

Respostas

Mateus Carvalho

Mateus Carvalho

13/08/2015

Você pode selecionar via dbgrid, exemplo:

procedure TForm1.btselecionartodos(Sender: TObject);
begin
table1.First;
While not table1.Eof do begin
DBGrid.SelectedRows.CurrentRowSelected := True;
table1.Next;
end;
end;


Att!
GOSTEI 0
Leonardo Rehder

Leonardo Rehder

13/08/2015

Ola, Mac, boa tarde!

Entendo, mais da mesma forma tenho que fazer um loop no ClientDataSet!
Não era bem isso que eu queria. Eu sei que instrução SQL são executadas pelo servidor de banco de dados e não pela aplicação!
Bom do meu jeito e do seu, funciona corretamente.

Mais do mesmo jeito, muito obrigado pela atenção!
GOSTEI 0
POSTAR