关于QUERY的用法!!(50分)

  • 主题发起人 主题发起人 zaochao
  • 开始时间 开始时间
Z

zaochao

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用QUERY查询本地PARDAX数据库时。查出来的结果不能用DBNAVIGATOR修改,
请问要怎么做才能直接查出来后就可以修改!!
 
看看你的数据库是不是设置了只读属性
 
Query出来得结果一般是Readonly的
你可以把Query.RequestLive设为True
 
查询出来后可以编辑了,
但是用QUERY排序过后怎么又不能编辑了啊??
 
readonly:=false
 
QUERY没有READONLY这个属性的!
 
adoquery.edit;
{操作}
 
刚才查了参考书,书上说:
PARADOX数据库用本地SQL查询只能返回只读结果集,所以用REQUESTLIVE设置TRUE是不可以的,
书上还说可以采取以下办法:
再增加一个QUERY控件QUERY2,在QUERY2中设置修改于UPDATA对QUERY1中的数据进行修改操作,
可是看不懂这句话的意思,谁能来段源码解释一下??
 
没人知道吗?
 
QUERY2:update ... from (QUERY1)
 
update 后面好象要写SET 语句啊
可我想在DBGRID中直接修改的,
QUERY2中该怎么设置?
具体的UPDATE语句是不是直接写在QUERY2的SQL属性中?
不好意思,我SQL还不太熟悉,麻烦大家了!!
 
注意两点,1,当在sql语句中用了order by之类的东东后,query就不能更改了。
要用排序就只能使用索引的方法了。
2,REQUESTLIVE要设置为TRUE,表示它是可以更改的。

 
SQL索引如何写?
要查询和索引同时用?
 
用Table吧!
 
当涉及到多表查询时,不能修改,因为修改的数据,不知道来自那个表
 
update table_naem set 列=‘值’where select * from table_name where 条件
update 的 table_naem和select 的table_naem要为同一个表。
 
接受答案了.
 
也请问大家一个问题:怎么用adotable来修改多个纪录的同一个字段值。我用下边的方法:
adotable1.active:=true;
adotable1.First;
while not adotable1.Eof do
begin
if (ADOTable1.Locate('学习阶段;章节', VarArrayOf(['初一上册','第一章']), []))
then begin
adotable1.Edit;
adotable1.FieldByName('题目总数').AsInteger:=4;
adotable1.Post;
end;
adotable1.Next;
end;
adotable1.refresh;
就是这段代码,是个死循环。post之后指针总是指到表头。请问:如果就用adotable,这个程序到底该怎么写?(用adoquery好象不支持种文字段,是吗?)
它实现的功能就是:把数据表中一些(不止一个)字段的值修改并保存
 
后退
顶部