Sobre DbExpress não Grava

21/02/2006

0

E AI BLZ
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

Pro2

Responder

Posts

21/02/2006

Rod8

tente usar a flag nos demais campos:

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.


Responder

21/02/2006

Martins

tente usar a flag nos demais campos: 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.


Está retornando algum erro ou simplesmente não grava?

vc está usando ClientDataSet e SqlDataset?


Responder

22/02/2006

Michael

Olá!

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.

tente usar a flag nos demais campos: 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.


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:

UPDATE TABELA SET CAMPO1=:CAMPO1, CAMPO2=:CAMPO, ... [b:45f1e4044c]WHERE CAMPO1 = <VALOR_ANTIGO_DE_CAMPO1> AND CAMPO2 = <VALOR_ANTIGO_DE_CAMPO2>[/b:45f1e4044c]...


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


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar