最近自己在摸索主从表问题.总是有点错误,,谁能给我一个有基本功能的实例,用两个ADOQUERY来实现的.有新增,修改,保存,上一个,下一个,最好能个简单的ACCESS表在里面.让小弟学习学习..
解决方案 »
- 一个多线程,挂起,唤醒,结束。创建的问题
- DBGrid一个格子输入内容正确时旁边的格子马上显示其对应内容如何实现
- 这是为什么?
- 如何实现ListBox中的多选!(急啊~!~~各位大虾帮帮忙啊!)
- listbox中有26个选项,怎样在程序运行时得到选择的结果
- Delphi对文件的操作
- 如何调用一个资源文件中的两个声音??
- GetLogicalDrives函数求助!
- 用IDFTP连接FTP,怎么样获得某个文件夹下的所有文件名
- 走一走,看一看,此问题已经困扰几天了。。。
- Indy9实现三层结构,IDClient->IDServer->SQL Server,线程问题?
- delphi调用vc++的TLB文件
一个Eazy的方法:做成单表维护,在界面上弹出子表维护。在删除主表记录的时候要做检查。
会不会写界面调用呢?
2、ADOQuery1用来连接主表,SQL属性设为select * from 主表名,并将DataSource1连接到AODQuery1;
3、ADOQuery2用来连接主表,SQl属性设为select * from 从表名 where 关联字段名=:关联字段名,并将DataSource2连接到AODQuery2;
4、设置ADOQuery2的DataSource属性为DataSource1。
5、放两个DBNavigator和两个DBGrid分别连接到两个DataSource。OK搞定。关键是第3步的从表SQL,假设主表结构为 班级编号、班主任姓名,从表结构为 班级编号、学号、姓名,,关联字段为班级编号,则SQL语句为select * from 从表名 where 班级编号=:班级编号
兩個表的聯接是通過stu_no聯接。
在窗體上放置兩個query控件,分別命名為qmain和qdetail,qmain聯接主表學社信息表qdetail聯接從表選課信息表.注意qdetail的datasource設置為qmain.我是在query的sql屬性中加入sql代碼的.
相關代碼如下:
qmain的sql語句:select * from stu_main
qdetail的sql語句: select * from stu_detail where stu_no=:stu_no
notes:從表中設置一個變量。 procedure TForm2.Button3Click(Sender: TObject);begin qmain.Close;
qmain.Open;//查詢主表的內容 qdetail.Close;
qdetail.ParamByName('stu_no').Value:=qmain.FieldValues['stu_no'];//將主表和從表聯接起來
qdetail.Prepare;
qdetail.Open;//查詢出從表的內容。
end;
------------------------------------------------------
sorry,suddently i can not input chinese
now you need input the event below
------------------------------------------------------
procedure TForm2.QmainAfterScroll(DataSet: TDataSet);
begin
qdetail.Close;
qdetail.ParamByName('stu_no').Value:=qmain.FieldValues['stu_no'];
qdetail.Prepare;
qdetail.Open;
end;