Oracle的TQuery涉及了时间字段如何让RequestLive为TRUE?(200分)

  • 主题发起人 主题发起人 Cinway
  • 开始时间 开始时间
C

Cinway

Unregistered / Unconfirmed
GUEST, unregistred user!
用的是Delphi 5.0和 Oracle 8.1.6数据库编程,在Form里面需要实现以下功能:
:对时间段进行查询,而且要求查询结果可以编辑。
时间字段类型为DATE,在TQuery里面用的SQL语句如果不包含to_date()函数就无法查询,
但是如果包含了to_date()函数,查询到的结果集就无法进行修改。即RequestLive不能为TRUE。
怎么办?我的解决方法是,凡是涉及到时间查询的,就将时间的查询弄到Filter里面去而不是SQL
语句里面,这样TQuery的结果就可以编辑,但是 这样查询起来速度就慢了。
有没有什么好方法可以在SQL查询时间段结果的时候TQuery仍然可以设置为TRUE的 ?
或者有没什么方法可以在RequestLive为FALSE的情况下可以修改查询结果数据?
用UpdateSQL么?但是我的Form上面的TDBEdit控件是直接和TQuery相联系的,如何用
UPdateSQL来更新数据?
谢谢!
 
我想问题不在于时间字段,我也用过oracle,用date,request live没有问题
你把你的表加个主关键字看,query.updatewhere = updatekeyonlye


-------
http://www.8421.org
 
我的表是不能加主关键字的,如何办?
 
奇怪,什么表不能加关键字?
只要有一两个字段能否唯一确定一条记录都行
oracle一般用sequence,在触发器里面在表执行插入时自动填写一个字段
或者
insert into t(id, f1, ...) values(aseq.nextval, :v1, ...)
 
连Oracle,抛弃Borland的BDE,使用DOA控件吧。
 
oracle查询的结果集RequestLive不能为TRUE
如果要编辑,用缓存更新updatesql
 
如果你的查询条件里面没有substring而只是简单的查询条件,那就可以,不用updatesql
 
我也是碰到了这个问题啊.
我加了primary key也不行啊.
 
首先把你的SQL语句全部大写。并使用query+UPdateSQL来实现你的要求。
 
SoftBoy,谢了,看来只有用你的方法了.
Cinway, 你最后怎么处理这个问题的啊
 
前段时间终于解决了Oracle下Delphi 的TQuery控件RequestLive的设置问题,现在不用to_date()函数来查询时间段也没问题了。而且RequestLive:=true也能运行通过。
 
怎么做的
 
后退
顶部