Fórum FieldCount do SQLQuery #375836
09/10/2009
0
Pessoal, conto novamente com a ajuda de você. Tenho una TDataModule, e no AfterOpen de um TSQLQuery faço uma rotina que utilizao FieldCount.
Ele retorna 11 no FieldCount.
Porém, depois se tendo dar um FieldCount neste TSQLQuery ele retorna 0. Porque será?
Uso SQL Server + DBExpress + ClientDataSet
[]s
Marlon
Ele retorna 11 no FieldCount.
Porém, depois se tendo dar um FieldCount neste TSQLQuery ele retorna 0. Porque será?
Uso SQL Server + DBExpress + ClientDataSet
[]s
Marlon
Et.vinny
Curtir tópico
+ 0
Responder
Posts
10/10/2009
Steve_narancic
Se você está usando ClientDataset, você deve usar o FieldCount no [b:61c5c9ac02]Clientdataset[/b:61c5c9ac02], pois o clientdataset carrega os dados em memória e fecha o TSQLQuery...
Responder
Gostei + 0
10/10/2009
Et.vinny
Ok, entendi pq acontece isto.
Porém um coisa que ainda não consegui entender é:
Uso SQL com campo identity, e tenho um cadastro mestre-detalhe.
Para eu conseguir salvar vários detalhes antes do mestre estar salvo, vou dando somente Post no ClientDataSet. Mas para ter vários valores iguais na PK que eu não conheç, pois são identity, eu coloco ProviderFlags como:
O primeiro registro salva sem problemas. Porém o segundo não. Dá erro de [b:bda7dc2d9e]´Key Violation´[/b:bda7dc2d9e].
Porém o problema é que depois de fazer ApplyUpdate, tenho que colocar os ProviderFlgas para essa configuração:
E agora não tenho a minima ideia aonde está o problema.
[]s,
Marlon
Porém um coisa que ainda não consegui entender é:
Uso SQL com campo identity, e tenho um cadastro mestre-detalhe.
Para eu conseguir salvar vários detalhes antes do mestre estar salvo, vou dando somente Post no ClientDataSet. Mas para ter vários valores iguais na PK que eu não conheç, pois são identity, eu coloco ProviderFlags como:
ClientDataSet.Fields[_rintFieldCount].ProviderFlags := [];
O primeiro registro salva sem problemas. Porém o segundo não. Dá erro de [b:bda7dc2d9e]´Key Violation´[/b:bda7dc2d9e].
Porém o problema é que depois de fazer ApplyUpdate, tenho que colocar os ProviderFlgas para essa configuração:
ClientDataSet.Fields[_rintFieldCount].ProviderFlags := [pfInUpdate, pfInWhere, pfInKey];
E agora não tenho a minima ideia aonde está o problema.
[]s,
Marlon
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)