ajuda com gravação em tabela
ola pessoal, estou com um grande problema , não sei se e erro meu ou algum bug do delphi, estou usando o 2010,
o problema e o seguinte :
tenho uma tabela , que tem um campo chamado gravado, inclui este campo agora depois de muito tempo de uso da tabela, tabela esta que esta com quase 15000 registros.
ate ai tudo obem, mas o meu problema e que tenho que gravar a palavra SIM neste campo chamado GRAVADO , ate ai tudo facil, mas quando clico no botao para realizar o serviço ele começa mas trava no inicio apos alguns registros atualizado.
o form fica todo branco. o compuitador trava.
nao sei mais o que fazer
uso firebird 2.5
minha rotina e assim
WHILE NOT CDS_DADOS.EOF DO
BEGIN
CDS_DADOS.EDIT;
CDS_DADOSGRAVADO.AsString:= 'SIM';
CDS_DADOS.POST;
APPLYUPDATE(0);
CDS_DADOS.NEXT;
END
sera que estou fazendo o processo errado, mas nao tem como e muito simples
e so o processo iniciar e o form fica todo branco , o ocomputador nao responde
pensei em comitar somentet depois de gravar no ultimo registro, talves resolva
se alguem ja teve este problema me ajude
pois não erntendi, não era pra dar problema, o negocio e simples demais
obrigado
o problema e o seguinte :
tenho uma tabela , que tem um campo chamado gravado, inclui este campo agora depois de muito tempo de uso da tabela, tabela esta que esta com quase 15000 registros.
ate ai tudo obem, mas o meu problema e que tenho que gravar a palavra SIM neste campo chamado GRAVADO , ate ai tudo facil, mas quando clico no botao para realizar o serviço ele começa mas trava no inicio apos alguns registros atualizado.
o form fica todo branco. o compuitador trava.
nao sei mais o que fazer
uso firebird 2.5
minha rotina e assim
WHILE NOT CDS_DADOS.EOF DO
BEGIN
CDS_DADOS.EDIT;
CDS_DADOSGRAVADO.AsString:= 'SIM';
CDS_DADOS.POST;
APPLYUPDATE(0);
CDS_DADOS.NEXT;
END
sera que estou fazendo o processo errado, mas nao tem como e muito simples
e so o processo iniciar e o form fica todo branco , o ocomputador nao responde
pensei em comitar somentet depois de gravar no ultimo registro, talves resolva
se alguem ja teve este problema me ajude
pois não erntendi, não era pra dar problema, o negocio e simples demais
obrigado
Edson Melo
Curtidas 0
Respostas
Joel Rodrigues
25/10/2012
O ApplyUpdate não precisaria ser chamado somente após a alteração de todos os registros? Assim todas as alterações seriam persistidas de uma vez, não uma a uma.
GOSTEI 0
Alisson Santos
25/10/2012
O ideal é usar o trt finally aonde depois de toda a operação você fã o applyuldate, pois a demora e por estar comitando um a um.
GOSTEI 0
Alisson Santos
25/10/2012
O ideal é usar o trt finally aonde depois de toda a operação você fã o applyuldate, pois a demora e por estar comitando um a um.
GOSTEI 0
Claudia Nogueira
25/10/2012
O ideal mesmo, já que é pra tudo ficar como 'SIM' e deu a entender que esse campo só começará ser usado a partir de agora, é rodar direto um update no banco de dados.
UPDATE TABELA SET GRAVADO = 'SIM'
GOSTEI 0
Edson Melo
25/10/2012
alisom tambem acho, como sao muitos registros 15000, se eu ficar comitando como se diz um a um , o sistema se perde e trava, deixando o form todo branco. que e o sinal que o sistema travou.
tentei tambem fazer o seguinte para ver se resolve
CDS_TABELA.DisableControls
para que o sistema desabilitase a parte visual, melhorando assim a performa se mas mesmo assim nao funcionou.
este e um problema que viar e mexe me acontece e gostaria de saber como contonar, para que no futuro saiba resolver.
a so para te informar alison, este problema e do post que quero converter um arquivo do acess para firebird, consegui converter manualmente mas tive que incluir este novo campo, ja resolvi, gravei de 1000 em mil registros, como a quantidade era peauena não dava o erro. mas como te disse preciso saber o que pode estar acontecendo para se acontecer novamente eu consiga resolver ou melhor ainda fazer o uso dos comandos corretamente para que isso nao aconteca
tentei tambem fazer o seguinte para ver se resolve
CDS_TABELA.DisableControls
para que o sistema desabilitase a parte visual, melhorando assim a performa se mas mesmo assim nao funcionou.
este e um problema que viar e mexe me acontece e gostaria de saber como contonar, para que no futuro saiba resolver.
a so para te informar alison, este problema e do post que quero converter um arquivo do acess para firebird, consegui converter manualmente mas tive que incluir este novo campo, ja resolvi, gravei de 1000 em mil registros, como a quantidade era peauena não dava o erro. mas como te disse preciso saber o que pode estar acontecendo para se acontecer novamente eu consiga resolver ou melhor ainda fazer o uso dos comandos corretamente para que isso nao aconteca
GOSTEI 0
Edson Melo
25/10/2012
ola minha amiga claudia, se assim posso dizer, e realmente este campo comeca a ser usado apartir de agora mas os 15000 registros ja inseridos terao de ter esta informacao, por isso tenho que realizar esta operacao em tosos os regiostros antigos, os novos ja serao gravados com este conteudo.
so me del uma duvida geralmente uso o seguinte processo para gravacao emn meus arquivos
CDS_DADOS.APPEND;
CDS_DADOSGRAVADO.AsString:= 'SIM';
CDS_DADOS.POST;
APPLYUPDATE(0);
NAO SE3I COMO utilizar este seu exemplo, se puder me exclareca com um exemplo
atenciosamente
edson garcia de melo
so me del uma duvida geralmente uso o seguinte processo para gravacao emn meus arquivos
CDS_DADOS.APPEND;
CDS_DADOSGRAVADO.AsString:= 'SIM';
CDS_DADOS.POST;
APPLYUPDATE(0);
NAO SE3I COMO utilizar este seu exemplo, se puder me exclareca com um exemplo
atenciosamente
edson garcia de melo
GOSTEI 0
Edson Melo
25/10/2012
ola joel segundo sua resposta
O ApplyUpdate não precisaria ser chamado somente após a alteração de todos os registros? Assim todas as alterações seriam persistidas de uma vez, não uma a uma
R= O ApplyUpdate não precisaria ser chamado somente após a alteração de todos os registros?, esta confuso pois aqui voce informa que nao preciso usart o applyupdate apos fazer todas as edicoes.
pensei neste caso para ver se conseguia ganhar performase na gravacao, ou seja so gravaria fisicamene apos o ultimo registro ser inserido em memoria
R= não uma a uma. Este e o processo usado no modo original colocado no botao do meu sistema
mas travava mesmo assim.
agradeco pelo resposta e boa vontade em me exclarecer
O ApplyUpdate não precisaria ser chamado somente após a alteração de todos os registros? Assim todas as alterações seriam persistidas de uma vez, não uma a uma
R= O ApplyUpdate não precisaria ser chamado somente após a alteração de todos os registros?, esta confuso pois aqui voce informa que nao preciso usart o applyupdate apos fazer todas as edicoes.
pensei neste caso para ver se conseguia ganhar performase na gravacao, ou seja so gravaria fisicamene apos o ultimo registro ser inserido em memoria
R= não uma a uma. Este e o processo usado no modo original colocado no botao do meu sistema
mas travava mesmo assim.
agradeco pelo resposta e boa vontade em me exclarecer
GOSTEI 0
Edson Melo
25/10/2012
alison, na sua mensagem me questiona sobre o caso da demora do processo. nao e isso o meu objetivo, minha duvida e porque o sistema trava, apos iniciar o processo. nao tenho a minima duvida sobre os comandos usados, o processo e facil demais, nao entendi o porque do travamento e a minha duvida seria que (o sistema trava por motivo do grande numero de registros, ou de eu estar comitando de um em um registro)
entendeu
entendeu
GOSTEI 0
Claudia Nogueira
25/10/2012
Edson é só abrir o programa que você usa pra administrar o banco de dados, eu uso o ibexpert, aí é só copiar o comando na opção Tools>SQLEditor e clicar em Execute(F9) e depois dar um Commit(Ctrl+Alt+C). O commit é o botão vermelho.
UPDATE TABELA SET GRAVADO = 'SIM'
GOSTEI 0
Edson Melo
25/10/2012
obrigado claudia , tambem uso o ibexpert , vou tentar executar sua sugestao, me desculpe a demora em responder, e que nao tenho internet e so acesso quando vou a lan house.
mas se puder me ajudar mais uma vez tenho um outro post que e muito inportante e sobre backup e ibexpert, estou tendo problema serios.
ate breve
mas se puder me ajudar mais uma vez tenho um outro post que e muito inportante e sobre backup e ibexpert, estou tendo problema serios.
ate breve
GOSTEI 0