【发布时间】:2019-02-12 19:27:32
【问题描述】:
我正在使用 delphi rad studio,我是这方面的初学者。我正在尝试将值从另一个只包含 ID 的表中插入到一个表中。我有一些组合框填充了表中的 ID,然后我想将这些值插入到另一个表中。更具体地说,我有一个包含汽车规格的表格,我想将这些规格保存到一个表格中,其中包含租用这辆车的信息。我已经尝试了很多,但我没有得到答案。这是组合框的代码:
procedure TForm13.DBLookupComboBox1Click(Sender: TObject);
begin
adomarca.SQL.Text := ' SELECT tabel_Marca.Marca from Tabel_Masini ' +
'join tabel_Marca on tabel_masini.id_Marca=tabel_marca.id_Marca ' ;
SELF.ADOmarca.ExecSQL;
SELF.ADOmarca.Open;
ADOmarca.Prepared := TRUE;
end;
这是保存按钮的代码:
procedure TForm13.button2click(Sender: TObject);
begin
Comanda := 'Insert into Tabel_Inchirieri (id_Client, id_Marca,
id_Model, id_Transmisie, id_Caroserie, id_Culoare,
id_Combustibil, Ziua_Inchirierii, Ziua_Restituirii,
Nr_zile_inchiriate) ' +
// 'select * from tabel_masini ' +
'Values (' + inttostr(DBLOOKUPCOMBOBOX8.keyvalue) + ','
+inttostr(DBLOOKUPCOMBOBOX1.keyvalue) + ',' +
inttostr(DBLOOKUPCOMBOBOX2.keyvalue) + ',' +
inttostr(DBLOOKUPCOMBOBOX3.keyvalue) + ',' +
inttostr(DBLOOKUPCOMBOBOX4.keyvalue)+ ',' +
inttostr(DBLOOKUPCOMBOBOX5.keyvalue) + ',' +
inttostr(DBLOOKUPCOMBOBOX6.keyvalue)+ ',' +
quotedstr(formatdatetime('yyyy-mm-dd',DateTimePicker1.Date))+
','+ quotedstr(formatdatetime('yyyy-mm-
dd',DateTimePicker2.Date))+',' +
inttostr(daysbetween(DateTimePicker2.Date,
DateTimePicker1.Date))+')';
Qcomanda.SQL.Add(Comanda);
try
Qcomanda.ExecSQL ;
finally
ShowMessage('Comanda a fost salvata cu succes ! ');
end;
end;
非常感谢。
【问题讨论】:
-
您应该直接从连接表中的列而不是从 DbLookUpComboBox 中读取要插入
Tabel_Inchirieri的值。 -
旁注,您的代码目前存在 SQL 注入漏洞,请学习使用 documentation 中描述的参数,作为奖励,您不必处理格式化您的代码日期字符串...