Sobre DbExpress não Grava
21/02/2006
0
e o seguinte estou com algumas duvida aqui no Dbexpress
ProviderFlags
pra o campo chave eu estou colocando assim
pfInUpdate = True
pfInWhere = True
pfInKey = True
e nos de mais assim
pfInUpdate = True
pfInWhere = False
pfInKey = False
so que não esta gravando
quando edito os registros
eu coloca esta configuração do ProviderFlags tanto no ClientDataSet e tbm no SqlDataSet
onde posso esta errando
por que não esta gravando
para não ficar duvida eu chamo o metodo ApplyUpdates(0);
Pro2
Posts
21/02/2006
Rod8
pfInWhere = True
eu uso assim e nao tenho problemas ... so coloco:
pfInWhere = False
pfInUpdate = false
quando é um campo q nao pertence a tabela que pretendo gravar.
21/02/2006
Martins
Está retornando algum erro ou simplesmente não grava?
vc está usando ClientDataSet e SqlDataset?
22/02/2006
Michael
Além de ligar/desligar os flags mencionados, vc tbm tem que configurar a propriedade UpdateMode do [b:45f1e4044c]DataSetProvider [/b:45f1e4044c]para [b:45f1e4044c]upWhereKeyOnly[/b:45f1e4044c]. Assim o componente irá montar os comandos SQL utilizando a chave-primária definida acima na cláusula WHERE.
A propriedade [b:45f1e4044c]ProviderFlags [/b:45f1e4044c]da classe [b:45f1e4044c]TField [/b:45f1e4044c]não serve exatamente para isso, mas sim para dizer como o DataSetProvider vai montar as instruções SQL de atualização da tabela no banco. Se vc deixar todos os campos configurados com [b:45f1e4044c]pfInWhere[/b:45f1e4044c], então a edição de um registro vai gerar algo assim:
Isso pode causar problemas em alterações do mesmo registro por usuários diferentes. Há uma vídeo aula no site do ClubeDelphi, produzida pelo meu amigo [b:45f1e4044c]Guinther Pauli[/b:45f1e4044c], que mostra como usar essas propriedades do [b:45f1e4044c]TField [/b:45f1e4044c]e do [b:45f1e4044c]TDataSetProvider[/b:45f1e4044c]. Quem for assinante ou tiver comprado a revista na banca pode acessá-la [url=https://www.devmedia.com.br/visualizacomponente.aspx?comp=548&site=3]neste link[/url].
[]´s
Clique aqui para fazer login e interagir na Comunidade :)