Fórum Chaver primária com campo datetime #323898
21/06/2006
0
Gostaria de passar a todos colegas do forum um relato acerca de um problema que tive ontem.
Utilizo D7 com banco de dados firebird 1.5 e tenho uma tabela no meu banco de dados que possui dois campos datetime sendo que um deles era utilizado como chave primária juntamente com outro campo do tipo varchar.
Ocorre que enquanto eu usava o driver dbexpress nativo para firebird 1.5 (UIB) a tela que fazia a manutenção desta tabela funcionava normalmente, mas fiz algumas mudanças no sistema onde passei a utilizar o driver nativo da Borland para Interbase e a tela passou a não funcionar mais quando se fazia um ApplyUpdates no ClientDataSet apresentando a mensagem ´Record not found or changed by another user´.
Procurando pelo assunto aqui no forum apliquei todas as soluções apresentadas pelos colegas mas não resolveu o problema, verifiquei o ProviderFlags dos campos chave no SqlDataSet (pfinKey=True) e também o UpdateMode do DataSetProvider (upWhereKeyOnly).
Sendo assim desconfiei de algum tipo de incompatibilidade do tipo de dado datetime sendo utilizado como chave primária e acabei criando um outro campo na tabela (NRSEQ Integer NOT NULL) cujo passei a utilizar com o outro campo varchar como chave primária da tabela. Para minha surpresa a partir desta mudança a tela passou a funcionar normalmente, claro que tive que mudar a programação para gerar o nº de seqüência subseqüente a cada novo registro mas as atualizações (applyupdates) que antes não estavam sendo feitas passaram a ser executadas normalmente.
Portanto resolvi descrever este relato por achar de grande importância para o caso de algum colega ter este tipo de problema.
Fiquem a vontade para fazerem seus comentários.
Cordialmente,
Utilizo D7 com banco de dados firebird 1.5 e tenho uma tabela no meu banco de dados que possui dois campos datetime sendo que um deles era utilizado como chave primária juntamente com outro campo do tipo varchar.
Ocorre que enquanto eu usava o driver dbexpress nativo para firebird 1.5 (UIB) a tela que fazia a manutenção desta tabela funcionava normalmente, mas fiz algumas mudanças no sistema onde passei a utilizar o driver nativo da Borland para Interbase e a tela passou a não funcionar mais quando se fazia um ApplyUpdates no ClientDataSet apresentando a mensagem ´Record not found or changed by another user´.
Procurando pelo assunto aqui no forum apliquei todas as soluções apresentadas pelos colegas mas não resolveu o problema, verifiquei o ProviderFlags dos campos chave no SqlDataSet (pfinKey=True) e também o UpdateMode do DataSetProvider (upWhereKeyOnly).
Sendo assim desconfiei de algum tipo de incompatibilidade do tipo de dado datetime sendo utilizado como chave primária e acabei criando um outro campo na tabela (NRSEQ Integer NOT NULL) cujo passei a utilizar com o outro campo varchar como chave primária da tabela. Para minha surpresa a partir desta mudança a tela passou a funcionar normalmente, claro que tive que mudar a programação para gerar o nº de seqüência subseqüente a cada novo registro mas as atualizações (applyupdates) que antes não estavam sendo feitas passaram a ser executadas normalmente.
Portanto resolvi descrever este relato por achar de grande importância para o caso de algum colega ter este tipo de problema.
Fiquem a vontade para fazerem seus comentários.
Cordialmente,
Andreaskaquino
Curtir tópico
+ 0
Responder
Posts
22/06/2006
Daniel Martins
Baum.... se resorveu, entaum ta resorvido...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)