Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2012
kornamenta kornamenta is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 16
Poder: 0
kornamenta Va por buen camino
Campo de tabla con lista de datos

Hola quería saber si es posible crear una tabla la cual contenga un campo que pueda almacenar una lista de datos. Esto es para un programa que debo hacer en el cual se tengan los datos de un automotor: Nº de patente, Marca, Modelo y Modificaciones. Precisamente necesito que para este último campo Modificaciones se pueda ir editando a medida que se le realiza actualizaciones. Ejemplo:

QWE-123 - Fiat - 600 - Cambio de neumáticos
Chapa y pintura
Cambio de amortigüadores

Espero que se entienda lo que necesito. Que por ejemplo al ingresar el Nº de patente salgan los datos de la tabla y de alguna forma la lista de modificaciones. Espero que alguien sepa como hacerlo muchas gracias
Responder Con Cita
  #2  
Antiguo 10-11-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
kornamenta,

Cita:
Empezado por kornamenta Ver Mensaje
Hola quería saber si es posible crear una tabla la cual contenga un campo que pueda almacenar una lista de datos.
Revisa este link:
En el encontraras un ejemplo descargable de como gestionar una variable tipo Record en un campo Blob de una BD.

Espero sea útil

Nelson.
Responder Con Cita
  #3  
Antiguo 11-11-2012
kornamenta kornamenta is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 16
Poder: 0
kornamenta Va por buen camino
Hola, muchas gracias por el link. Sinceramente no entendí muy bien si pudieran explicármelo mas claramente se los agradecería, tengo conocimientos básicos en delphi..gracias de antemano.
Responder Con Cita
  #4  
Antiguo 12-11-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por kornamenta Ver Mensaje
Hola quería saber si es posible crear una tabla la cual contenga un campo que pueda almacenar una lista de datos. Esto es para un programa que debo hacer en el cual se tengan los datos de un automotor: Nº de patente, Marca, Modelo y Modificaciones. Precisamente necesito que para este último campo Modificaciones se pueda ir editando a medida que se le realiza actualizaciones. Ejemplo:

QWE-123 - Fiat - 600 - Cambio de neumáticos
Chapa y pintura
Cambio de amortigüadores

Espero que se entienda lo que necesito. Que por ejemplo al ingresar el Nº de patente salgan los datos de la tabla y de alguna forma la lista de modificaciones. Espero que alguien sepa como hacerlo muchas gracias
Tener un campo que almacene una lista de valores es un mal diseño en una base de datos. Lo que debes hacer es introducir una segunda tabla que almacene los cambios con una llave foránea que punte la primera tabla.

Por ejemplo, tu primera tabla podría tener estos campos:

automotor = (id, noPatente, marca, modelo) # id sería la llave primaria, un valor numérico autoincremental

y la segunda quedaría así:

cambios = (id, automotorId, cambio) # id llave primaria, automotorId llave foránea

Entonces, para el ejemplo que pones, tendrías un registro en la tabla automotor:

(354, "QWE-123", "Fiat", "600")

y tres registros en la tabla cambios (uno por cada cambio en el automotor correspondiente):

(574, 354, "Cambio de neumáticos")
(575, 354, "Chapa y pintura")
(576, 354, "Cambio de amortiguadores")

Los números de los IDs son inventados, pero lo importante es que el segundo campo de cambios (354 en el ejemplo) hace referencia a la llave primaria en automotor.

Cuando quieras recuperar la información simplemente haces una consulta SQL especificando el ID del automotor:

Código SQL [-]
select * from cambios
where automotorId = 354

// Saludos
Responder Con Cita
  #5  
Antiguo 12-11-2012
kornamenta kornamenta is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 16
Poder: 0
kornamenta Va por buen camino
Mil gracias roma!!! era eso lo que tenía pensado, ahora una duda:
si por ejem,plo ingreso un nuevo automotor en la primer tabla Ejemplo:
(354, "QWE-123", "Fiat", "600")
(355, "GDD-742", "Renault", "12")

En la segunda tabla podria quedar tranquilamente guardado así cierto?:
(574, 354, "Cambio de neumáticos")
(575, 354, "Chapa y pintura")
(576, 354, "Cambio de amortiguadores")
(577, 355, "Calibrado de frenos")
(578, 355, "Chapa y pintura")

Mi idea seria que al hacer click por ejemplo en un botón "Mostrar". En un DBMemo aparecieran todas las actualizaciones de un ingreso y al seleccionar otro ingreso salieran las actualizaciones del otro y así sucesivamente.

Voy a probar pero muchas gracias por responderme cualquier cosa te enviare un MP si no es molestia.
Responder Con Cita
  #6  
Antiguo 12-11-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Más que un DBMemo, te conviene usar dos dbgrid. Uno para la tabla automotor y otro para la tabla cambios. Los dataset que alimente a estos debgrids los enlazas mediante una relación maestro-detalle para que el segundo se actualice automáticamente conforme te desplazas por el primero.

Si tienes más dudas, ponlas aquí, no por mensajes privados.

// Saludos
Responder Con Cita
  #7  
Antiguo 12-11-2012
kornamenta kornamenta is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 16
Poder: 0
kornamenta Va por buen camino
Esto de no programar en delphi un par de años me dejó tonto!!!

Voy a precisar mas ayuda de la que creía, ya cree las dos tablas y establecí la relación maestro detalle pero sin embargo no me los relaciona, no se me actualiza en el segundo dbgrid. Perdón que pregunte tanto pero me olvide un montón
Imágenes Adjuntas
Tipo de Archivo: jpg Sin título.jpg (22,0 KB, 2 visitas)
Tipo de Archivo: jpg fdd.jpg (16,9 KB, 2 visitas)
Responder Con Cita
  #8  
Antiguo 12-11-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
kornamenta,

Puedes revisar estos libros:
Cita:
La Cara Oculta de Delphi 4 de Ian Marteens, disponible en este link : http://terawiki.clubdelphi.com/Delph...lphi_4.pdf.zip

Borland Delphi 6 Developer's Guide de Steve Teixeira y Xavier Pacheco.
En este link puedes encontrar una guía de BD en Delphi : http://delphi.about.com/od/database/...basecourse.htm

Para finalizar en el Club Delphi encontraras mucha información sobre el uso de BD, revisa este link: http://www.clubdelphi.com/foros/showthread.php?t=44763

Espero sea útil

Nelson.

Última edición por Casimiro Notevi fecha: 12-11-2012 a las 22:20:51.
Responder Con Cita
  #9  
Antiguo 14-11-2012
kornamenta kornamenta is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 16
Poder: 0
kornamenta Va por buen camino
Hola de nuevo, aquí sigo con el programa, les comento que no me estoy complicando demasiado ya que me piden algo simple. He colocado las dos tablas relacionadas en un Form con los respectivos formularios de registros, es decir que se puedan ingresar los Automóviles(Patente, Marca y Modelo) y otro formulario donde se pueden ingresar las modificaciones según el automovil que se elija(ID autoincrementable, Patente y Modificación).

Bien ahora el problema es que me gustaría agregarles condiciones, es decir que al agregar una modificación si la patente ingresada no coincide con ninguna de la tabla1 (automóviles) salga un mensaje "Patente inválida" y si la encuentra pues que realice el registro correctamente.


Espero que puedan ayudarme, son cosas simples pero que a pesar de leer varias guías, vídeos y temas en este mismo foro no consigo adaptarlo a lo que quiero. Uso tablas Paradox y no quiero utilizar SQL ni nada de eso gracias.



Quiero avanzar este proyecto de a pasos por lo tanto una vez que me ayuden a solucionar esto tengo otras dos consultas que las dejaré mas adelante. Muchísimas gracias nuevamente.

P/D: Si necesitan ver como tengo el Form, los códigos, etc. me avisan y se los paso.

P/D2: Por cierto también me gustaría saber como colocar un mensaje personalizado en lugar del que viene por defecto cuando se ingresa un nuevo registro en la base de datos y este es clave primaria repetida
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Llenar datos de un campo de una tabla en un combobox krewer Conexión con bases de datos 2 04-03-2012 05:27:19
Truncar campo de Tabla con Datos cargados??? ungrande87 Firebird e Interbase 16 28-02-2012 16:02:44
Enviar datos a una tabla igualando un campo odrack SQL 8 19-02-2008 18:47:56
Actualizar un campo de una tabla con datos que se encuentran en otra tabla Morphine SQL 4 15-12-2006 23:47:42
Ingreso de datos en campo de tabla? marceloalegre SQL 1 30-07-2005 06:52:53


La franja horaria es GMT +2. Ahora son las 14:47:05.


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