看这是什么错误?(数据库方面的) (50分)

  • 主题发起人 主题发起人 yuzhizhi
  • 开始时间 开始时间
Y

yuzhizhi

Unregistered / Unconfirmed
GUEST, unregistred user!
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From 会员 Where (姓名=:Name) and (学号=:Number)');
Query1.ParamByName('Name').AsString:=Edit1.Text;
Query1.ParamByName('Number').AsInteger:=StrToInt(Edit2.Text);
Query1.Prepare;
Query1.Open (//会出现Cannot Modify a Read-Only DataSet)
Query1.Edit;
我把"会员"数据表修改了一个字段值!
Query1.Post;
怎么会这样子了?看一下上面的"??"
 
应该用Open,不用ExecSQL。
原因是不是因为Query设成Read-Only了?
 
Query1.ExecSQL应为Query1.Open
 
应该使用open啊
query1.execsql
改为:query1.open;
>>??我换成Query1.Open (//会出现Cannot Modify a Read-Only DataSet)
这应该是edit出的错
 
干脆把QUERY换成TABLE!
 
如果query为readonly,建议查看query的requestlive属性。
 
query的requestlive属性应改为true
 
query的requestlive属性改为true;
query1.execsql 改为:query1.open;
 
以上报错都是由于执行QUERY1.edit引起的,如果QUERY使用SELECT,一般使用OPEN打开,
如果使用DELETE和UPDATE等,才使用EXECSQL。
如果要使用QUERY编辑数据,需要用CachedUpdates、UpdateObject属性和UpdateSQL控件
来配合使用
 
to :jlchong
用CachedUpdates、UpdateObject属性和UpdateSQL这些我没有用过!
谁可以说明一下吗?
 
同意楼上的,在插入和修改时只用Query1.ExecSQL就可以了,
不用再open了,而要是查询就用open可以得到你要的数据。
 
query的requestlive属性改为true;
query1.execsql 改为:query1.open;
query.execsql不返回结果!
 
问题应被一开始的两位解决了
 
多人接受答案了。
 
后退
顶部