Ir al contenido


Foto

Combprobar Numero unico no autoincrementable


  • Por favor identifícate para responder
9 respuestas en este tema

#1 FGarcia

FGarcia

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 687 mensajes
  • LocationMéxico

Escrito 03 julio 2009 - 01:03

Hola!!
Tengo esta duda: Como verifico que el numero (cbcodigo) que voy a ingresar a la BD es UNICO, es decir que no existe en la BD. Este numero no es autoincrementable. Ando con los cables cruzados y no me ubico.

Se que debo hacer una consulta (query)

SELECT ElNumeroMasAlto(cbCodigo) From TABLA .......

ando perdido... :huh:

unas neuronas de ayuda se agradecen!


  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 03 julio 2009 - 01:16

Lo mejor es usar números GUID.



delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3.   NumeroUnico: string;
  4.   GUIDTemp: TGUID;
  5. begin
  6.   if CoCreateGUID(GUIDTemp) = S_OK then begin
  7.     NumeroUnico := GUIDToString(GUIDTemp);
  8.     ShowMessage(NumeroUnico);
  9.   end
  10.   else ShowMessage('Error al crear número único');
  11. end;



Salud OS
  • 0

#3 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 03 julio 2009 - 01:36

Por lo visto lo que necesitas es saber cual es proximo numero luego del que tienes, yo haria esto:



sql
  1. SELECT MAX(Campo) + 1 AS Maximo FROM tabla




PD: Eliseo no conocia esa función
  • 0

#4 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 03 julio 2009 - 01:52

Por lo visto lo que necesitas es saber cual es proximo numero luego del que tienes, yo haria esto:



sql
  1. SELECT MAX(Campo) + 1 AS Maximo FROM tabla




PD: Eliseo no conocia esa función


No precisamente, él quiere introducir un número pero no precisamente el siguiente del último guardado... al menos así­ lo comprendí­ yo...

Porqué no hacer una búsqueda simple ?



sql
  1. SELECT campo FROM tabla
  2. WHERE campo = numero_buscado



si el RecordCount del query es mayor que 0 entonces significa que el número introducido ha sido encontrado...

Saludos  :D

  • 0

#5 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 03 julio 2009 - 01:57

Secundo a Fena (y)

Saludos.
  • 0

#6 FGarcia

FGarcia

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 687 mensajes
  • LocationMéxico

Escrito 03 julio 2009 - 01:59

Por lo visto lo que necesitas es saber cual es proximo numero luego del que tienes, yo haria esto:



sql
  1. SELECT MAX(Campo) + 1 AS Maximo FROM tabla




PD: Eliseo no conocia esa función


Anda!! que eso es lo que quiero!!

perdon por no haber sido mas explicito pero como les digo ando con los cables cruzados y no se ni que...¿Sera que es Viernes y fue quincena?
  • 0

#7 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 03 julio 2009 - 02:00

Yo tambien pensaba lo mismo hasta que detalle la consulta que escribio: "El número mas alto"



pd: Cuerda de montoneros  :undecided:
  • 0

#8 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 mensajes
  • LocationPinar del Río, Cuba

Escrito 03 julio 2009 - 02:33

Y que tipo de BD usas?

Podrias buscar la propiedad del campo para que no permita duplicados
Por ejemplo: Access lo tiene definido, en la propiedad Indexado poner Si (Sin Duplicados), y ya no tienes que hacer nada mas

En otros Sistemas de BD, deben tener esa propiedad tambien


  • 0

#9 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 03 julio 2009 - 02:36

Pues que simples me saliero hoy  :p

Yo me fui por esto

Como verifico que el numero (cbcodigo) que voy a ingresar a la BD es UNICO, es decir que no existe en la BD. Este numero no es autoincrementable.



Los GUID pues son únicos y sin tener que hacer una consulta adicional a tu base :p

Salud OS
  • 0

#10 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 03 julio 2009 - 02:51

Pues que simples me saliero hoy  :p

....


Pues es que ya es viernes, ya me compliqué demasiado toda la semana  :p

Saludos
  • 0




IP.Board spam blocked by CleanTalk.