Fórum Operation not allowed on a unidirectional dataset #191531

29/10/2003

0

Galera,
sempre utilizei conexão ADO, estou migrando para dbexpress e está dando o seguinte erro ´Operation not allowed on a unidirectional dataset´ quando cou conectar um dbgrid a um DataSource.

Os componentes que estou utilizando são:
TSQLConection;
TSQLStoredProc e
TDataSouce.

Valeu a força


Ruysalles

Ruysalles

Responder

Posts

29/10/2003

Rômulo Barros

utilize um DataSetProvider como intermediário...


Responder

Gostei + 0

23/11/2005

Emersonsj

vc pode usar o simplesdataset ele funciona muito bem Ex

Whit SimpleDataSet1 Do
begin
Close;
CommandText := ´´;
CommandText := ´Select * From Tabela´;
Open;
end;


Responder

Gostei + 0

23/11/2005

Adsilver

Amigo Ruy,

A engine DbExpress so trabalha com cursores unidirecionais, ou seja, carrega os dados em memória, faz a passagem dos registros e libera a memória. Ela nao faz cache. Por isso mesmo nao é permitido operações como Prior, Insert, etc.. Os unicos comandos permitidos são Next a Last.
Para se trabalhar com edição existem duas maneiras: A primeira é voce implementar todos os comandos SQL manualmente e outra maneira (e mais recomendavel) é voce utilizar algum componente que faça cache. Existem duas maneiras de se fazer cache atraves de componentes. Pode-se utilizar o componente SimpleDataSet ou o conjunto de componentes DataSetProvider + ClientDataSet.
Através desses recursos voce podera utilizar seu dataset livremente, fazendo inserções, exclusoes e movimentacoes de registros.
Nao esqueça de enviar as modificação ao servidor utilizando o método ApplyUpdates como no exemplo abaixo:

SQLConnection1.ApplyUpdates(-1);

O parametro deste método indica a quantidade máximo de erros permitidos na atualização do servidor. Caso informe -1, todos os erros são ignorados.
Para trabalhar os erros gerados utilize a técnica de reconciliação através do evento OnReconcilieError do componente ClienteDataSet e/ou SimpleDataSet.

Mais informações utilize o help do Delphi que é bastante completo.

----------------------------------------------------
Adriano Silveira
Borland Delphi 7 Advanced Product Certified


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar