Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1696819
  • 博文数量: 263
  • 博客积分: 1218
  • 博客等级: 少尉
  • 技术积分: 2862
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-19 02:33
文章分类

全部博文(263)

文章存档

2020年(12)

2019年(2)

2018年(10)

2016年(1)

2015年(20)

2014年(115)

2013年(46)

2012年(37)

2011年(20)

分类: WINDOWS

2012-03-16 16:10:30

delphi,用ADO操作数据库:
 
procedure TForm1.Button1Click(Sender: TObject);   //*查询Bt*/
 var
  i :integer;
  CurPage:integer;
  NumEveryPage :integer;
begin
  CurPage:=0;
  NumEveryPage:=1000;
  //1 ADOQuerySelect.Close;
  //2 conn.Close;
  conn.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=MyAccessDatabase';
  conn.LoginPrompt:=false;  //不要输入密码
  ADOQuerySelect.SQL.Clear;   //查询数据
  sql:='select * from '+                    //查询语句,带参数量查询
        ' (select top %d * from '+
            ' (select top %d * from outputdata ' +
                'order by 日期 '+
              ' )'+
         ' order by 日期 desc '+
      ' )'+
      'order by 日期';
  ADOQuerySelect.SQL.add(Format(sql,[NumEveryPage,NumEveryPage*(CurPage+1)]));
  ADOQuerySelect.Prepared;
  ADOQuerySelect.Active:=True;  //执行查询
 

  //ADOQuery1.Active:=true;
end;
 
当再次按按钮时会提示:
对象打开时不允许操作  的异常。定位在ADOQuerySelect.SQL.Clear;   //查询数据  这一行。
去网上找到原因是ADOQuerySelect 打开了。
1在开始的时候加入一句:ADOQuerySelect.Close;把它关闭吧。
运行发现conn.LoginPromot:=false那行也提示一样的错误。那就应该是把conn也关了。
2 conn.Close也加上,就是上面的代码注释的那两行加上就好了。
 
阅读(8261) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~