CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

我要改变数据库的编辑状态,但为何老出错!!请高手指点迷津!!!

楼主everydayniceday(大卫)2001-07-02 00:51:43 在 Delphi / 数据库相关 提问

1.我做的数据库程序中,Table1先前处于Table1.ReadOnly:=True;状态,我想用  
  Table1.Active:=False;  
  Table1.ReadOnly:=False;  
  Table1.Active:=False;  
  Table1.Active:=True;  
  Table1.Edit;   来将其转至编辑状态。  
  ....在执行到   Table1.Edit;时弹出异常:exception   Class   EDBEngineError,"rec  
  ord   locked   by   another   user。...",结果状态没有得到改变,Edit没有成功,还是,Table1.State=dsBrowse。请问:这是什吗原因?如何解决?  
   
  2.再有,我想在DBGrid中进行纪录修改,但是发现除了第一行外纪录字段可以改变,唯有  
  第一行不可更改,还弹出异常。“record   locked   by   another   user。...”,请问这又是为什么?  
   
  3.如何在DBGrid中一个纪录被改变后,在转入下一个记录前提醒用户是否提交(post)修改,而不是系统不加提醒,非显式的执行   post   方法?  
   
  .... 问题点数:25、回复次数:22Top

1 楼C_Sharp(www.borlan.net)回复于 2001-07-02 07:51:14 得分 10

1.你设置ReadOnly时,应该先Close,不知你是怎么做的。  
  2.可能还是跟第一条有关吧  
  3.在BeforePost中写代码Top

2 楼InsideDelphi(ID)回复于 2001-07-02 08:22:08 得分 0

可能由另外一个程序打开了表单。Top

3 楼C_Sharp(www.borlan.net)回复于 2001-07-02 08:48:24 得分 0

to   InsideDelphi(ID)  
  这样的错误很常见,一般情况下是真的出错,而不是另外一个程序打开了表单。   Top

4 楼VictorG()回复于 2001-07-02 09:14:15 得分 10

beforescroll事件里提醒用户是否提交修改  
   
  procedure   TForm1.Table1BeforeScroll(DataSet:   TDataSet);  
  begin  
      if   Table1.State   in   [dsInsert,   dsEdit]   then  
          //提醒用户是否提交修改  
  end;  
  Top

5 楼Apollo47(阿波罗)回复于 2001-07-02 09:36:40 得分 0

也许你正在修改表的字段,你把所有的其他的程序全关闭。  
   
  Top

6 楼machin(刷新一下)回复于 2001-07-02 09:55:07 得分 0

要确定该表只有一个application在修改它。  
   
  可能是有多个连接了。。Top

7 楼oysy(太阳之子)回复于 2001-07-02 09:58:30 得分 0

第一,是不是有其它用户在使用.  
  第二,是不是你同是在编程序,而源程序打开了数据库.Top

8 楼everydayniceday(大卫)回复于 2001-07-02 10:01:50 得分 0

我只有一个程序使用此数据表单,但这个程序中有两个窗体要用到此表单。但我认为这只是  
  在同一个程序内使用,没有问题吧?  
  再有,我的两个使用此表单的不同窗体并不同时出现,都是在一个被Close后,才调用  
  Application.CreateForm()生成另一个,窗体被Close前,需要显式的调用Table.Close   吗?  
  如果不显式的调用,Table处于什么状态?  
  Top

9 楼everydayniceday(大卫)回复于 2001-07-02 11:16:56 得分 0

有可以回答上面问题的吗?  
  为什么我在改变Table的状态后(Table.Edit),后来又莫名其妙的给变回原来  
  状态(Table.state=dsBrowse)?Top

10 楼everydayniceday(大卫)回复于 2001-07-02 11:40:39 得分 0

有可以回答上面问题的吗?Top

11 楼C_Sharp(www.borlan.net)回复于 2001-07-02 13:16:52 得分 5

如果你是Free,就不需要再调用了,如果只是Close,还需要显式调用。Top

12 楼everydayniceday(大卫)回复于 2001-07-02 13:17:21 得分 0

为什么我在改变Table的状态后(Table.Edit),后来又莫名其妙的给变回原来  
  状态(Table.state=dsBrowse)?   Top

13 楼everydayniceday(大卫)回复于 2001-07-02 13:41:08 得分 0

“如果你是Free,就不需要再调用了,如果只是Close,还需要显式调用。   ”好像很有道理!  
  如果我只是Close,哪么Table处于什么状态?对同一程序的其他的窗体有什么影响?Top

14 楼everydayniceday(大卫)回复于 2001-07-02 14:22:12 得分 0

????Top

15 楼dhl2001(暗夜行路)回复于 2001-07-02 15:20:24 得分 0

ddddTop

16 楼everydayniceday(大卫)回复于 2001-07-02 15:58:23 得分 0

Table.Edit;方法使用起来问题很多,状态老变,害的我的程序在使用Table.state      
      判断的地方老不能按我想要的流程走。请问,Table.Edit;方法的正确使用方法?Top

17 楼everydayniceday(大卫)回复于 2001-07-03 09:48:22 得分 0

Table.Edit;方法使用起来问题很多,状态老变,害的我的程序在使用Table.state      
      判断的地方老不能按我想要的流程走。请问,Table.Edit;方法的正确使用方法?   Top

18 楼everydayniceday(大卫)回复于 2001-07-03 09:52:36 得分 0

凡是Move,Next,Prior,Insert,Append等函数都改变了Table.State属性为dsBrowse.   ”这句话对吗?    
  Table.Edit;方法使用起来问题很多,状态老变,害的我的程序在使用Table.state      
      判断的地方老不能按我想要的流程走。请问,Table.Edit;方法的正确使用方法?    
  这个问题如何解决?    
  Top

19 楼disonlee()回复于 2001-07-03 14:58:40 得分 0

我觉得你的问题太乱了,而且没有将你现在的源代码写清楚,干脆MAIL   TO   ME。  
  E-MAIL:ledison@21cn.com,定给你完满答复!Top

20 楼arrong(真的汉子)回复于 2001-07-04 15:08:20 得分 0

我觉得你的问题太乱了,而且没有将你现在的源代码写清楚,应当更清楚/Top

21 楼ylk_pop(文不达)回复于 2001-07-05 09:20:57 得分 0

一个最简单的方法:重新启动计算机。一步一步按照规范来做,你会发现什么问题都没有!Top

22 楼everydayniceday(大卫)回复于 2001-07-06 16:04:19 得分 0

我已经知道了。谢了各位Top

相关问题

  • 高人,指点迷津,关于数据库.....
  • SQL数据库的问题,请指点迷津!
  • sql语句怎会出错?各位大侠指点迷津!
  • SQL数据库中关于视图的问题,请指点迷津!
  • 数据库连接竟如此之难,望高手指点迷津!
  • 请高手指点迷津:后台数据库的安全和备份问题
  • 数据库出错
  • 数据库出错
  • 数据库出错
  • 我再做数据库时遇到一可笑的错误,请大侠指点迷津.

关键词

  • 数据库
  • 修改
  • 流程
  • 用户
  • 调用
  • 状态
  • 程序
  • 窗体
  • dsbrowse
  • 变

得分解答快速导航

  • 帖主:everydayniceday
  • C_Sharp
  • VictorG
  • C_Sharp

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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