inserir novo registro em alguns campo da tabela e em outro campo receber registro de outra tabela

MySQL

Delphi

07/07/2023

Pessoal, estou precisando inserir novos registro em alguns campos da tabela e em outros campos receber registro que ja existem em outra tabela.
exemplo:
tabela A tenho os campos tabela B
id identificacao setor id id_ingresso identificacao setor descricao tipo data hora
1 1020304050 teste

na tabela B preciso inserir nos campos id_ingresso e setor os registros do campo id e setor da tabela A e nos restantes dos campos inserir novos registros .
codigo a baixo ele insere os dados de uma tabela na outra,mas preciso preencher os outros campos com novos registro.
Dm.Consulta.SQL.Clear;
Dm.Consulta.SQL.Add('insert into ingresso_evento (id_ingresso,SETOR)select id,SETOR from ingressos where identificacao = :pident');
Dm.Consulta.ParamByName('pident').Value := edit5.Text;

no campo identificacao da tabela B preciso receber o valor do edit5.Text.
segue meu codigo.

procedure TFmrRelatEntradas.Edit5Exit(Sender: TObject);
begin
if not dm.IngressosTable.Locate('identificacao',edit5.Text,[]) then
begin
ShowMessage('NÃO CADASTRADO');
DM.FDingEvento.Open;
DM.FDingEvento.Append;
dm.FDingEventoIdentificacao.value := edit5.Text;
dm.FDingEventoData.Value:= Date();
dm.FDingEventoHora.value := Time();
dm.FDingEventoDescricao.Value := 'INGRESSO NÃO CADASTRADO';
dm.FDingEventoTipo.Value := 'BLOQUEIO';
DM.FDingEvento.post;
DSingevento.DataSet.Refresh;
EDIT5.Clear;
end;

if dm.IngressosTable.Locate('identificacao',edit5.Text,[]) then
begin

dm.IngressosTable.sql.Clear;
dm.IngressosTable.SQL.Add('update ingressos SET Valido = "1" WHERE Valido = "0" AND Identificacao = :pident');
dm.IngressosTable.ParamByName('pident').value := edit5.Text;
Dm.IngressosTable.ExecSQL;
ShowMessage('BOM JOGO');
Dm.Consulta.SQL.Clear;
Dm.Consulta.SQL.Add('insert into ingresso_evento (id_ingresso,SETOR)select id,SETOR from ingressos where identificacao = :pident');
Dm.Consulta.ParamByName('pident').Value := edit5.Text
preciso dar continuidade aqui para inserir os outros campos.
Alan

Alan

Curtidas 0

Melhor post

Frank Hosaka

Frank Hosaka

08/07/2023

Eu não sei nada de Delphi. Mas entendo um pouco de MySQL.
Cada tabela deve representar alguma coisa, exemplo:

tabela ingresso
id [auto_increment]
id_participante
id_show

tabela participante
id
nome
telefone

tabela show
id
data
evento

Vamos criar alguns registros: tabela participante (1,"Frank","91234-1234"); tabela show (1,"25/12/2023","Festa de Natal").
Na hora do Frank comprar o ingresso, o comando em MySQL seria assim:
insert into ingresso (id_participante,id_show) values (1,1)

Você não pode pegar o campo de uma tabela e colocar em outra, mas você pode usar o Delphi para identificar o participante, e depois passar o ingresso para ele, e em seguida registrar o evento na tabela ingresso. Cada tabela tem uma função. Como ajuntar essas informações é o que a gente chama de relacionamento.
GOSTEI 1

Mais Respostas

Alan

Alan

07/07/2023

Eu não sei nada de Delphi. Mas entendo um pouco de MySQL.
Cada tabela deve representar alguma coisa, exemplo:

tabela ingresso
id [auto_increment]
id_participante
id_show

tabela participante
id
nome
telefone

tabela show
id
data
evento

Vamos criar alguns registros: tabela participante (1,"Frank","91234-1234"); tabela show (1,"25/12/2023","Festa de Natal").
Na hora do Frank comprar o ingresso, o comando em MySQL seria assim:
insert into ingresso (id_participante,id_show) values (1,1)

Você não pode pegar o campo de uma tabela e colocar em outra, mas você pode usar o Delphi para identificar o participante, e depois passar o ingresso para ele, e em seguida registrar o evento na tabela ingresso. Cada tabela tem uma função. Como ajuntar essas informações é o que a gente chama de relacionamento.

Ahh sim amigo muito obrigado vou pesquisar e dar uma lida sobre o relacionamento de tabelas.No caso meu sistema é de controle de acesso,preciso consultar os ingressos que estão na tabela ingressos, se estiver o sistema faz a liberação e na tabela ingreresso_evento será o relatório de onde precisa conter a identificaçao,setor data ,hora descrição,tipo que seria entrada ou bloqueio.
GOSTEI 0
POSTAR