Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-09-2003
jfloro jfloro is offline
Miembro
 
Registrado: may 2003
Posts: 17
Poder: 0
jfloro Va por buen camino
Ordenacion Tabla

Tengo una tabla para las referencias, cuya clave primaria es un campo cod.referencia de tipo caracter(tabla Paradox), si voy creando datos de la siguiente forma se ordenan asi:

IdReferencia----------La forma correcta sería esta:
---------------- ---------------------------------------
10/0------------------------------------> 10/0
10/00----------------------------------->10/00
10/1------------------------------------->10/1
10/2------------------------------------->10/2
100/0----------------------------------- >11/0
100/1----------------------------------- >11/1
100/2------------------------------------>100/0
11/0------------------------------------- >100/1
11/1------------------------------------- >100 /2

¿Cómo podría solucionar sin tener que definir una clave primaria compuesta por dos campos? (Un campo el q va delante de la '/' y el segundo la segunda parte)
Responder Con Cita
  #2  
Antiguo 03-09-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino
Hola:

En primer lugar debo decirte que no se debe postear un mismo mensaje en varios hilos, antes de ponerlo piensa bien dónde crees que encaja mejor. Si no me equivoco, esta misma pregunta la has colocado en el foro de SQL, y dos veces en el de OOP. Esto último supongo porque no te gustaba cómo quedaba redactada la primera vez. Para cambiar la redacción de un mensaje, dispones del botón Editar, justo debajo a la derecha del mismo.

De momento, te dejo este hilo abierto porque opino que es aquí donde encaja mejor (en SQL no queda mal tampoco pero creo que la solución no pasa por cambiar nada en la sentencia SQL sino en la forma de almacenar el campo). Tú mismo tienes también la opción de Borrar un mensaje que hayas colocado, por lo que te animo a borrar el resto de posts con el mismo asunto. Si no me equivoco -que algún otro moderador me corrija- si borras un post que aún no tiene respuestas, se borra todo el hilo.

Sobre lo que preguntas, creo que la solución pasa, si no deseas tener dos campos indexados, por almacenar esos códigos de referencia anteponiendo ceros a la izquierda, de forma que ese campo en todos los registros tenga el mismo nº de caracteres, ten en cuenta que es la única manera de que se ordene correctamente un campo string. Ya que trabajas en Paradox, esa corrección la puedes hacer en el evento BeforePost de la tabla en cuestión, o bien en los eventos OnValidate / OnSetText del campo. Pero si no quieres que te aparezcan los ceros delanteros al visualizar los códigos, tendrías que interceptar el evento OnGetText del campo y ahí apañar la cadena que visualizará el usuario.

Yo no desecharía la idea de tener dos campos indexados (de tipo Integer ambos), a la hora de mostrarlo en pantalla podrías crearte un campo calculado para la ocasión, donde colocarías la barra separadora "/". Lá única pega importante que le veo es si esos códigos van a actuar como clave foranea en otra tabla, personalmente opino que las claves foráneas deben ser de un único campo.

Un saludo
__________________
Guía de Estilo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 22:47:25.


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