Duvida com dbExpress

Delphi

22/05/2006

Bom pessoal, sempre usei ADO para conexão com Bacno de Dados, agora estou tentando aprender dbExpress e estou com uma duvida:

primeiro fiz um teste assim:
SQLConnection -> SQLDataSet(commandType=ctTable) -> DataSetProvider -> ClienteDataSet -> DataSource

Beleza funcionou legal !!!!!

Então troquei o SQLDataSet por um SQLQuery:
SQLConnection -> SQLQuery -> DataSetProvider -> ClienteDataSet -> DataSource


ai quando executo: ClientDataSet.ApplyUpdates(0);
dá erro:


[color=red:1d93b62e40]´Table unknown employee´[/color:1d93b62e40]

como resolver isso ????


Fabiano Góes

Fabiano Góes

Curtidas 0

Respostas

Mdm

Mdm

22/05/2006

Provavelmente seu sql dentro da query esteja em minusculo passe-o para maisculo.
Se não der certo poste novamente !

[]s


GOSTEI 0
Fabiano Góes

Fabiano Góes

22/05/2006

MDM

muito obrigado pela atenção !!!!

Era extamente isso, apenas mudei o sql da query para maiusculo e funcionou, só que :
se faço uma alteração beleza ao fazer uma segunda alteraçao e executar o ClientDataSet.ApplyUpdates(0);
retorno outro erro:

[color=red:38c141f185]´Record not found or changed by anouther user´[/color:38c141f185]

desculpe a iguinorancia, mais estou realmente iniciando em dbExpress e estou muito a fim de aprender.

desde já agredeço !!!!


GOSTEI 0
Fabiano Góes

Fabiano Góes

22/05/2006

Opá, Galsera não sei se estou fazendo da maneira correta, mais assim resolveu:

begin
  ClientDataSet.ApplyUpdates(0);
  ClientDataSet.Close;
  ClientDataSet.Open;
end;



se esta não é a maneira correta de atualizar os dados, por favor me corrijam !!!!


GOSTEI 0
Mdm

Mdm

22/05/2006

Ola Colega !
Vc esta dando um post no ClientDataSet antes de aplicar o ApplyUpdates ? (não tenho certeza se isso afeta em algo)
Mesmo vc tendo relsolvido esse problema eu sugiro vc verificar os ProviderFlags dos Fiels, pois este erro esta ligado a eles.


GOSTEI 0
Adriano Santos

Adriano Santos

22/05/2006

[quote:122fb81fa8=´Fabiano Góes´]Opá, Galsera não sei se estou fazendo da maneira correta, mais assim resolveu:

begin
  ClientDataSet.ApplyUpdates(0);
  ClientDataSet.Close;
  ClientDataSet.Open;
end;



se esta não é a maneira correta de atualizar os dados, por favor me corrijam !!!![/quote:122fb81fa8]

O certo mesmo é isso:


begin
  ClientDataSet.Post;
  ClientDataSet.ApplyUpdates(0);
  SqlConnection.CloseDataSets;
end;



Use isso [color=red:122fb81fa8][b:122fb81fa8]SqlConnection.CloseDataSets;[/b:122fb81fa8][/color:122fb81fa8] pra fechar os DataSets. E não fecha totalmente, apenas limpa os resultados.


GOSTEI 0
Paullsoftware

Paullsoftware

22/05/2006

[quote:780e2386b6=´Adriano Santos´]
begin
  ClientDataSet.Post;
  ClientDataSet.ApplyUpdates(0);
  SqlConnection.CloseDataSets;
end;



Use isso [color=red:780e2386b6][b:780e2386b6]SqlConnection.CloseDataSets;[/b:780e2386b6][/color:780e2386b6] pra fechar os DataSets. E não fecha totalmente, apenas limpa os resultados.[/quote:780e2386b6]

mais se esse projeto for em multicamadas, não tenho acesso direto ao SqlConnection e sim aos providers, como devo proceder nesses casos? é que estou estudando MultiCamdas, então não posso fazer assim ou posso? :roll:


GOSTEI 0
Adriano Santos

Adriano Santos

22/05/2006

Use isso [color=red:31b045e2bd][b:31b045e2bd]SqlConnection.CloseDataSets;[/b:31b045e2bd][/color:31b045e2bd] pra fechar os DataSets. E não fecha totalmente, apenas limpa os resultados.


mais se esse projeto for em multicamadas, não tenho acesso direto ao SqlConnection e sim aos providers, como devo proceder nesses casos? é que estou estudando MultiCamdas, então não posso fazer assim ou posso? :roll:


Mult-Camadas, ahhh, a história é outra. Não manjo muito de N-tier, mas acredito que tenha mesmo que usar a solução com Close e Open, do modo como está acima, sem usar o que mencionei. Vc tem razão.


GOSTEI 0
Paullsoftware

Paullsoftware

22/05/2006

encontrei algumas respostas para as minhas dúvidas aqui:

http://forum.clubedelphi.net/viewtopic.php?t=75421&highlight=dbexpress+iniciante
http://forum.clubedelphi.net/viewtopic.php?t=58547


GOSTEI 0
Adriano Santos

Adriano Santos

22/05/2006

encontrei algumas respostas para as minhas dúvidas aqui: http://forum.clubedelphi.net/viewtopic.php?t=75421&highlight=dbexpress+iniciante http://forum.clubedelphi.net/viewtopic.php?t=58547


É isso ai cara, cola na do Vinicius2k pq ele manja pra caramba, tinha visto estes tópicos já e os tenho no meu del.icio.us.


:wink:


GOSTEI 0
Fabiano Góes

Fabiano Góes

22/05/2006

Valeu ai galera pelas dicas !!!!!
no meu caso não é multicamadas, então a dica do Adriano se encaixa perfeitamente.

Valeu adriano mais uma vez !!!!!


GOSTEI 0
Adriano Santos

Adriano Santos

22/05/2006

[quote:69f733bc8b=´Fabiano Góes´]Valeu ai galera pelas dicas !!!!!
no meu caso não é multicamadas, então a dica do Adriano se encaixa perfeitamente.

Valeu adriano mais uma vez !!!!![/quote:69f733bc8b]

Só uma última informação. Não utilize o SqlQuery, ele foi concebido apenas para facilitar a migração de sistemas, não deve ser usado. Use o SqlDataSet mesmo.


GOSTEI 0
POSTAR