delphi为什么修改dbgrid会出错

a1335544452 2010-03-17 10:58:34
一个简单例子:就放了3个组件
DBGrid1: TDBGrid;
ADODataSet1: TADODataSet;
DataSource1: TDataSource;

代码是:
procedure TForm1.FormCreate(Sender: TObject);
var
P_DB : TADOConnection;
SqlStr:WideString;
begin
P_DB := TADOConnection.Create(nil);
P_DB.ConnectionString := 'Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=YXLibraryDB;Data Source=(local)';
P_DB.Connected := True;
SqlStr:='SELECT Title AS 题名 FROM MainBiblioTab';
ADODataSet1.Recordset := P_DB.Execute(SqlStr,cmdText);
ADODataSet1.Edit;//////到这里还是出错cannot modify a read-only dataset
ADODataSet1.FieldByName('题名').Text :='突突突';
...全文
98 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
遥远的青苹果 2010-03-27
  • 打赏
  • 举报
回复
我怎么不知道,adoquery不能修改表啊!!!!!能解释一下吗?
huangheguyun 2010-03-27
  • 打赏
  • 举报
回复
建议用adoquery
静远 2010-03-26
  • 打赏
  • 举报
回复
up~~~~~~~~
a1335544452 2010-03-26
  • 打赏
  • 举报
回复
没有找到办法,最后只好用了adoquery. 改动大
okgxs 2010-03-17
  • 打赏
  • 举报
回复
有这么写代码的吗?

IDWB 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 keiy 的回复:]
TADOQuery返回的记录是只读的,不能修改。你要用修改的,用ADOTable或用临时表(我用后者)。
[/Quote]

非也,TadoQuery 只要是select * from table 也是可以新建,修改,删除的
bewild 2010-03-17
  • 打赏
  • 举报
回复
OPEN试试?
柯本 2010-03-17
  • 打赏
  • 举报
回复
TADOQuery返回的记录是只读的,不能修改。你要用修改的,用ADOTable或用临时表(我用后者)。
randee_luo 2010-03-17
  • 打赏
  • 举报
回复
adodataset有连到数据库吗?? 再说没必要这样写呀。。
建议用adoquery

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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