Ligação entre chaves no SQL

16/02/2021

0

Tenho duas tabelas com chaves primárias em ambas e uma chave estrangeira em uma. Na tabela "devedores", tenho o cadastro de devedores, com o CPF como indice e o campo cod_dev como chave primária. Na tabela titulos tenho cod_tit como chave primária e ref como chave estrangeira, ligada ao campo cod_dev da tabela devedores. O cadastro do nome do devedor é retornado por um componente DBLookupBox que retorna como KEY o campo CPF da tabela devedores.
Estou buscando uma rotina para inserir dados na tabela 2 (utilizando componente TFDQUERY no Delphi) onde eu consiga referenciar a chave estrangeira com o CPF da tabela titulos. Algo que em SQL eu consigo fazer utilizando um software de cliente (no meu caso o HeidiSQL) o qual comando em SQL ele faz assim:
UPDATE 'titulos' SET 'ref'='10' WHERE  'cod_tit'=4;


Meu código para inserir dados na tabela é:

SQL.Clear;
    SQL.Add('INSERT INTO titulos');
    SQL.Add('(tipo, emissao, vencimento, credor, devedor,valor_ori, valor_corr)');
    SQL.Add('VALUES (:tipo, :emissao, :vencimento, :credor, :devedor, :valor_ori, :valor_corr)');
    ParamByName('tipo').AsInteger:= CB_Tipo_Tit.ItemIndex;
    ParamByName('emissao').AsDate:= StrToDate(MKE_Emissao_Tit.Text);
    ParamByName('vencimento').AsDate:=StrToDate(MKE_Vcto_Tit.Text);
    ParamByName('credor').AsString:=DBL_Cad_Cred.KeyValue;
    ParamByName('devedor').AsString:=DBL_Cad_Dev.KeyValue;
    ParamByName('valor_ori').AsFloat:= StrToFloat(ED_Valor_Orig_Tit.Text);
    ParamByName('valor_corr').AsFloat:= StrToFloat(ED_Valor_Corr_Tit.Text);    
    ExecSQL;


Alguém com uma ideia legal? =)

Obrigado...
Matheus

Matheus

Responder

Posts

16/02/2021

Matheus

Estou buscando uma rotina para inserir dados na tabela 2


Por tabela 2, entenda-se tabela titulos
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar