多字段主从关系(20分)

  • 主题发起人 主题发起人 WTO
  • 开始时间 开始时间
W

WTO

Unregistered / Unconfirmed
GUEST, unregistred user!
多字段主从关系如何解决?

主表 TABLE1:FIELD1,FIELD2,FIELD3,FIELD4,FIELD5
从表 TABLE2:FIELD1,FIELD2,FIELD6,FIELD7
各位大虾有何高见 ?

 
是否可以用过滤的方法 ?
请集思广益。。。。。。
 
好象你的表设计不是很符合第三范式吧,既然两个表的两个字段相同,
为什么不可以分开呢,分成三个表可能好作些。
 

呜呼 ! 此问题如此难吗 ?

来一个简单的:编译后的EXE文件的运行环境 ?
 
牛头不对马嘴
 
用主从数据结构?!
 
peterwang:
原问题是这样的:
主表船舶载货情况:船舶编号、代理公司、煤种、序号、储存场地五个字段确定
唯一的记录。
从表使用车队情况:船舶编号、代理公司、序号作为连接关系。
 
不知道你想得到什么结果,得到不同的结果,主从表的位置可能不同。
例如:如果想得到某一船舶的车队使用情况和想得到某一代理公司的车队使用情况
主从表的连接方式会不同的。
 
想得到某一船舶的不同代理公司的车队使用情况。
甚至再多一个条件:某一船舶的不同代理公司、不同储运场的车队使用情况。
 
我在D5 ADO 上如此使用:
table2.close;
Table2.mastersource=table1source
//主表datasource
table2.masterfield:='t1f1;t1f2'
//主表关联字段名;...
table2.indexfieldname:='t1f1;t1f2';//主表关联字段名;...
...
table2.close;
Table2.mastersource=table1source;
table2.masterfield:='t1f1;t1f2;t1f3';
table2.indexfieldname:='t1f1;t1f2;t1f3';
...
不知是否能解决你的问题?!
 
yiezh :
这些代码在哪设置 ?
ADO 我对此一无所知,能讲讲吗 ?

 
BDE肯定也可以。
范例table1->datasource1
table2
procedure TForm1.Button1Click(Sender: TObject);
begin
table2.close;
table2.MasterSource:=datasource1;
table2.MasterFields :='船舶编号;代理公司;序号';//字段名
table2.open;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
table2.close;
table2.MasterSource:=datasource1;
table2.MasterFields :='船舶编号;代理公司';
table2.open;
end;
...?!
****不过要求要建复合索引(主键):'船舶编号;代理公司;序号';//字段名
 
非常感谢 yiezh ,你这样用过吗 ?

我马上调试 !!!
 
哎呀,刚才停电,现在才来,看来晚了!
 
peterwang:
感兴趣,可以一块调试。我没调试过。不出错,但主从关系没建立起来。
 
从表保存之后,记录消失----不显示。
 
那从表到底存进去没有呢?
(我这里没有delphi,明天上班给你调。
去年我做过类似的工作,现在都忘了怎么作的了。)
 
只要KEY FIELD同时在两个表中出现,就可以了呀,不然就在程序中自己处理
主:ONSCROLL
detail.params[0].value := master.fields[0].value;
detail.params[1].value := master.fields[1].value;
从:select * from xxxx where f1 = :f1 and f2 = :f2...

 
按照yiezh的方法 主从关系 调试通过。

但是那位大侠指点一下:级连删除、级连更新如何做 ?
 
后退
顶部