毕业设计最后的问题,急!
我的程序运行到*句的时候,就报错:Table_state: not in edit or insert mode.
这是怎么回事?
请各位高手指点了,我的毕业设计都完成了,只是差这一点更改数据库中某个字段的值,错在哪里?急!
TLocateOptions Opts;
Opts.Clear();
Opts << loCaseInsensitive;
AnsiString filterStr="";
for(i=0;i<counter;i++){
filterStr+="id="+zdz[i].title_id+" or ";
DataModule3->Table_state->Edit();
DataModule3->Table_state->Locate("title_id",zdz[i].title_id,Opts);
* DataModule3->Table_state->FieldValues["search_times"] = DataModule3->Table_state->FieldValues["search_times"]+1;
};
DataModule3->Table_state->Post();
问题点数:20、回复次数:8Top
1 楼zhoudazhao()回复于 2002-06-08 00:24:55 得分 0
我执行了 Edit吖,为什么还是报错?Top
2 楼child_bj(今天能看见山)回复于 2002-06-08 00:26:24 得分 5
不是吧
你的表OPEN了吗?Top
3 楼zhoudazhao()回复于 2002-06-08 00:35:11 得分 0
active已经是true了。Top
4 楼zqone(zqone)回复于 2002-06-08 00:36:07 得分 15
可能是Locate的问题,执行了这个函数后,就自动执行了post。
你把Locate放到前面试试。Top
5 楼zhoudazhao()回复于 2002-06-08 00:38:03 得分 0
好,我试试看。Top
6 楼zhoudazhao()回复于 2002-06-08 00:41:51 得分 0
就是这个原因,果然是高手!Top
7 楼darkinger(Ganger)回复于 2002-06-08 00:49:17 得分 0
你在给表的字段赋值前应该让表的状态处于编辑状态,否则是不能编辑的,因为一般情况下表是处于dsBrow的状态,只有处于dsEdit状态时才能编辑,
你只要在你的那句前加上DataModule3->Table_state->Edit();将其状态转换为dsEdit就行了Top
8 楼zhoudazhao()回复于 2002-06-08 07:58:42 得分 0
原因正如zqone所说。
locate影响了edit状态。Top




