我是用两个adoquery,两个datasource,两个dbgrid,想做个主从表。当在主表中双击某条记录
(如王雁、女、某某学校毕业)时,从表中就会显示这个叫王雁的人的其它信息。我做的程序中
开始双击没有问题,但是击几条记录后从表中就显不出来信息了。
with agzjl do
begin
close;
sql.Clear;
sql.Add('select id , stime ,etime from gzjl where id=:id');
parameters.ParamByName('id').Value:=dbgrid1.Fields[0].AsInteger;
open;
end;
(如王雁、女、某某学校毕业)时,从表中就会显示这个叫王雁的人的其它信息。我做的程序中
开始双击没有问题,但是击几条记录后从表中就显不出来信息了。
with agzjl do
begin
close;
sql.Clear;
sql.Add('select id , stime ,etime from gzjl where id=:id');
parameters.ParamByName('id').Value:=dbgrid1.Fields[0].AsInteger;
open;
end;
解决方案 »
- Delphi 如何根据汉字获取拼音首字母(考虑多音字和生僻字)
- JCL安装的问题
- DBAdvStringGrid1.Fields[0].Editr=edCheckBox
- 关于Report Machine报表的合计问题
- 小问题
- Delphi6中用QuickReport制作的报表为什么在爱普生16000KIII上无法打印???
- 人民币大小写转换
- 怎样把delpi做的程序封装成一个类或做成一个模板可以被别人继承
- 关于StringGrid的问题?
- 有关注册表的读写
- 各位大虾,用SmallStruct结构开发数据库程序,效果怎样? 论坛好像没有人提到过?我想开发一个信息系统,苦于没有一个好的应用框架。
- rave打印问题,乞求大家帮助!帮帮俺!!!急!!!!!
DBGrid1.DataSource.DataSet.FieldByName('字段名').AsInteger试试这个
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from jbxx');
open
end;
这是动态添加语句。我把代码改成你们说的,可是出现错语adoquey1:field id not found
这是怎么搞的呢,唉,头好疼啊
说明adoquey1中没有名为id的字段DBGridA --QueryA 主表
DBGridB --QueryB 从表with QueryB do
begin
close;
sql.Clear;
sql.Add('select id , stime ,etime from gzjl where id=:pid');
parameters.ParamByName('pid').Value:=DBGridA.DataSource.DataSet.FieldByName('字段名').AsInteger
open;
end;
你要确定DBGridA.DataSource.DataSet (也就是QueryA)select 字段中有 从表所对应的字段id
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select id ,name ,cname ,sex ,cjsj from jbxx where name=:name');
parameters.ParamByNam('name').Value=edit1.Text;
open;
procedure TForm2.DBGrid1DblClick(Sender: TObject);
begin
with agzjl do
begin
close;
sql.Clear;
sql.Add('select id ,stime ,etime ,wdw ,zw from gzjl where id=:id');
parameters.ParamByName('id').Value:=dbgrid1.fields[0].asstring;
open;
end;
agzjl是我给第二个adoquery起的名字
begin
with agzjl do
begin
close;
sql.Clear;
sql.Add('select id ,stime ,etime ,wdw ,zw from gzjl where id=:id');
parameters.ParamByName('id').Value:=dbgrid1.fields[0].asstring;
open; __________________________
end; DBGrid1.DataSource.DataSet.FieldByName('字段名').AsInteger
改这样子试试
我忘了在如果能查询到的话再开启一下。呵呵,我太粗心了,多谢“笑三少”和“洋溢”啊
^-^