Fórum Inserir dados em tabela Paradox em determinada posição #254099
12/10/2004
0
(1,3,6,7,8) e entro com un novo valor ´5´ ... Gostaria que minha tabela ficasse com o seguinte aspecto (1,3,5,6,7,8)..Entenderam???
Marco Salles
Curtir tópico
+ 0Posts
12/10/2004
Sonec2004
Nome do Campo é a coluna númérica que deve ser exibida em ordem crescente.
Ajudei??
Gostei + 0
12/10/2004
Marco Salles
eu nao quero exibir esta tabela em ordem..[b:134e5a9605]eu quero e gravar em ordem[/b:134e5a9605].. Como eu localizo a posição que eu vou gravar eu sei..Mas eu to com dificuldade e de gravar na posição que eu encontrei... A Procedure Insert ela adiciona um registro na tabela na posição escolhida, mas depois que dou um post para confirmar o dado inserido simplesmente o dado inserido rola para o fim da base de dados....Eu gostaria que este dado inserido ficasse na posição inserida previamente...
Obrigado
Gostei + 0
12/10/2004
Macario
Nos diga..para qual finalidade voce quer gravar desta maneira?
A nao ser que seja para algo..incomun....voce pode trabalhar com indices?
Gostei + 0
13/10/2004
Marco Salles
Nos diga..para qual finalidade voce quer gravar desta maneira?
A nao ser que seja para algo..incomun....voce pode trabalhar com indices?[/quote:35c0431a17]
Amigo ,explicar isto pode ser um pouco confuso, mas vou tentar....Acontece que em uma determinada Venda e em uma situação especial de promoção, o meu cliente resolve fazer uma liquidação do seu produto da seguinte Forma:::´COMPRE TRES E PAGUE DOIS...´ A regra para isto e que o Cliente levara sempre de Graça a peça de menor Valor..em cada grupo de tres produtos, DEVIDAMENTE AGRUPADOS PELO PREÇO, A Peça de menor valor e de [b:35c0431a17]graça[/b:35c0431a17]....Então o DESCONTO OBTIDO na compra Pode variar ´teoricamente´ no intervalo de [b:35c0431a17](0, 33.333333][/b:35c0431a17] ...e sendo é um desconto que varia em um intervalo , nada mais justo que o cliente acompanhe passo a passo esta variação do Desconto Obtido no momento da compra....Gostaria de fazer isto INSTANTANEAMENTE E NAO NO FIM DO PROCESSO...seria muito mais fácil para mim , calcular este desconto no FIM Da VENDA, mas acho que seria mais interresante Calcula-lo passo a passo...Para calcular este desconto instantaneamente acredito que na inserção dos dados devo coloca-los de maneira [b:35c0431a17]agrupados[/b:35c0431a17]. E Para agrupa-los preciso inserir os dados em uma determinada posição, ( como a procedure [b:35c0431a17]INSERT [/b:35c0431a17]Faz),so que quando confirmo com o [b:35c0431a17]POST[/b:35c0431a17], este mesmo dado ROLA para o fim da [b:35c0431a17]Base de Dados[/b:35c043
Gostei + 0
13/10/2004
Marco Salles
Gostei + 0
13/10/2004
Vinicius2k
Fisicamente um novo registro SEMPRE é adicionado ao final do arquivo de dados, não importa se vc utilizar .Append ou .Insert. A forma de exibição (ordenação) é que está atrelada à designação de um índice corrente ou via SQL (Order By).
O que vc pretende, sem utilizar algum dos dois recursos acima, é impossível.
T+
Gostei + 0
13/10/2004
Marco Salles
Os Testes Preliminares que eu Fiz, ate mesmo inserindo no Diretamente no Propio Banco, cheguei a esta conclusão...
A saida que eu encontrei foi reeditar registro por regitro, e ordenando-os atraves de Programação....Em outras palavras se eu tiver 5 registro em sequencia, por exemplo :
Registro 1 : Registro 1 : valor 20,00 Rs Registro 2 : valor 16,00 Rs Registro 3 : valor 12,00 Rs Registro 4 : valor 10,00 Rs Registro 5 : valor 8,00 Rs
Ao inserir un novo valor [b:30829e413f](Por exemplo : O Valor 15,00)[/b:30829e413f] , eu devo reeditar esses 5 registros e reenserir o ultimo..Ficando assim:
Registro 1 : valor 20,00 Rs inalterado Registro 2 : valor 16,00 Rs inalterado Registro 3 : valor 15,00 Rs Reeditado Registro 4 : valor 12,00 Rs Reeditado Registro 5 : valor 10,00 Rs Reeditado Registro 6 : valor 8,00 Rs Inserido
[b:30829e413f]Pode parecer estranho, ate mesmo o fato de reeditar registros torna o programa um pouco mais lento, sem parecer uma boa prática de programação [/b:30829e413f], mas para o que eu quero , parece resolver a questão..
podendo ate levar em conta que esta tabela e relacionada com uma outra e esses arranjos nesta tabela so serão efetuados uma unica vez e somente no relacionamento em questão....isto e , se estou numa determinada venda, somente os produtos desta vendas serão reagrupados...
Por que que eu estou batento nesta tecla :?: porque foi esta maneira que eu encontrei...como disse o Vinicius.2k
Eu particurlarmente nao entendi de qual recursos ele esta se referindo :oops:
Mas se no fritar dos ovos alguem entendeu o que quero e o que necessito e tem alguma colocação a fazer , por favor estejama vontade :D
Gostei + 0
13/10/2004
Vinicius2k
Os dois recursos aos quais eu me referi são : Indices ou SQL (Order By)...
No seu caso, o melhor é utilizar um índice secundário para a tabela...
Estou meio ´enferrujado´ com Paradox, mas se, me lembro bem, os passos a seguir são :
1. Abra a tabela em modo de reestruturação no Database Desktop.
2. Existe uma combo onde se seleciona ´Secondary Indexes´.
3. Click em ´Define´.
4. Selecione os campos (no seu caso o campo do valor) e click OK.
5. Salve a tabela.
6. Defina a propriedade IndexFieldNames do TTable para o índice que vc criou...
T+
Gostei + 0
16/10/2004
Sonec2004
A cada registro postado, um campo numérico é incrementado de 10 em 10.
Quando se pretende mudar o registro de posição ou inserir outro no meio, apenas o valor desse campo é modificado para um valor intermediário.
Registro 10 : valor 20,00 Rs Registro 20 : valor 16,00 Rs Registro 30 : valor 12,00 Rs Registro 40 : valor 10,00 Rs Registro 50 : valor 8,00 Rs
Com novo registro:
Registro 10 : valor 20,00 Rs inalterado Registro 20 : valor 16,00 Rs inalterado Registro 25 : valor 15,00 Rs Inserido Registro 30 : valor 12,00 Rs inalterado Registro 40 : valor 10,00 Rs inalterado Registro 50 : valor 8,00 Rs inalterado
Ajudei ???
Gostei + 0
17/10/2004
Aroldo Zanela
Para armazenar fisicamente registros serializados com Paradox se faz necessário o uso de tabela temporária, preferencialmente em memória (ver Memory Table da RxLib ou Jedi VCL), e criar uma rotina de cargar e descarga na tabela de persistência. Para o controle de inserção entre registros, a dica acima, muito utilizada antigamente por linguagens como Basic e Fortran, pela simplicidade, resolve o problema.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)