[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