数据的保存 ( 积分: 0 )

  • 主题发起人 主题发起人 fuxin198311
  • 开始时间 开始时间
F

fuxin198311

Unregistered / Unconfirmed
GUEST, unregistred user!
有两张表一张是表头 一张是明细 我在明细表引用了表头的表的主键 在明细是外键
如表头 vendor_id(主键) vendor_name......
明细 vendor_id(外键) student_name .......
问题是 我要保存数据到明细表 我在窗体上放了一个edit组件用来显示vendor_name(表头的字段) 的值
现在我保存时 但是明细表没有这个字段呀 只有vendor_id(外键) 我的代码是这样的 with adoquery1 do //录入数据进行保存
begin
close;
sql.Clear ;
sql.Add('insert into vendor_py_detail(vendor_name,student_name)values(:name,:pm)');
Parameters.ParamByName('name').Value:=trim(edit1.Text);
Parameters.ParamByName('pm').Value:=trim(comboedit1.Text);
execsql;
end;
end;
这样有错 应怎么办呢
 
sql.Add('insert into vendor_py_detail(vendor_name,student_name)values('''+name+''','''+pm+''')');给他赋值
 
不是这样的 表vendor_py_detail没有字段vendor_name ,它只是表头(也就是主表)的字段 我在明细表vendor_py_detail引用了主表的主键vendor_id , 这两张表关联起来
 
不太明白你的意思,你的目的是什么?哪个表要保存数据,哪个表没有显示数据?报的什么错?
 
就是在明细表中没有字段vendor_name 这个字段是主表里的 而在明细表只引用了主表的主键vendor_id 现在我保存数据时不能保存呀 提法明细表没有字段vendor_name
 
你是不是采用Ado进行批量更新呀。
 
哦,这样的话,如果vendor_name也不是pk的话就会有问题,因为当你插入的时候vendor_name不能唯一制定vendor_id,就是说在表头中你用vendor_name不能找到对应的vendor_id,有可能vendor_name对应多个vendor_id
 
后退
顶部