imprimir número sequencial

Delphi

12/03/2008

Boa tarde pessoal.Sou novo por aqui... :D

Bom, eu gostaria de uma ajuda, idéia, o que seja, tenho um problema assim:
Eu tenho um soft que fiz que ele imprimi um número em sequencia em uma impressora dessas de cupom, esses números antes de serem impressos ele são salvos em um BD ( firebird ), só para isso tenho o BD.Ou seja, eu guardo ele no bd e quando for para imprimir ele é pego no bd e impresso, depois adicionado + 1 para ser salvo no bd, e dpois imprimir novamente de novo.assim:
  BD <- 0
  Número 0 ---> Impresso no papel
  BD <- +1
  BD=1

Fiz desse jeito, mas teriam outros modos...
Agora o problema é que eu vou ter que usar duas impressoras, em duas máquinas diferentes, e eu quero colocar em rede as duas para que elas trabalhem juntas, porém é claro sem repetir o número, para agilizar nesses números sequÊncias ( são números de protocolação de documentos para advogados ), como eu posso fazer isso, pois tentei de vários modos e as vezes acaba repetindo, se alguém ouder me ajudar...


Obrigado! :D


Fabiorubim

Fabiorubim

Curtidas 0

Respostas

Edilcimar

Edilcimar

12/03/2008

use um campo autoincremento como chave primária


GOSTEI 0
Fabiorubim

Fabiorubim

12/03/2008

Mas e se os dois software lerem ao mesmo tempo o número do último registro, ai eles irão imprimir o mesmo número....como posso barrar isso....


GOSTEI 0
Edilcimar

Edilcimar

12/03/2008

se fizer do jeito que disse não haverá duplicidade de número


GOSTEI 0
Paulo

Paulo

12/03/2008

Vejo que o seu problema não é gerar o número, mas sim, imprimir e duas impressoras, numeros distintos. É complicado, pois a fonte de impressão é a mesma, ou seja, a mesma tabela do BD e se você der um while e print, vão imprimir as mesmas coisas. O certo seria tentar pegar o IP de cada máquina onde está a impressora e selecionar por Impar ou Par o numero do registro. Posso até tá viajando, mas foi o que me veio agora na mente, se é que eu entendi bem. Se for IP = 10, dá um [color=red:1c8bd2e773]ODD[/color:1c8bd2e773], se não um [color=red:1c8bd2e773]NOT ODD[/color:1c8bd2e773]. Se não for isso, me desculpe, mas entendi mal. T+


GOSTEI 0
Macario

Macario

12/03/2008

Olá.

Voce devera usar controle transacional.

8)


GOSTEI 0
Fabiorubim

Fabiorubim

12/03/2008

Então Edilcimar, haverá sim, pq é na impressão o problema, como o Paulo falow.A idéia que o Paulo deu é interessante, vou pesquisar sobre controle transacional como o Macario disse, mas se for o que eui estou pensando a idéia do Paulo vai ajudar.

Obrigado pessoal.


GOSTEI 0
Edilcimar

Edilcimar

12/03/2008

O que o paulo falou, só serve se tiver 2 computadores, se tiver 3 ou mais já não dá.
Se vc pegar um computador, fizer um incremento e neste exato instante pegar este número, mesmo que outro usuário venha a fazer a mesma coisa ele já será para este outro usuário um outro número


GOSTEI 0
POSTAR