一个简单例子:就放了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 :='突突突';

解决方案 »

  1.   

    TADOQuery返回的记录是只读的,不能修改。你要用修改的,用ADOTable或用临时表(我用后者)。
      

  2.   


    非也,TadoQuery 只要是select * from table 也是可以新建,修改,删除的
      

  3.   

    adodataset有连到数据库吗??  再说没必要这样写呀。。  
      建议用adoquery  
      

  4.   

    没有找到办法,最后只好用了adoquery.  改动大
      

  5.   

    我怎么不知道,adoquery不能修改表啊!!!!!能解释一下吗?