Dúvidas ORDSCOPE e Indices Temporário
Enviado: 03 Nov 2013 11:35
Amiguinhos,
Tenho um cadastro de pedido onde pude perceber a situação que irei descrever abaixo em um resumido código . Não sei é correto mudar a ordem DBSETORDER de um alias filtrado com ORDSCOPE
Em minhas pesquisas sobre ORDSCOPE encontrei uma nova situação pra mim, que é o uso se índices temporários na memória. Alguém usa? Pode compartilhar suas experiências? Vale a pena em quais circunstâncias?
Estou usando xHarbour 1.2.1 + BCC 5.8 + DBFCDX.
Sds,
Júlio
Tenho um cadastro de pedido onde pude perceber a situação que irei descrever abaixo em um resumido código . Não sei é correto mudar a ordem DBSETORDER de um alias filtrado com ORDSCOPE
Em minhas pesquisas sobre ORDSCOPE encontrei uma nova situação pra mim, que é o uso se índices temporários na memória. Alguém usa? Pode compartilhar suas experiências? Vale a pena em quais circunstâncias?
Estou usando xHarbour 1.2.1 + BCC 5.8 + DBFCDX.
Código: Selecionar todos
INDEX ON ;
TAG TO ;
FOR ;
WHILE ;
NEXT | RECORD | REST | ALL ;
UNIQUE ;
ASCENDING | DESCENDING ;
EVAL EVERY ;
USECURRENT ;
ADDITIVE ;
CUSTOM ;
NOOPTIMIZE;
TEMPORARYCódigo: Selecionar todos
sele AL_ITPED // Faço chamado do arquivo de itens de pedidos.
DBSETORDER(1) // Indice (Código da Carga + Número do Pedido)
ORDSCOPE(0,v_carga+v_Pedido) // Parâmetro para filtro
ORDSCOPE(1,v_carga+v_pedido) // Parâmetro para filtro
DBGOTOP()
TBROWSEDB()
....
// Incluir itens
sele AL_ITPED // Faço chamada do arquivo de itens de pedidos.
DBSETORDER(2) // Indice (Código da Carga + Número do Pedido + Código do Item)
// Neste ponto é que estou com dúvida, posso mudar a ordem usado em um arquivo filtrado com ORDSCOPE()
// Já faço isso e nunca tive problemas, todavia estou tendo problemas com atualização de índices e estou desconfiando de tudo, até troquei o servidor para ver se resolvia, coisa que não aconteceu.
// Como muitos usuários fazem o cadastro ao mesmo tempo de pedidos diferentes e o volume de dados é "grande", revisando a rotina pela milésima vez, pensei nesta situação que até então
// não havia parado para pensar a respeito.
if DBSEEK(v_carga+v_pedido+v_item)
MENSAGEM("Item já cadastrado!")
else
// Faço o cadastro
end
// Retorna ao TBROWSER
Júlio