如果用一个DBGRID1显示数据集ADOTABLE1时,在dbgrid的DBGrid1DblClick事件中,双击的当前记录是记录指针的记录,我用FIELDBYNAME并把表格当前选取的字段值赋给EDIT,结果正如我前面所想的.但现在有这样一个问题:
我用一个ADOQUERY做数据集,在dbgrid的DBGrid1DblClick事件中,双击的记录(要想处理的记录,但,我用FIELDBYNAME把字段值赋给EDIT,结果总是显示第一条记录,指针为什么总是停在第一条记录上呢?
我用一个ADOQUERY做数据集,在dbgrid的DBGrid1DblClick事件中,双击的记录(要想处理的记录,但,我用FIELDBYNAME把字段值赋给EDIT,结果总是显示第一条记录,指针为什么总是停在第一条记录上呢?
解决方案 »
- 很怪异的问题,高手进来帮忙分析分析是什么原因。
- TrichEdit可以同时显示不同的字体和颜色吗?
- 一个20G的文件夹我怎么能把它分成多个600M的文件???
- 如何输入 ! 这个字符在字符串中。(里面还有一个问题)
- 请问如何对邮件的GB2312内容进行解码?
- 如何实现Try...Except...里面的重试功能???
- win2000下内存使用的问题?
- BDE error 8458 :Cannot load an IDAPI service library.是怎么回事?
- delphi中任何判断SQL语句执行是否成功?
- 外键
- 如何将ado的数据导出到excel中去!
- 文本文件in.txt中有若干网站域名,如何得到对应的IP地址,并将其输出到out.txt中,谢谢!
edit2.text:=dbgrid1.fields[1].value
edit3.text:=dbgrid1.fields[2].value
edit4.text:=dbgrid1.fields[3].value
var
s1,s2,s3,s4,m:string;
i,j:integer;
begin
m:=trim(fmain.Label12.Caption);
with adoquery2 do
begin
close;
sql.Clear;
sql.Add('select * from 临时明细 where 订单ID=:a;');
Parameters.ParamByName('a').Value:=m;
open;
end;
//保存要册除记录的每个字段值
s1:=trim(adoquery2.FieldByName('产品编码').Value);
s2:=trim(adoquery2.FieldByName('产品名称').Value);
s3:=trim(adoquery2.FieldByName('单位').Value);
i:=adoquery2.FieldByName('单价').Value;
//测试用
edit1.Text:=s1;//捕捉不到值
edit12.Text:=s2;
edit13.text:=s3;
edit14.text:=inttostr(i);
end;
先查出相应记录出来,用GRID显示出来,再想双击删除记录
-这个分号存在SQL server不会产生语法错误吗?
用过滤还是一样,QUERY可以用过滤
其中m是你判断的条件,但我没看出其值在DBGrid1DblClick事件中发生了变化。
m:=trim(fmain.Label12.Caption);// 变化了吗,在dbclick后 ???
with adoquery2 do
begin
close;
sql.Clear;
sql.Add('select * from 临时明细 where 订单ID='''+m+'''');//试一试这个
open;
end;
sql.Add('select * from 临时明细 where 订单ID=:a');
Parameters.ParamByName('a').Value:=m;
照metro的说法,我的SQL语句根本起不了作用,为什么呢?我的表达式出了什么错误呢?我按
sql.Add('select * from 临时明细 where 订单ID='''+m+'''');就查出记录来了,为什么要加这么多的分号的,目的不是要写出表达式订单ID=M吗?我的表达式为什么不对,请大家告诉我,我真的想明白这个问题.
先在这里多谢大家的帮助了.
把这个东西移到FORMSHOW中,问题保证解决!