CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  数据库及相关技术

为什么ADOQuery不能Delete和Update????

楼主ming6424(大笨蛋100分)2005-01-07 17:58:10 在 C++ Builder / 数据库及相关技术 提问

查询没问题  
  更新和删除总实现不了  
   
  是什么原因???? 问题点数:20、回复次数:14Top

1 楼3996906(我只是建议,不提供最后的解决方法)回复于 2005-01-07 18:01:43 得分 2

可以的啊,用错了吧Top

2 楼3996906(我只是建议,不提供最后的解决方法)回复于 2005-01-07 18:02:17 得分 2

偶用过对sql2k   的这些操作~~~~~~~~~~~别的不知道Top

3 楼ming6424(大笨蛋100分)回复于 2005-01-07 18:04:35 得分 0

我的意思是  
  有没有其他原因导致这种情况???Top

4 楼samchoy(老蔡)回复于 2005-01-07 20:34:06 得分 3

插入、更新、删除等查询要用ExecSQL(),不能用Open()或Active=trueTop

5 楼558047(三个代表万睡!八荣八耻万睡!)回复于 2005-01-08 08:00:50 得分 3

插入、更新、删除等查询要用ExecSQL(),不能用Open()或Active=true  
  对头Top

6 楼h98458(零点起飞)回复于 2005-01-08 08:09:55 得分 4

用ADOQuery查询出来的记录是只读的,不能用delete(),Edit(),update()方法,只能用  
  Add()进行这些操作  
  另:  
  delete,update,inser   into   等语句用ExecSQL()方法  
  select语句用open()方法Top

7 楼hitmonkey(猴子)回复于 2005-01-08 08:29:45 得分 3

不对阿,可以更新的,只不过在更新前需要调用Edit(),然后再调用post(),同样删除也是一样的。但是一定要记住一定要将状态设置为乐观锁!Top

8 楼ming6424(大笨蛋100分)回复于 2005-01-08 09:23:20 得分 0

大家能不能写段详细的代码啊???  
   
  刚学BCB不到2周啊Top

9 楼ming6424(大笨蛋100分)回复于 2005-01-08 10:31:49 得分 0

ADOQuery1->SQL->Clear();  
  ADOQuery1->SQL->Add("DELETE   from   db1   where   (   DB1FN   =   '"+filename+"')");  
  ADOQuery1->ExecSQL();  
  ADOQuery1->Close();  
   
  每次运行到ADOQuery1->ExecSQL();  
  都弹出一个对话框,提示  
   
  Access   violation   at   address   1F487CAB   in   module   'maado15.dll'.Write   of   address   010DA008Top

10 楼h98458(零点起飞)回复于 2005-01-08 10:48:49 得分 2

改成这样:  
  ADOQuery1->SQL->Add("DELETE   from   db1   where   DB1FN   =   '"+filename+"'");Top

11 楼ming6424(大笨蛋100分)回复于 2005-01-08 10:53:28 得分 0

To   h98458(零点起飞)   :  
  还是弹出一个对话框,提示  
   
  Access   violation   at   address   1F487CAB   in   module   'maado15.dll'.Write   of   address   010DA008  
  Top

12 楼ming6424(大笨蛋100分)回复于 2005-01-08 10:59:02 得分 0

是msado15.dllTop

13 楼sunliwen780502(孙立文)回复于 2005-01-08 11:17:53 得分 1

你把CodeGuard启动起来,看看吧。楼上的答复应该可以了。Top

14 楼ming6424(大笨蛋100分)回复于 2005-01-08 11:47:37 得分 0

完整代码如下:  
  void   __fastcall   TForm1::DeleteD1Click(TObject   *Sender)  
  {  
          TListItem   *item;  
          AnsiString   filename;  
   
          //   可能选中多项  
          while(   ListView1->Selected   )   {  
   
                  item   =   ListView1->Selected;  
   
                  filename   =   item->Caption;  
                  filename   =   filename.c_str();  
   
                  //   从数据库中删除  
                  ADOQuery1->SQL->Clear();  
                  ADOQuery1->SQL->Add("DELETE   from   db1   where   (   DB1FN   =   '"+filename+"')");  
                  ADOQuery1->ExecSQL();  
   
        //   从ListView中删除  
          ListView1->DeleteSelected();  
          }  
  }  
   
  运行后,CodeGuard的记录文件如下:  
  Error   00001.   0x400000   (Thread   0x1904):  
  Exception   0xC0000005:   Access   violation   at   0x905A4D.  
  Call   Tree:  
        0x00905A4D  
        0x1F668EF4(=MSDART.DLL:0x01:007EF4)  
        0x1F6687C7(=MSDART.DLL:0x01:0077C7)  
        0x77F830E7(=ntdll.dll:0x01:0020E7)  
        0x77F8EE02(=ntdll.dll:0x01:00DE02)  
        0x77E869C3(=KERNEL32.DLL:0x01:0259C3)Top

相关问题

  • 为什么ADOquery的SQL不能为UPDATE语句?
  • adoquery的update问题
  • 问:用bcb6.0的adoquery控件访问access数据库时,update语句不能正确执行??
  • 为什么ACCESS库只能读不能update和delete
  • 同一个Trigger里能不能同时包含Insert,Update,Delete??
  • ADOQuery
  • ADOQuery……
  • ADOQuery
  • delete不能删除?
  • 帮新手看一下数据为何不能用update或delete操作?

关键词

  • 查询
  • db
  • dll
  • access
  • sql
  • adoquery
  • execsql
  • 删除
  • listview
  • delete

得分解答快速导航

  • 帖主:ming6424
  • 3996906
  • 3996906
  • samchoy
  • 558047
  • h98458
  • hitmonkey
  • h98458
  • sunliwen780502

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo