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


Et.vinny

Et.vinny

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:


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

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

Aceitar