这是怎么了? SW(100分)

  • 主题发起人 主题发起人 atman
  • 开始时间 开始时间
你是怎么了
 
对不起! 按了一下回车就成这样了!
算了!保护我们dfw的宝贵空间,我就用这个标题了,我的问题是这样:

我的SQL 是:
datam.AppendLAQuery.Close;
datam.AppendLAQuery.ParamByName('OBsh').AsInteger:=datam.ALLlaQuery.fieldbyname('BSH').asInteger;
datam.AppendLAQuery.ParamByName('Ond').AsString:=datam.ALLlaQuery.fieldbyname('ND').AsString;
Datam.AppendLAQuery.Prepare;
datam.AppendLAQuery.Open;
执行后就出现
Dataset not in edit or insert mode
这是为什么呀?
 
首先table1.edit;

你的语句。
最后table1.post.
 
在Prepare;7前加上RequestLive:=True;
 
同意Chenlili
 
大家理解错了!
我只是想查询出数据,而不想进行编辑!
我只是用了一个SELECT 嘛,何必出
Dataset not in edit or insert mode 呢?
真是可疑!
我用的是SQL SERVER 7
这到底是怎么一回事呢?
 
确定是 Open 出错吗?还是后面写了编辑语句,或者触发了其他编辑事件。
 
在close之前先clear;掉,试一试
 
我就是这些语句!
我用了DATABASE 和 Session 控件!
 
不用session吧,我从来不用它
 
Prepare有什么用?去掉试试。
 
试一试先prepare再设置参数
 
感谢大家 积极献策!
我知道是怎么回事了! (不敢说怕挨揍呀)

原来是一个第三方的数据控件搞的鬼(DBEDIT的扩展 不知名有源码)
这个破控件只要一显示就触发onchange,如果值等于空就自动填零
所以就出现了以上错误!所以大家一定要慎用第三方控件,否则连错误
都找不出来呀!!!
 
多人接受答案了。
 
后退
顶部