怎样使用DataSetField建立主从关系?

iamichael 2000-01-06 11:06:00
...全文
143 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
光明山人 2000-01-23
  • 打赏
  • 举报
回复
michael, 以后提问题详细些。

不用TField建立主从关系,用TTable.MasterSource和TTable.MasterFields。
想必主DataSource你已建好,(如果没有,那很简单,就是一般的DataSet和DataSource),然后在Form或DataModule上加入一个TTable,让它的MasterSource为主DataSource,让MasterFields为它的键值列的子集,列名之间用分号隔开。这样当主DataSet记录游标(Cursor)移动时(也就是当前记录变为其它记录时),这个TTable对象的结果集也相应改变。

如果你不用TTable(而用TQuery),可以响应TDataSet.AfterScroll事件,在那里改变TQuery的查询条件,如:
QueryX.Close;
QueryX.SQL.Text := 'select col1,col2,col3,... from tableX where key1='+DataSet.FieldByName('Key1').AsString+' and key2='+DataSet.FieldByName('Key2').AsString;
QueryX.Open;

我推荐你使用TQuery的Params属性(不在这里聒燥了),就可以这样写:
QueryX.Close;
QueryX.Params[0].AsInteger := DataSet.FieldByName('Key1').AsInteger;
QueryX.Params[1].AsInteger := DataSet.FieldByName('Key2').AsInteger;
QueryX.Open;

当然,这里假设你的表名和字段名,并假设键值为整型,如果不是,要做相应修改。

希望猜对了你的意思。
kxy 2000-01-06
  • 打赏
  • 举报
回复
请详细些:)

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧