为什么我做的程序在我的机子上运行正常,到别的机子就出现问题.
主要的错误的提示:BOF或EOF中有一个是'真',或是当前的记录以被删除,所需的操作要求一个当前的记录.
  我看主要的出错地方就是这样的程序段,但我又看不出哪儿有问题,请高手们看看!!!!
with adoquery1 do    //将课程表中的每个班级的课程加入到kcmc(COMBOBOX组件)中
begin
close;
adoquery1.SQL.text:='select * from xuanke where 班级=:v_banji and 学期=:v_xueqi';
AdoQuery1.Parameters.items[0].Value:=banji.text;
AdoQuery1.Parameters.items[1].Value:=xueqi.text;
open;
adoquery1.ExecSQL;
adoquery1.First;
while not eof do
begin
with courseTable2 do
begin
if locate('课程代号',adoquery1.fieldbyname('课程代号').asstring,[]) then
begin
kcmc.Items.Add(courseTable2.fieldbyname('课程名称').asstring);
end;
end;
next;
end;
end;

解决方案 »

  1.   

    大概是ADO的BUG,你下一个MDAC2.7试一下。
      

  2.   

    adoquery1.ExecSQL;  ////改成adoquery1.open 试试
    adoquery1.First;
      

  3.   

    不是BUG,我以前的程序也出现过这样的情况,后来重装系统就好了,可能和系统有关
      

  4.   

    这是DELPHI 5的ADO bug,下载 Delphi 5的 3个补丁,重新编译就好了。
      

  5.   

    如果使用delphi5,把补丁打上就好了
      

  6.   

    为什么总有人写成这样?adoquery1.ExecSQL换成open试试
      

  7.   

    不过你的代码写的好像有问题:
    with adoquery1 do    
    begin
    .......
    open;            //
    adoquery1.ExecSQL// 这是做什么??
      

  8.   

    代码格式比较难看啊!还有就是我也碰到过类似的情况,好象真是BUG呢!
      

  9.   

    open;
    adoquery1.ExecSQL;open后又exec?什么概念?
      

  10.   

    那请问
    DELPHI5 的补丁在哪儿能下到!!
    要是不用DELPHI5 在移植到DELPHI 6或DELPHI 7上行嘛??
      

  11.   

    code本身就有问题!ExecSql 是用来执行那些不返回Cursor的SQL(Insert, Delete, Create)Open 则相反(Select)。但可能这不是你错误的原因!是不是bug,不确定!