query连接远程库不能修改问题!高手快来抢分啊(100分)

  • 主题发起人 主题发起人 peggy
  • 开始时间 开始时间
P

peggy

Unregistered / Unconfirmed
GUEST, unregistred user!
query控件连接远程数据库,要求可以通过query修改数据,且修改的数据不立即
反应到数据库中去。我用的数据库是Oracle8i (linux),我设置query属性如下:
database属性连接到此数据库,置query的Cachedupdates属性为true,置
Requiredlive属性为True,然后置SQL属性为简单的select查询。但是不能连接数
据库,总是提示“数据库表或者视图不存在”!
我将Requiredlive属性改为False,其它与上面相同,则可以成功显示数据。但是
不能修改,望高手帮忙!即能够通过query显示数据,且能修改!
 
用 updatesql 控件试试,很好用的
 
所有的query控件都可以实现本地数据库的编辑,但是远程的不行。

updatesql控件我试过了,不行

还有哪位高手快来救命!最好有详细程序。
 
连接SQL SERVER 可以的
 
使用updatesql
最后,或者执行了一批语句之后,要提交的
反正你所作的修改,都要进行提交,才能反馈到数据库中
 
这个问题我也遇到过,程序总是提示本地没有视图或者本地没有足够的表空间来创建
临时字段,但同样的,用table控件倒是可以编辑,添加,删除,也可以保存,不只是不是库的问题?![?]
 
Requiredlive=true 时,不是对所有的sql 语句都支持的,我也遇上过这中问题,你不妨
把语句贴出来看看!
 
我用的是oracle数据库,不知道有没有人跟我一样?
 
我知道当query的requirelive属性为true,sql语句中不能包含where,groupby等,
我的sql语句很简单,就是select * from t_...,这样的语句都不能用
 
你的SQL语句中不能有聚集函数。
你可以这样实验:就写一SQL,它只选一个表的所有字段出来,然后再试看能不能修改。
 
>>query的requirelive属性为true,sql语句中不能包含where,groupby等,
可以包含where的.
 
对,也是可以包含where 的,但不是所有的where 子句都可以的。:)
你把你的sql语句全部大写,试一下!
 
to :peggy:
你在开玩笑,如果只提示为你所说的错误,很明显是而且绝对是你 select tablename。。。
时,你的tablename表不存在,这可能你写错了表名。或者连接了数据库。
另外,query只是显示数据时,跟requestlive没有关系。
我们公司有一个成熟的产品,是delphi+bde+oracle客户端+oracle8.05 server+windows
与你所说的只有平台不同,很正常的。

Tquery控件,本身是只读的。需要与Tsqlupdate一起使用。即设置其update=sqlupdate1
Requestlive=false.然后需要配置Sqlupdata1的三种SQL 语句。
提交数据时,调用 Tquery 的applyupdate()就可以了。绝对可以的。
如果还不清楚。把程序发给我看看。
Evol_beautypeng@yeah.net
 
SQL SERVER用query时把它的requirelive属性为true是决对可以的。但ORACLE我没用过。
pcc_mmz1说的用UPQUERY是用在多表JION时才用的。当然,你一个表 也用肯定也是可以的。
 
to peggy:
记和散分,不要让人家失望!切记。
 
怎么还不散分呢?
 
实际上都没有完全说对。我已经找到了方法,
将updatesql中的sql语句where条件后的原有语句修改为:只要主键条件
至于requestlive属性为false也可以添加删除修改
所以。。。。。。。5-10分鼓励一下
 
>>peggy
看来你对requestlive属性的了解还是有点问题。QUERY在修改数据时是有条件的。也就是
我上面写出的:你的SQL语句中不能有聚集函数。你不能JION 多个表。其它的条件下QUERY
才能修改数据。但这时你的requestlive属性必须设置为TRUE。
updatesql的目的是为了在QUERY不能修改数据时应用的,(也就是它能修改任何数据)
所以当你用updatesql时。requestlive属性就不会影响你了。。。

 
wumeng,你说得对
还有,非常感谢pcc_mmz1
 
wumeng,你说得对
还有,非常感谢pcc_mmz1
 
后退
顶部