Tema: Funcion?
Ver Mensaje Individual
  #9  
Antiguo 18-10-2012
borlandpablo borlandpablo is offline
Miembro
NULL
 
Registrado: oct 2012
Posts: 37
Reputación: 0
borlandpablo Va por buen camino
Muchísimas gracias, ya sé como funciona. El problema que tengo ahora es que cuando obtengo el ID de la tabla principal, no me dejarlo insertarlo en otra tabla con la clave ajena. Lo detallo mejor:

Código:
DISTRIBUIDOR                        CATALOGOS                                    TIENDAS
distribuidor_id (autonumérico)   catalogo_id(autonumérico)                  tienda_id            
Nombre                           Titulo                                     Nombre
Telefono                         Foto                                       Logo
Logo                             fecha_inicial                              distribuidor_id
                                 fecha_fin
                                 distribuidor_id(numero)
                                 tienda_id(numero)
Esa es la base de datos. Me he creado una variable global de tiempo String (porque me daba fallo con el entero), la consulta que hice para obetener el ID del distribuidor es:

Código:
void __fastcall TXGestionTienda::ComboBox1Change(TObject *Sender)
{
   XDatos->QDistribuidor->Close();
   XDatos->QDistribuidor->SQL->Text = "select * from distribuidor where nombre = '"+ComboBox1->Text+"'";
   XDatos->QDistribuidor->Open();
   codigoD = XDatos->QDistribuidorDistribuidor_id->Value;
   //ShowMessage(codigoD);
}
Ya obtenido el ID, lo quiero asignar a la tabla TIENDAS para insertar una nueva tienda asignandole el distribuidor, lo que he hecho es:

Código:
void __fastcall TXGestionTienda::BitBtn1Click(TObject *Sender)
{
   XDatos->QTienda->Append();
   XDatos->QTienda->SQL->Text = "insert into tiendas(distribuidor_id) values ("+codigoD+")";
   XDatos->QTienda->Post();
}
Y el error que me salta es: " No se puede agregar o cambiar el registro porque se necesita un registro relacionado en la tabla 'DISTRIBUIDOR' ". Eso es lo que ya no sé hacer.

Un saludo.

Última edición por Casimiro Notevi fecha: 18-10-2012 a las 13:40:37.
Responder Con Cita