can't modify a read-only dataset

时间:2022-09-11 18:22:43
我用DBGrid,DataSource和TQuery组件,想修改DBGrid中显示出来的数据库中的数据,
总是提示错误:can't modify a read-only dataset,请问怎么整啊???? 

14 个解决方案

#1


修改你的 TqdoQuery 属性中的  ReadOnly属性为  false;

#2


can't modify a read-only dataset不能对只读的数据集体进行修改

看看数据集的ReadOnly属性

#3


can't modify a read-only dataset
不能   修改   一个 只读      数据集

#4


把tquery的autoapply改为true,而且最好给tquery加个关联的TUpdateSQL控件,并设置相应的SQL语句

#5


引用 3 楼 zzflover 的回复:
can't modify a read-only dataset 
不能  修改  一个 只读      数据集

#6


当前不能修改,字段是只读的。

#7


1.如果你使用的是TQuery组件的话,当中的SQL语句是单表操作的话是不会出现楼主的错误的。
2.如果SQL语句是多表联合查询得到的,那么这时候数据集是只读的。你需要使用单表操作编辑,可以联合DBLookupList来完成你的目的。

#8


英语不会菜到这种程度吧

#9


引用 7 楼 SmallHand 的回复:
1.如果你使用的是TQuery组件的话,当中的SQL语句是单表操作的话是不会出现楼主的错误的。
2.如果SQL语句是多表联合查询得到的,那么这时候数据集是只读的。你需要使用单表操作编辑,可以联合DBLookupList来完成你的目的。

.如果SQL语句是多表联合查询得到的,那么这时候数据集是只读的,
其实加个Tupdatesql就可以写啦,不用那么复杂

#10


上面几位讨论的问题,是不是具有普遍性的,我的意思是说BDE,ADO,ODAC,都可以向上面这么处理呢?其它的没用过了。我之前用ODAC是也遇见了楼主的问题。后来放弃了DBGrid,用的StringGrid。也差不多,因为我做录入多一些,查询是用image的画布搞定。

#11


ADODataSet.FieldByName('sss').ReadOnly := False;

#12


引用 11 楼 xmfan2000 的回复:
ADODataSet.FieldByName('sss').ReadOnly := False;

#13


如果是用TQuery控件的话,要设置RequestLive为true.

#14


迟来的结贴,sorry!!

#1


修改你的 TqdoQuery 属性中的  ReadOnly属性为  false;

#2


can't modify a read-only dataset不能对只读的数据集体进行修改

看看数据集的ReadOnly属性

#3


can't modify a read-only dataset
不能   修改   一个 只读      数据集

#4


把tquery的autoapply改为true,而且最好给tquery加个关联的TUpdateSQL控件,并设置相应的SQL语句

#5


引用 3 楼 zzflover 的回复:
can't modify a read-only dataset 
不能  修改  一个 只读      数据集

#6


当前不能修改,字段是只读的。

#7


1.如果你使用的是TQuery组件的话,当中的SQL语句是单表操作的话是不会出现楼主的错误的。
2.如果SQL语句是多表联合查询得到的,那么这时候数据集是只读的。你需要使用单表操作编辑,可以联合DBLookupList来完成你的目的。

#8


英语不会菜到这种程度吧

#9


引用 7 楼 SmallHand 的回复:
1.如果你使用的是TQuery组件的话,当中的SQL语句是单表操作的话是不会出现楼主的错误的。
2.如果SQL语句是多表联合查询得到的,那么这时候数据集是只读的。你需要使用单表操作编辑,可以联合DBLookupList来完成你的目的。

.如果SQL语句是多表联合查询得到的,那么这时候数据集是只读的,
其实加个Tupdatesql就可以写啦,不用那么复杂

#10


上面几位讨论的问题,是不是具有普遍性的,我的意思是说BDE,ADO,ODAC,都可以向上面这么处理呢?其它的没用过了。我之前用ODAC是也遇见了楼主的问题。后来放弃了DBGrid,用的StringGrid。也差不多,因为我做录入多一些,查询是用image的画布搞定。

#11


ADODataSet.FieldByName('sss').ReadOnly := False;

#12


引用 11 楼 xmfan2000 的回复:
ADODataSet.FieldByName('sss').ReadOnly := False;

#13


如果是用TQuery控件的话,要设置RequestLive为true.

#14


迟来的结贴,sorry!!