DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: webb123
今日帖子: 3
在线用户: 2
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 gsq (鬼神泣) ★☆☆☆☆ -
普通会员
2003/6/3 17:54:29
标题:
我的呼救 浏览:2666
加入我的收藏
楼主: 大家好。我是新来的。我在做delphi的途中遇到了一些小麻烦。

我做了一个数据库是用ADOQUERY做的。可是当我执行查询操作时。

如果查找不到,我要的记录。那么来自ACCESSR的那一端就会发来

可怕的"EOF 或 BOF 有一个为真。或者当前的记录已被删除,所需的

操作要求一个当前的记录。'这是为什么呢??我是SQL语句查询的。

估计出错的代码如下:

procedure TForm3.BitBtn1Click(Sender: TObject);
var
mysql:string;

begin
if (combobox1.text=') or (combobox4.text=' )or (edit1.text=' )then
application.messagebox('请选择或添写完整!','注意',mb_ok+mb_iconwarning);

if combobox1.text=' then
begin
combobox1.SetFocus;
end
else
if combobox4.text=' then
begin
combobox4.SetFocus;
end
else
if edit1.text=' then
begin
edit1.SetFocus;
end
else
begin
form1.adoquery1.close;
form1.adoquery1.Prepared;
form1.adoquery1.open;
mysql:='select * from 成员信息 where ';
form1.adoquery1.Close;
form1.adoquery1.SQL.Clear;
if combobox4.text<>'类似于' then
form1.ADOQuery1.SQL.Add(mysql+combobox1.Text+combobox4.text+''+edit1.text+'')
else
form1.ADOQuery1.SQL.Add(mysql+combobox1.text+' like '+''+'%'+edit1.text+'%'+'') ;
form1.ADOQuery1.Prepared;
form1.adoquery1.Open;

if form1.ADOQuery1.RecordCount>0 then
form1.statusbar1.panels[0].text:=' 查询结果如上'
else
begin
application.messagebox('找不到相关的记录!','信息',mb_ok+mb_iconwarning);
form1.adoquery1.close;
form1.adoquery1.sql.clear;
form1.adoquery1.sql.add('select * from 成员信息');
form1.ADOQuery1. Prepared;
form1.adoquery1.Open;
end;
form3.close;
end;

end;

谢谢指教!
----------------------------------------------
-
作者:
女 ahfann (ahfann) ★☆☆☆☆ -
普通会员
2003/6/3 18:13:22
1楼: if form1.ADOQuery1.RecordCount>0 then
用if form1.adoquery1.eof=false then 换试试看!
----------------------------------------------
我不会,所以我问,我会,所以想知道更多!
作者:
男 gsq (鬼神泣) ★☆☆☆☆ -
普通会员
2003/6/3 19:44:26
2楼: 这们仁兄,你好。

我试了一下,好像不可以呀!

你看能不能再帮我想想办法。

谢谢你了!
----------------------------------------------
-
作者:
男 gsq (鬼神泣) ★☆☆☆☆ -
普通会员
2003/6/3 19:45:15
3楼: 再帮我想想办法吧!

多谢了!!!
----------------------------------------------
-
作者:
男 gsq (鬼神泣) ★☆☆☆☆ -
普通会员
2003/6/3 19:46:37
4楼: 对了,我忘了讲了。这个程序在WINDOW98下面是可以运行的。

只是在2000下面,好像会出错!
----------------------------------------------
-
作者:
女 yjcheng (sunny) ★☆☆☆☆ -
盒子活跃会员
2003/6/3 22:28:36
5楼: procedure TForm3.BitBtn1Click(Sender: TObject);
var
  mysql:string;
begin
  if combobox1.text=' then
  begin
    application.messagebox('请选择或添写完整!','注意',mb_ok+mb_iconwarning);
    exit;
    combobox1.SetFocus;
  end;

  if combobox4.text=' then
  begin
    application.messagebox('请选择或添写完整!','注意',mb_ok+mb_iconwarning);
    Exit;
    combobox4.SetFocus;
  end;

  if edit1.text=' then
  begin
    application.messagebox('请选择或添写完整!','注意',mb_ok+mb_iconwarning);
    Exit;
    edit1.SetFocus;
  end


  form1.adoquery1.close;
  mysql:='select * from 成员信息 where ';
  form1.adoquery1.Close;
  form1.adoquery1.SQL.Clear;
  if combobox4.text<>'类似于' then
    mysql :=mysql + '' + trim(combobox1.Text) + trim(edit1.text) + ''
    //form1.ADOQuery1.SQL.Add(mysql+combobox1.Text+combobox4.text+''+edit1.text+'')
  else
    mysql :=mysql + '' + trim(combobox1.Text) + ''like ' + '%' + '' + trim(edit1.Text) + '%'';
    //form1.ADOQuery1.SQL.Add(mysql+combobox1.text+' like '+''+'%'+edit1.text+'%'+'') ;
  //form1.ADOQuery1.Prepared;
  form1.ADOQuery1.SQL.Add(mysql);
  form1.adoquery1.Open;

  if form1.ADOQuery1.RecordCount>0 then
    form1.statusbar1.panels[0].text:=' 查询结果如上'
  else
  begin
    application.messagebox('找不到相关的记录!','信息',mb_ok+mb_iconwarning);
    form1.adoquery1.close;
    form1.adoquery1.sql.clear;
    form1.adoquery1.sql.add('select * from 成员信息');
    form1.ADOQuery1.Prepared;
    form1.adoquery1.Open;
  end;

  form3.close;
end;

----------------------------------------------
-
作者:
男 gsq (鬼神泣) ★☆☆☆☆ -
普通会员
2003/6/4 15:11:06
6楼: 你好,yjcheng!!

多谢你的帮助。

可是,我试了一下,好像不会执行任何SQL语句。

这是为什么呀!

我看,好像逻辑上了没有什么不对的呀!:

我想,再麻烦你帮我看一看。

谢谢!
----------------------------------------------
-
作者:
女 ahfann (ahfann) ★☆☆☆☆ -
普通会员
2003/6/5 11:34:14
7楼: form1.ADOQuery1.Prepared;把这个去掉试试,
不行的话,设设断点,看看哪一个出错!
----------------------------------------------
我不会,所以我问,我会,所以想知道更多!
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行74.21875毫秒 RSS