Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-03-2005
JulioGO JulioGO is offline
Miembro
 
Registrado: ago 2004
Posts: 94
Poder: 23
JulioGO Va por buen camino
Hola Arieliten:

Primeramente el Id_Pelicula deberias tenerlo desde un contador propio(sin usar ID autonumerico), lo recomendable es que crees una tabla CONTADOR y desde ahi "jales" el id a la pelicula.

Con respecto al ingreso de los datos de "ActuanEn", simplemente no uses array, pues puedes agregar un DBGrid a tu formulario y dos botones Agregar y Quitar. Al momento de pulsar el boton Agregar solo muestra un listado de los Actores, y si seleccionas un actor solo jalas el ID de la pelicula que has jalado de la tabla CONTADOR. El codigo del boton Agregar seria el siguiente:

If frmListaActores.ShowModal = mrOk then begin
ibdsActuanEn.Edit;
ibdsActuanEn.FieldValues['ID_PELICULA']:=ibdsPelicula.FieldValues['ID_PELICULA'];
ibdsActuanEn.FieldValues['ID_ACTOR']:=ibdsListaActor.FieldValues['ID_ACTOR'];
ibdsActuanEn.Post;
end;

Ojala te sirva la recomendación que te mando

Saludos.
Responder Con Cita
  #2  
Antiguo 16-03-2005
arieliten arieliten is offline
Miembro
 
Registrado: mar 2005
Posts: 29
Poder: 0
arieliten Va por buen camino
Gracias JuliGo, pero el tema es que no puedo insertar el ID_Pelicula en la tabla "Actua_En" porque todavia no inserté la pelicula en si, sino que toy llenando todos los datos. Es por eso que los actores los tengo que ir almacenando en una estructura temporal (usaré arrays?) hasta que el usuario clickee en ACEPTAR que hará el POST de todos los datos de la película y que a su vez almacenará en "Actua_En" todos los ID_Actor que tengo en el arreglo junto con el ID_Pelicula de la pelicula que insertamos.
¿La pregunta era si en vez de arrays podía usar algún comoponente que no sea de acceso directo a la BD y que funcione de manera similar un DBLookup en el sentido de que pueda mostrar algo (Nombre y APellido en este caso) pero que su valor real para usar sea otro (la KeyField seria el Id_Actor)?
¿Se entiende?
Muchas gracias.
Responder Con Cita
  #3  
Antiguo 16-03-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Como el programa no parece de facturación para el Corte Inglés, simplemente podrías en el OnNewRecord de la tabla peliculas hacer el post directamente.

De esta forma ya tienes el id de la pelicula, si el usuario cancela el registro, deberías eliminar ese registro, suponiendo que tienes borrado en cascada, no habría problemas.

Otra solución es mirar en una tabla de sistema (creo que era así) donde se puede comprobar el número el autoincremento. Lamento decir que no soy gurú de Firebird, lo único que he encontrado es como eliminar un generador

saludos
Responder Con Cita
  #4  
Antiguo 16-03-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
En cuanto a la pregunta de arrays, simplemente olvida esa "técnica", esta otra es más moderna y facil para el programador.
Código Delphi [-]

type Tactor = class(Tobject)
public
  Nombre:string;
  idActor:integer;
end;

var:
  Lista :TobjectList; // lista de objetos ... en este caso de actores
 
procedure CreaLista();
begin
  Lista := TobjectList.Create(true);
end;
procedure CreaActor();
var 
  a : Tactor;
begin
  a := Tactor.Create;
  a.nombre := 'pepe';
  a.idactor := 32;
  lista.add(a); 
end;

procedure LiberaLista;
begin
  freeandnil(Lista);//borramos la lista de memoria con todos los actores
// que tenga
end;

function ActorEstaEnLista(id:integer):boolean
var a:Tactor;
    i:integer;
begin
Result := false;
for i:=0 to lista.count-1 do
  if Tactor(lista.items[i]).idactor = id then
  begin
    Result := true;
    break;
  end;
end;

Espero que no tenga muchos fallos

Saludos
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 15:06:51.


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