Fórum Duvida com dbExpress #321897
22/05/2006
0
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
Curtir tópico
+ 0Posts
22/05/2006
Mdm
Se não der certo poste novamente !
[]s
Gostei + 0
22/05/2006
Fabiano Góes
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
22/05/2006
Fabiano Góes
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
23/05/2006
Mdm
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
23/05/2006
Adriano Santos
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
23/05/2006
Paullsoftware
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
23/05/2006
Adriano Santos
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
23/05/2006
Paullsoftware
http://forum.clubedelphi.net/viewtopic.php?t=75421&highlight=dbexpress+iniciante
http://forum.clubedelphi.net/viewtopic.php?t=58547
Gostei + 0
23/05/2006
Adriano Santos
É 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
23/05/2006
Fabiano Góes
no meu caso não é multicamadas, então a dica do Adriano se encaixa perfeitamente.
Valeu adriano mais uma vez !!!!!
Gostei + 0
23/05/2006
Adriano Santos
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