我要进行数据的增加和保存,但保存数据时总是提示如下错误 :
ads1:not in edit or insert mode.
我的程序情况如下:
一、TADODataSet属性如下:
name的值为:ads1;
CursorType的值为:ctStatic;
LockType的值为:ltbatchOptimistidc;
CommandText的值为:
SELECT F_CFGL.HH, F_CFGL.RQ_CF, F_CFGL.RQ_TD,F_CFGL.RQ_FD, F_CFGL.BZ_CF, F_CFGL.B_LC, G_DAYH.HM, G_DAYH.DZ, G_DAYH.CBD
FROM F_CFGL, G_DAYH
WHERE F_CFGL.HH = G_DAYH.HH
Order by F_CFGL.HH asc,G_DAYH.CBD asc
Commandtype的值为:cmdText
二、一个TdataSource和TDBGrid(TDBGrid有5列,即5个字段)
三、两个TSpeedButton,分别为“增加”、“保存”,它们的单击时间代码如下:
1、“增加”
If ads1.Active then
ads1.Insert;
2、“保存”
If not ads1.Active then Exit;
try
ads1.UpdateBatch();
Except
ads1.CancelUpdates;
Msgbox('提示信息','该用户已存在!');
end;
说明:我单击“增加”按扭时,TDBGrid列表中自动增加一空白行,我在各字段输入相应的值后,单击“保存”按钮时,便出现刚才所说的错误!
请问这是个问题应该怎么解决?
ads1:not in edit or insert mode.
我的程序情况如下:
一、TADODataSet属性如下:
name的值为:ads1;
CursorType的值为:ctStatic;
LockType的值为:ltbatchOptimistidc;
CommandText的值为:
SELECT F_CFGL.HH, F_CFGL.RQ_CF, F_CFGL.RQ_TD,F_CFGL.RQ_FD, F_CFGL.BZ_CF, F_CFGL.B_LC, G_DAYH.HM, G_DAYH.DZ, G_DAYH.CBD
FROM F_CFGL, G_DAYH
WHERE F_CFGL.HH = G_DAYH.HH
Order by F_CFGL.HH asc,G_DAYH.CBD asc
Commandtype的值为:cmdText
二、一个TdataSource和TDBGrid(TDBGrid有5列,即5个字段)
三、两个TSpeedButton,分别为“增加”、“保存”,它们的单击时间代码如下:
1、“增加”
If ads1.Active then
ads1.Insert;
2、“保存”
If not ads1.Active then Exit;
try
ads1.UpdateBatch();
Except
ads1.CancelUpdates;
Msgbox('提示信息','该用户已存在!');
end;
说明:我单击“增加”按扭时,TDBGrid列表中自动增加一空白行,我在各字段输入相应的值后,单击“保存”按钮时,便出现刚才所说的错误!
请问这是个问题应该怎么解决?
解决方案 »
- 怎么区分编译状态还是运行状态。
- Never-build package 'classlibPkg' requires always-build package 'EhLib70'
- 请高手指点cgi读写cookie问题?
- delphi技术问题。各路高手帮帮小弟啊! 急!
- 一个聊天软件,请帮忙测试!
- DBGrid小问题,来拿分吧
- 昨天我安装了C#感觉数据库方面比Delphi差远了,你有同感吗?
- 大家来谈谈,delphi的网络与通信部分主要学些什么
- 有沒有好的方式或控件顯示word文檔內容在窗體上?
- WINSOCK 控件问题
- 請問 Delphi 8的序列號是多少啊
- 有一个简单的问题请教 关于select sum() from table where field=:fieldvalues
with SaveQry do
begin
Connection := FrmDm.AdoStandard;
Close;
Sql.Clear;
Sql.Add('Select * From TestInfo Order By AutoID');
Prepared;
Open;
Last;
Edit;
FieldByName('Photo').AsString := BlobContentToString(TmpPhotoFileName);
Post;
end;
end;
If ads1.Active then
ads1.Insert;
改为
If ads1.Active then
begin
ads1.Insert;
ads1.Post;
end;
则,我一点击“增加按钮”,TDBGrid列表中还没有增加一空白行就出现如下错误:
ads1:not in edit or insert mode.
你代码中的Sql是某个控件的名称吗?
//////////////
说明你还没处于编辑状态.
你要先把他设为EDIT
大概代码为:
if ads1.State=dsEdit then
ads1.Post;
怎么个改为EDIT?我把“增加”和“保存”按钮的代码分别改成如下,但是提示同样的错误。
增加
If ads1.Active then
begin
ads1.edit;
ads1.Insert;
end;
保存:
try
ads1.Edit;
ads1.UpdateBatch();
Except
ads1.CancelUpdates;
Msgbox('提示信息','该用户已存在!');
end;
问题还没搞定啊,大哥!
ADODataSet1.Post;
ADODataSet1.UpdateBatch();