[firebase-br] Registros duplicados e Demora para Incrementar....

Alcistemas Informática alcistemas em yahoo.com.br
Ter Dez 20 20:23:45 -03 2005


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 ?






Mais detalhes sobre a lista de discussão lista