Página 1 de 1

Ajuda com UPdate Firebird

Enviado: 30 Jan 2023 13:42
por Poka
Boa tarde à todos


Uso firebird 2.5
para atualizar 17000 (dezessete mil reg) demora muitas horas
O firebird é lerdo assim? Ou existe outra maneira de escrever.

Código: Selecionar todos

"select count(*) , docum,codcli from receber where  gdb = 'D' and nfci = 'NF' group by 2,3 "

aqui pego todos os documento, sem problemas.

MSelect é a matriz retornada do select
percorro todos os documentos de Mselect

Código: Selecionar todos

for a:= 1 to len(mselect)
   "upDate receber set qp = '"+strzero(mselect[a,1],3) +"' where gdb||nfci||docum||codcli = '"+"GNF"+   
    mselect[a,2]+ mselect[a,3]+"' "
next
observação

qt, gdb, nfci, docum,codcli sao campos de controle na tabela receber
grava tudo certo mas demora um dia

É que vou passar um sistema do DBF para FB , e se juntar todas as tabelas vai 2 dias

será que tem um outro jeito de escrever esse update?


Poka

Ajuda com UPdate Firebird

Enviado: 30 Jan 2023 14:36
por JoséQuintas
Acho que desse jeito fica lento em qualquer banco SQL, porque está enviando trocentas queries individuais.

Talvez um update com inner join encima desse select, pra fazer de uma vez no servidor.
Não sei se o firebird aceita, mas teoricamente deveria aceitar.

Ajuda com UPdate Firebird

Enviado: 30 Jan 2023 21:23
por Poka
Obrigado Quintas, vou dar uma pesquisada.


Poka