Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-11-2010
El_Raso El_Raso is offline
Miembro
 
Registrado: oct 2003
Posts: 135
Poder: 21
El_Raso Va por buen camino
Question Campo clave unico en Dif. PC, Como?

Que tal a todos...

Estoy desarrollando una aplicacion en Delphi 2010 usando firebird 2.5 con los componentes FIBPlus 6.9.9 y quiero una idea de ustedes de hacer lo siguiente:

Tener una campo clave en una tabla independiente de todos los campos, ya que los datos se digitaran en diferentes laptop offline y luego se uniran en una DB.

He oido habla de un tipo de dato (que ahora no recuerdo el nombre) que son unos identificadores unico, lo he visto en delphi tienen un formato de numeros y letras mayusculas entre {}.

Una manito por favor.
Responder Con Cita
  #2  
Antiguo 06-11-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Son los identificadores globalmente únicos (GUIDs). En Delphi existen dos funciones que pueden servirte:

CreateGUID, para crear un nuevo GUID, y GUIDToString, para convertirlo a cadena de caracteres si fuese necesario. Ambas se encuentran en la unidad SysUtils.

Espero sea de utilidad, no dejes de comentarnos lo que hagas al respecto.

Saludos.

Al González.
Responder Con Cita
  #3  
Antiguo 06-11-2010
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
O también, si es tu preferencia y/o necesidad... puedes trabajar estos números únicos de identificación directamente desde Firebird con sus funciones GEN_UUID, CHAR_TO_UUID y UUID_TO_CHAR.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 06-11-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Por cierto, en la base de datos se guardan en un campo varchar(16) con el charset OCTETS.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #5  
Antiguo 07-11-2010
El_Raso El_Raso is offline
Miembro
 
Registrado: oct 2003
Posts: 135
Poder: 21
El_Raso Va por buen camino
Cita:
Empezado por guillotmarc Ver Mensaje
Por cierto, en la base de datos se guardan en un campo varchar(16) con el charset OCTETS.
Gracias muchachos por responder, una cosa mas, ustedes creen que es conveniente tener una llave primaria varchar(16), no pondra las consultas lentas? o se comportaría igual como los INTEGER?
y por ultimo yo acostumbro a usar el charset win1252 porque uso las Ñ y los acentos ese, como le puedo poner el charset solo al campo llave que comenta guillotmarc?

Le agradezco mucho su tiempo... un saludo.
Responder Con Cita
  #6  
Antiguo 08-11-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por El_Raso Ver Mensaje
...una cosa mas, ustedes creen que es conveniente tener una llave primaria varchar(16), no pondra las consultas lentas? o se comportaría igual como los INTEGER?
Por definición las claves alfanuméricas son "peores" que las numéricas; Tanto para búsquedas, ordenaciones,...
Pero hay que ver si esa pérdida es asumible si realmente lo necesitas. Tal vez para las operaciones y el volumen que tú necesitas no sea apreciable.

Tendrás que "evaluar" los pros y los contras.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 08-11-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Yo no creo que vayas a notar la diferencia a nivel de rendimiento. Total un entero son 4 bytes y estas claves son de 16 bytes, tampoco es que estés sobrecargando de mala manera el sistema.

Donde si vas a notar un gran cambio es en la comodidad de acceder a la base de datos. Y es que para lanzar consultas individuales no es lo mismo la comodidad de consultar el registro 24521 que consultar el registro e3aa1e81-0025-44ee-a83b-83a5a8929d3d

NOTA: Para poner el valor de la UUID en este formato hexadecimal, legible para nosotros, tienes que usar esas funciones CHAR_TO_UUID y UUID_TO_CHAR

Olvídate del rendimiento, eso es lo de menos.

Respecto a como definir un charset específico para unos determinados campos. Puedes definirte, por ejemplo, este dominio en la base de datos. Ahora cualquier campo que definas con este dominio, ya tendrá el tipo y charset adecuado.

Código SQL [-]
CREATE DOMAIN UUID AS VARCHAR(16) CHARACTER SET OCTETS;
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo volver los registros a cero de una tabla con autoincremento como campo clave? cesar_gta86 Varios 1 25-02-2009 06:54:08
campo unico duplicado seken Conexión con bases de datos 4 15-04-2005 21:28:45
Como copiar un registro cambiando el campo de clave primaria Javi2 SQL 2 17-09-2004 20:49:50
registros duplicados en campo unico fearlex Conexión con bases de datos 3 12-08-2004 18:34:15
Añadir la propiedad unico a un campo de Interbase mario_uria Firebird e Interbase 2 22-07-2003 11:08:48


La franja horaria es GMT +2. Ahora son las 11:12:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi