如何调用TQUERY类的方法修改表格中的某一条记录?请高手指教。(100分)

  • 主题发起人 主题发起人 dawei919
  • 开始时间 开始时间
D

dawei919

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用了一个QUERY控件,在其SQL属性中,用 SELECT 语句对数据表进行有条件的
选择操作。如 SELECT * FROM student.db order by num;
并将选择产生的结果输出在DBGRID控件中。query控件的requestlive属性已设成TRUE。
问题是调用query控件的delete,append,insert等各种方法对数据表中某一条记录
进行各种修改时,程序就报错,说"table is read only”
为什么会出现这种问题?我怎么样才能符合条件的某一条记录进行各种修改呢?
请高手指教,谢谢!!!




 
你的NUM字段不是key吧!ORDER BY KEY是可以的,否则QUERY只能作查询。
 
用Tquery 查询 是如要修改数据集的话,是不能带order by 的。
 
可以修改的,但是要与UpdateSQL控件一起使用,具体方法你可以搜索一下旧贴,有很多的。
 
用Tquery查询时,如要带order by,就不能对该QUERY进行编辑、添加和删除。
 
荷塘新月:
"如要带order by,就不能对该QUERY进行编辑、添加和删除"

不会吧,又不是 group by


append 前一定要使 TQuery是编辑状态
Query1.Edit;
Query1.Append;
Query1.Post;
当然,有时候有的错误是说不清的,
若不行,你就用
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Update tablename set field1=value');
Query1.ExecSQL;

 
对了,你又保证你修改的字段是数据库中允许修改的
 
单表查询的修改话可以不用UpdateSql控件,多表查询出来的数据修改一定要UpdateSql控件
 
这个问题我也有遇到,用QUERY.open返回的结果集不能删除,(没有用ORDER BY),当用“query.delete”时,系统提示
’table is readonly‘。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
956
DelphiTeacher的专栏
D
D
回复
0
查看
892
DelphiTeacher的专栏
D
后退
顶部