select FieldName1,FieldName2,FieldName3,FieldName4 from T_表 where FieldName5=0 要点击以后FieldName5自动加1
你的FieldName5怎么没有select?
procedure TDataSet.Edit; begin if not (State in [dsEdit, dsInsert]) then if FRecordCount = 0 then Insert else begin CheckBrowseMode; CheckCanModify; DoBeforeEdit; CheckParentState; CheckOperation(InternalEdit, FOnEditError); GetCalcFields(ActiveBuffer); SetState(dsEdit); DataEvent(deRecordChange, 0); DoAfterEdit; end; end;procedure TDataSet.CheckCanModify; begin if not CanModify then DatabaseError(SDataSetReadOnly, Self); end;canmodify属性没有write,只有read 而且 query和table 的canmodify属性不同,前者false 所以query不能用edit方法但我没看到为什么query和table的canmodify不同,高人指点
Query.FieldByName('字段名').AsFloat:=Query.FieldByName('字段名').AsFloat+1;
Query.Post;
begin
Edit;
FieldByName('Field1').AsFloat:=FieldByName('Field1').AsFloat+1;
Post;
end;
我不知道该怎么设置数据库,教教我啊!~~~~~~~~~
Query.Edit;
Query.FieldByName('FieldName').AsFloat:=Query.FieldByName('FieldName').AsFloat+1;
Query.Post;
大家还有什么别的方法啊????????谢谢!~~~~
并不能保证你的SQL返回的数据是可写的。
报的错说明返回的结果是只读的。
有几个可能:
1、返回的结果只有一条记录,这时是只读的
2、SELECT用了FROM之外的其他子句
3、SELECT了多个表的字段
where FieldName5=0
要点击以后FieldName5自动加1
begin
if not (State in [dsEdit, dsInsert]) then
if FRecordCount = 0 then Insert else
begin
CheckBrowseMode;
CheckCanModify;
DoBeforeEdit;
CheckParentState;
CheckOperation(InternalEdit, FOnEditError);
GetCalcFields(ActiveBuffer);
SetState(dsEdit);
DataEvent(deRecordChange, 0);
DoAfterEdit;
end;
end;procedure TDataSet.CheckCanModify;
begin
if not CanModify then DatabaseError(SDataSetReadOnly, Self);
end;canmodify属性没有write,只有read 而且
query和table 的canmodify属性不同,前者false
所以query不能用edit方法但我没看到为什么query和table的canmodify不同,高人指点
select只返回一条记录时query是readonly的
showmessage(booltostr(query1.canmodify))
showmessage(booltostr(table1.canmodify))为什么不同
我没有深入研究过vcl源码
to jinjazz(我是jin)
那你有没有看我这个贴子上所有的发言呢?你按照我前面说的,自己先试试,如何?
query1 select * from events
active 设true Query1.RequestLive := True; showmessage(booltostr(query1.CanModify)); query1.Edit;
先弹出0然后抛出异常信息... delphi7测试,table控件没有问题
query1 select * from events
active 设true Query1.RequestLive := True; showmessage(booltostr(query1.CanModify)); query1.Edit;有错?????????????就6步,那里错了
看你的短消息