为什么总是提示dataset not in edit or insert mode

txchun 2001-08-06 07:59:43
各位大虾,我在向一数据库表中写入数据是,运行总是提示dataset not in edit or insert mode,程序如下,请各位帮组

with RateTable do
begin //1
Open;
DisableControls;
try
insert;
IndexFieldNames:='Number';
FieldByName('Number').AsString:=CBNumber.Text ;
FieldByName('StandardRate').AsFloat:=StandardCount;
FieldByName('BackgroundRate').AsFloat:=BgAfterCount;
post;
finally
EnableControls;
end;
end;
...全文
1943 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
txchun 2001-08-07
  • 打赏
  • 举报
回复
谢谢,我把IndexFieldNames:='Number';放在INSERT前面,这个问题解决,但同时出现了index is read only的提示,这是什么原因
morphia 2001-08-06
  • 打赏
  • 举报
回复
你的IndexFieldNames为什么一定要在这里赋值呀?放到最前面行不行???
你是不是有一个字段的OnChange事件里面有东东?
如果是的话,检查一下看看嘛,把代码拿出来看看喽
hety 2001-08-06
  • 打赏
  • 举报
回复
这样总行了吧
hety 2001-08-06
  • 打赏
  • 举报
回复
with RateTable do
begin //1
Open;
DisableControls;
try
insert;
IndexFieldNames:='Number';
FieldByName('Number').AsString:=CBNumber.Text ;
FieldByName('StandardRate').AsFloat:=StandardCount;
FieldByName('BackgroundRate').AsFloat:=BgAfterCount;
//
if state in [dsedit,dsinsert] then
post;
//
finally
EnableControls;
end;
end;
radar 2001-08-06
  • 打赏
  • 举报
回复
没理由不行
txchun 2001-08-06
  • 打赏
  • 举报
回复
加edit不行
hety 2001-08-06
  • 打赏
  • 举报
回复
应该是post时出的错,去掉试试!!
tikkypeng 2001-08-06
  • 打赏
  • 举报
回复
gz
hety 2001-08-06
  • 打赏
  • 举报
回复
To RAbbit_Lap():
Insert之前还要先edit吗??
txchun 2001-08-06
  • 打赏
  • 举报
回复
对,我已经查了,CanModify的值为TRUE,如果是这样,该怎么解决呢,急盼回答
Rabbit_Lap 2001-08-06
  • 打赏
  • 举报
回复
with RateTable do
begin //1
Open;
DisableControls;
try
Edit;//加入此使RateTable处于编辑状态下
insert;
IndexFieldNames:='Number';
FieldByName('Number').AsString:=CBNumber.Text ;
FieldByName('StandardRate').AsFloat:=StandardCount;
FieldByName('BackgroundRate').AsFloat:=BgAfterCount;
post;
finally
EnableControls;
end;
end;
txchun 2001-08-06
  • 打赏
  • 举报
回复
对,我已经查了,STATE的值为DSBROWSE,如果是这样,该怎么解决呢,急盼回答
morphia 2001-08-06
  • 打赏
  • 举报
回复
不好意思,与补丁无关,你可以看看完了
FieldByName('Number').AsString:=CBNumber.Text ;
后的ADODataSet的State的值是什么?如果是dsBrowse 则表示你的字段的ONchange事件
将该adodataset的值给post掉了
morphia 2001-08-06
  • 打赏
  • 举报
回复
是D5吗?补丁吧
ch81 2001-08-06
  • 打赏
  • 举报
回复
CanModify属性表示你能不修改。你看看这个值是true或false;
下面英文也介绍有些数据为什么不能修改。
indicates whether the dataset permits write access to data.
property CanModify: Boolean;
Description
As implemented in TDataSet, this property is False if the dataset is unidirectional, and True otherwise. Descendant classes reimplement this property as follows
For unidirectional datasets, CanModify is always False.
For client datasets, CanModify reflects the value of the ReadOnly property and whether a data provider supplied a read-only data packet.

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧