FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
Cita:
no se si entendi bien la pregunta, pero espero que te sirva. Cita:
Salu2. |
#3
|
|||
|
|||
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? |
#4
|
|||
|
|||
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 |
|
|
|