关于更新 DBGrid 的问题,老提示 can't modify a read-only dataset

zhangjing1979666 2004-11-12 01:23:54
我用 Delphi5+SQL2000,连接一个表,前台用 DBGrid 显示数据,我想实现的功能是:单击一个按钮,让其中的字段的值变化,不知道哪里出现错误,请给予帮助,部分代码:
procedure TForm1.Button3Click(Sender: TObject);
begin
if (DataSource1.DataSet.Active) then
begin
with DataSource1.DataSet do
begin
Filter:='sm='''+edtSM.Text+''' and dj='''+edtDJ.Text+''' and cbs='''+edtCBS.Text+'''';
Filtered:=True;
if RecordCount<>0 then
begin
Edit;
FieldByName('sjsl').Value:=edtSJSL.Text;
FieldByName('kcsl').Value:=edtKCSL.Text;
Post;
end;
end;
end;
end;
...全文
208 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wintyccs 2004-11-12
  • 打赏
  • 举报
回复
这样吧,你把QUERY1.CachedUpdates值改成true试下.
zhangjing1979666 2004-11-12
  • 打赏
  • 举报
回复
看来两层结构是不能改了,如果改,只能拿 Query 改了,要不三层结构怎么出现的,呵呵,谢谢大家的帮助,分已加上
zhangjing1979666 2004-11-12
  • 打赏
  • 举报
回复
我看了 DataSource1.DataSet.Open不行,Query1.Modified 是 False,但是我 Query1.Modified:=True; 或者 Query1.Modified; 都报错,不知道应该怎么弄
coeltdit 2004-11-12
  • 打赏
  • 举报
回复
看看Query1.Modify是值是True还是False ?
jacklee_888 2004-11-12
  • 打赏
  • 举报
回复
加一句 DataSource1.DataSet .open 应该就行了.
zhangjing1979666 2004-11-12
  • 打赏
  • 举报
回复
小弟这个也试过了query1.RequestLive:=true,不管用啊,这个问题我感觉挺简单的,唉!急死我了
gxgyj 2004-11-12
  • 打赏
  • 举报
回复
query1.RequestLive:=true;
zhangjing1979666 2004-11-12
  • 打赏
  • 举报
回复
我用的是 Query,我所希望的结果是:前台 DBGrid 已经显示了记录,Query.open,单击一个按钮能改变 DBGrid 中某个字段的值,用 Datasource.Dataset前台更新,而不改变数据库中的内容,所以用 DataSource.Dataset
pengxuan 2004-11-12
  • 打赏
  • 举报
回复
不能修改一个只读的数据集.
Jumpi 2004-11-12
  • 打赏
  • 举报
回复
你是用什么DataSet?如果是TQuery,你在论坛中搜索一下
zhangjing1979666 2004-11-12
  • 打赏
  • 举报
回复
我被卡住了,后面的事情进行不了,希望大家帮助,肯定有分的
zhangjing1979666 2004-11-12
  • 打赏
  • 举报
回复
数据库没有只读,不知道应该设置哪里,不知道哪位朋友给帮助,还有 dataset 里面我看过好多属性,好像也不管用
TieShou 2004-11-12
  • 打赏
  • 举报
回复
DataSet 只读。检查一下DataSet的设置。
要不就是数据库只读了。

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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