Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-03-2005
arieliten arieliten is offline
Miembro
 
Registrado: mar 2005
Posts: 29
Poder: 0
arieliten Va por buen camino
Que componente debo usar??

Hola, tengo varias dudas y problemas que espero puedan ayudarme. Tengo una BD Interbase con dos tablas: una de peliculas y una de actores. Tambien tengo una tabla mas donde guardo la relacion "ActuaEn" que almaceno el Id_Pelicula y el Id_Actor para saber el reparto de actores de una determinada pelicula.

Ahora el problema es que cuando estoy en un formulario para insertar una pelicula, tengo todos DBEdits asociados a cada campo de la pelicula y un boton para cargar los actores. El tema es que para cargar los actores de esa pelicula no puedo hacerlo directamente ya que necesito el Id_Pelicula (que aún no tengo porque no la he insertado aún). Asi que no puedo insertar los actores directamente hasta no tener insertada la pelicula (hehco el POST de pelicula).

Ahora bien, lo que hice es hacer algo como ListBoxs donde voy cargando los actores seleccionados para esa pelicula y un array donde guardo los IDs de esos actores para luego poder almacenarlos en la tabla "Actua_En". El tema es que se me ha despelotado todo y se me complica mucho el manejo de los arrays dinamicos (errores de memoria, etc).

La pregunta es: ¿qué me recomiendan uds usar para hacer esto?
Y otra cosa: si tengo el ID autonumerico (generado por un generador) ¿como pueod averiguar cuál es el ID que le tocó al registro que toy insertando para asi luego poder usarlo en la insercion de la tabla de la relacion?

MUCHISIMAS GRACIAS si pueden ayudarme y perderme por ser tan extenso
Responder Con Cita
  #2  
Antiguo 14-03-2005
MasterXP MasterXP is offline
Miembro
 
Registrado: ene 2005
Posts: 193
Poder: 20
MasterXP Va por buen camino
Cita:
Empezado por arieliten
Ahora el problema es que cuando estoy en un formulario para insertar una pelicula, tengo todos DBEdits asociados a cada campo de la pelicula y un boton para cargar los actores. El tema es que para cargar los actores de esa pelicula no puedo hacerlo directamente ya que necesito el Id_Pelicula (que aún no tengo porque no la he insertado aún). Asi que no puedo insertar los actores directamente hasta no tener insertada la pelicula (hehco el POST de pelicula).
Por que es que no puedes guadar los actores primero? para los actores puedes poner algunos Edits(no DBEdit) y con un SQLQuery insertarlos en la tabla, y despues guardar la de los actores....

no se si entendi bien la pregunta, pero espero que te sirva.

Cita:
La pregunta es: ¿qué me recomiendan uds usar para hacer esto?
Y otra cosa: si tengo el ID autonumerico (generado por un generador) ¿como pueod averiguar cuál es el ID que le tocó al registro que toy insertando para asi luego poder usarlo en la insercion de la tabla de la relacion?
con MiTabla.Last o MiQuery.Last Tambien podria ser con MiQuery.EOF

Salu2.
Responder Con Cita
  #3  
Antiguo 14-03-2005
arieliten arieliten is offline
Miembro
 
Registrado: mar 2005
Posts: 29
Poder: 0
arieliten Va por buen camino
Si, me sirvió tu última respuesta. Con respecto a lo que me preguntabas sobre por qué no puedo insertar primero la película, es porque todavía el usuario no le dió al Boton Aceptar del formulario (que es el que inserta la pelicula) y está llenando la grilla de actores (un par de DBLookupComboBox) pero no puedo usar el DBLookupListBox (que hace la insercion directamente en la BD) ya que aun no tengo el id de la pelicula corriente porque (como te repito) no aceptamos el ingreso final de datos.

Supongo que en lugar de los DBLookuListBox para los actores, debería usar unos ListBoxs comunes para que luego al hacer click aceptar, pueda insertar definitivamente los datos de la peli y los datos de los actores (recopilados en el ListBox que llena el usuario). O sea, el ListBox sería un almacenamiento temporal de los datos que se van a insertar en la tabla.
Hasta ahi todo bien; pero el tema es que al ListBox le doy Items en forma de strings (que son el apellido y el nombre del actor) para que el usuario pueda visualizarlos y darse cuenta de quien hablamos. Pero para almacenarlos en la tabla "Actua_En" necesito los respectivos id. Entonces la pregunta es: ¿hay manera de que a un ListBox comun le pueda dar items para mostrar y un valor oculto para luego usarlo en la insercion en la BD? al estilo del funcionamiento de los LookupListBox.
¿Se entiende mi pregunta?
Responder Con Cita
  #4  
Antiguo 29-03-2005
Fita Fita is offline
Miembro
 
Registrado: jul 2003
Ubicación: Pilar - Argentina
Posts: 216
Poder: 21
Fita Va por buen camino
Realmente estas despelotado...

Si entiendo bien, creo que quieres hacer cosas antes que estas sucedan... Es decir, por lo que explicas se trataría de una relación Master/Detail.
Para ello debes primero grabar la película y luego agregarle (el detalle) los actores. Hay varias formas de hacerlo, una sería usando tabsheets, por ejemplo:
Tabsheet1: Muestras un grid con la peliculas y botones para Agregar, editar, etc. Cuando hacen click en Agregar los mandas al tabsheet2.
Tabsheet2: muestra los edits de la tabla de peliculas. Cuando aceptan los datos los grabas y los mandas al tabsheet3.
Tabsheet3: Tienes los edits de los actores. Cuando aceptan los datos grabas los actores que toman el id_pelicula de la tabla de películas ya que el puntero está un el ultimo registro de la misma. Al hacer click en algun botón Terminar o Salir vuelves al tabsheet1 y comienza el ciclo nuevamente con una nueva película.

Sin access violation ni nada parecido... es algo muy simple y funciona, logicamente puedes sofisticarlo a tu gusto.

Espero que te sirva
saludos
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


La franja horaria es GMT +2. Ahora son las 04:05:35.


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