Ver Mensaje Individual
  #1  
Antiguo 24-06-2014
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Reputación: 12
giulichajari Va por buen camino
no se puede agregar la clave foranea

Tengo un datamodule con 3 sqlquery (sqlquery1, sqlquery2, y aux).
Y en la bd tengo una tabla persona y una tabla cliente. En la tabla cliente tengo el idpersona, pero algo falla al querer agregar un cliente, mne agrega los datos de la tabla madre solamente.

Los procedimientos son:

Código Delphi [-]
procedure Tferreteria.inserpersona(persona:Tpersona);
begin
  dm:=Tconsultas.Create(nil);
   dm.SQLQuery1.Close;
   dm.SQLQuery1.SQL.Add('insert into persona (nombreyape, domicilio)values (:nombreyape,:domicilio);');

   with dm.SQLQuery1 do
    begin
      ParamByName('nombreyape').AsString:=persona.nombreyape;
      ParamByName('domicilio').AsString:=persona.domicilio;


    end;
    dm.SQLQuery1.ExecSQL();
     dm.SQLQuery1.Close;
end;


Código Delphi [-]
procedure TFerreteria.insercliente(cliente:Tcliente);
begin
    dm:=Tconsultas.Create(nil);
    dm.SQLQuery2.Close;


    dm.SQLQuery2.SQL.Add ('insert into clientes(idpersona,cuit,cuil) values (:idpersona,:cuit,:cuil);');
    with dm.SQLQuery2 do
    begin
    dm.aux.SQL.Add('select max(idpersona) from persona as idp;');
    dm.aux.ExecSQL();
      ParamByName('idpersona').Value:=dm.aux.ParamByName('idp').AsInteger;
      ParamByName('cuit').Value:=cliente.cuit;
      ParamByName('cuil').Value:=cliente.cuil;
    end;
    dm.SQLQuery2.ExecSQL();
    dm.SQLQuery2.Close;
end;

Espero alguien pueda ayudarme, los sqlquery tienen los parametros en la propiedad TParams.. agregados.

Gracias
Responder Con Cita