Ver Mensaje Individual
  #1  
Antiguo 27-10-2006
lalomon lalomon is offline
Miembro
 
Registrado: nov 2005
Posts: 10
Reputación: 0
lalomon Va por buen camino
comprobar valor en base de datos

hola amigos del club delphi , una vez mas recurro a ustedes en busca de consejo, ya que me han salvado en varias ocaciones.
tenog el siguiente problema o duda :S
estoy desarrollando un sistema de ventas y necesito enumerar con un valor unico cada venta que se realiza, este codigo debe ser generado por el propio sistema y no debe existir en la base de datos(bueno el mismo insert se encarga de validar eso ya que es PK de la tabla ventas). para validar que no este en la base de datos, lo que estoy haciendo en este momento es recorrer la tabla de ventas, que la saco con un ADODataSet, y comparo el codigo de la venta con cada uno de los existentes, si es igual a alguno lo aumento en 1 para obtener un nuevo valor, la primera venta es identificada con un 1 y saco el count de la tabla, y le sumo 1 para definir el siguiente codigo de venta(asi minimizo la posibilidad de que ya exista el codigo), el gran PERO es que cuando la cantidad de ventas llegue a un numero demasiado grande el ciclo while sera muy pesado, para solucionar esto pense en generar otro ADODataSet que realice un select a la tabla venta con el codigo que genere ("select * from venta where codigoVenta='valorGeneradoPorMiSistema'") y si el resultado es nil entonces asigno el codigo generado, pero esto = es muy costoso (muchas consultas si el codigo esta repetido), por esto queria ver si alguien tiene alguna idea para solucionar este problema, a pasado por mi mente realizar un random y seguir con lo propuesto antes, pero = cabe la posibilidad de hacer mas consultas de las necesarias.
estoy trabajando con MySQL 4.

weno esa es mi duda, cualquier sugerencia se agradece ^^.

att

lalomon
Responder Con Cita