[firebase-br] OBRIGADO EDUARDO!!!! - Registros duplicados e Demora para Incrementar....
Alcistemas Informática
alcistemas em yahoo.com.br
Qua Dez 21 09:50:59 -03 2005
Muitissimo obrigado!
valeu mesmo.
Deu Certo!
----- Original Message -----
From: "eduardo" <eduardo em icontroller.com.br>
To: <lista em firebase.com.br>
Sent: Wednesday, December 21, 2005 2:23 AM
Subject: Re: [firebase-br] Registros duplicados e Demora para
Incrementar....
> Olá
>
> A única maneira segura de se obter números únicos é através de generators.
> Se vc já usou e "nada". Revise sua lógica, generators são extremamente
> seguros e rápidos.
>
> Experimente fazer assim:
>
> 1. Crie o Generator e atribua seu valor para começar
>
> CREATE GENERATOR PEDIDOVENDAS
>
> SET GENERATOR PEDIDOVENDAS TO (SELECT MAX(NM) AS GERAL FROM PEDIDOVENDAS')
>
> 2. Obtenha o valor incrementado quando necessário
> Dm.Qy_033.Close;
> Dm.Qy_033.SQL.Clear;
> Dm.Qy_033.SQL.Add('SELECT GEN_ID(PEDIDO_VENDAS,1) FROM RDB$DATABASE');
> Dm.Qy_033.Open;
>
> Observe que GEN_ID(PEDIDO_VENDAS,1) traz o valor já incrementado.
> Se vc quiser saber o valor sem incrementar, utilize
> GEN_ID(PEDIDO_VENDAS,0)
>
> Aposto um fusca que vc vai dormir tranqüilo daqui para frente :-)
>
> []s Eduardo
>
> Alcistemas Informática wrote:
>> Prezados amigos, estou com o seguinte problema:
>>
>> uso firebird 1.5, componentes de acesso da paleta Interbase do Delphi 7
>>
>> preciso gerar o proxímo número de pedidos, em uma base dados com 102.000
>> pedidos já gravados e uma média de 400.000 itens relacionados no total
>> tem uns 2000 clientes, o problema é:
>>
>> para gerar o número do proximo número do pedido faço assim:
>>
>>
>> Dm.Qy_033.Close;
>> Dm.Qy_033.SQL.Clear;
>> Dm.Qy_033.SQL.Add('SELECT MAX(NM) AS GERAL FROM PEDIDOVENDAS');
>> Dm.Qy_033.Open;
>>
>> if Dm.Qy_033.Fields[0].Text <> '' then
>> EditNm.Text :=
>> IntToStr(StrToInt(Dm.Qy_033.Fields[0].Value)+1)
>> else
>> EditNm.Text := '1';
>> end;
>>
>>
>> Tenho então 2 problemas:
>>
>>
>> 1) quando se tem um outro usuario fazendo o gravar no mesmo momento os
>> números de pedidos se repetem nas duas máquinas.
>>
>> 2) Quando o gravar é sozinho, mesmo sem ninguem gravando ao mesmo tempo a
>> demora é muito grande.
>>
>> as vezes da erro de DEADLOCK ?????
>>
>> Criei indice e nada, usei um Generator e nada também.... alguém poderia
>> me dar uma ajudinha ?
>>
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>> Para editar sua configuração na lista, use o endereço
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
_______________________________________________________
Yahoo! doce lar. Faça do Yahoo! sua homepage.
http://br.yahoo.com/homepageset.html
Mais detalhes sobre a lista de discussão lista