看了这些答案,我还是没有弄清楚:
我的主从表结构是这样的:
//主表
Query1.SQL.Clear;
Query1.SQL.Add('CREATE TABLE "SPInfo.db"');
Query1.SQL.Add('(');
Query1.SQL.Add(' SeqID CHAR(8),');
Query1.SQL.Add(' SeqName CHAR(20),');
Query1.SQL.Add(' SeqDate DATE,');
Query1.SQL.Add(' SeqContent CHAR(100),');
Query1.SQL.Add(' SeqLength INTEGER,');
Query1.SQL.Add(' PRIMARY KEY (SeqID)');
Query1.SQL.Add(')');
Query1.ExecSQL;
//从表
Query1.SQL.Clear;
Query1.SQL.Add('CREATE TABLE "SPSeq.db"');
Query1.SQL.Add('(');
Query1.SQL.Add(' SeqID CHAR(8),');
Query1.SQL.Add(' Sequence BLOB(240,1),');
Query1.SQL.Add(' PRIMARY KEY (SeqID)');
Query1.SQL.Add(')');
Query1.ExecSQL;
我连接了Table1到SPInfo.db,DataSource1到Table1,
Table2到SPSeq.db,DataSource2到Table2,
Table2的MasterSource是DataSource1,MasterField是SeqID,
IndexFieldName也是SeqID。
我用DBEdit显示了SpInfo.db中的所有字段,用DBMemo显示SPSeq.db的
Sequence字段。如果我不把Table2连接到DataSource1上,DBMemo能正常
显示第一条纪录的Sequence字段值,但一旦设定了MasterSource和MasterField,
IndexFieldName,DBMemo就不显示了,为空,换成DBGrid的话,连接后SeqID也
为空。但是SeqID是肯定一样的,我是通过转换一个文件,将不同部分转到不同
数据库中的,SeqID用的是同一个。
我现在搞不懂到底是怎么回事了。如果谁能回答的话,我会另外加50分。