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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar