数据集只读的问题

delphi_xizhousheng 2003-09-04 05:03:30
用ODBC连接ORACLE 9I,用BDE的QUERY 执行任何SELECT语句返回的数据集都是READ-ONLY MODE 的,QUERY 和 DATABASE的READONLY都为FALSE ,ODBC中的READ ONLY CONNECTED 没有选中。BDE中的OPEN MODE 为 READ/WRITE .
用的ODBC Driver是Oracle in OraHome91
真不知道还有什么地方有Read Only的设置了,请高手指点一下
...全文
117 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
qianguob 2003-09-10
  • 打赏
  • 举报
回复
帮你顶一下。
kplchx 2003-09-09
  • 打赏
  • 举报
回复
看看query.requeust帮助,Requeust:=true,可以对VFP,PARDOX等本地数据库有效,对SERVER行的数据库是无效的,都是READ ONLY.
leixg 2003-09-09
  • 打赏
  • 举报
回复
如果是单表,Requeust:=true;
如果是多表关联,那只能是只读,要修改用UpdateSQL.
delphi_xizhousheng 2003-09-09
  • 打赏
  • 举报
回复
phoenixdingz(心灵约定) :
我试了先query.open 然后再Query1.RequestLive:=True ,query还是只读的;
要是先Query1.RequestLive:=True,再query.open 则报‘表或视图不存在’的错误
tanqth 2003-09-09
  • 打赏
  • 举报
回复
你是否有对数据库改写的权限(oracle),
新建一个空FORM,新建一个与数据库联接,新的DBGrid,记得联接的是表不是视图或查询。
再看能不能写,如不能就应该是数据库方面的问题。否则再看新建的与原程序有什么不同。

我只能这样说了,其他老大都说了好多方法了。
qiaolin53 2003-09-09
  • 打赏
  • 举报
回复
给query连一个updateSQL,里面写上语句,同时把query的cathedupdate设为true,问题就解决了。解决不了找我。 qiaolin_53@tom.com
delphi_xizhousheng 2003-09-09
  • 打赏
  • 举报
回复
不是我自己些的程序,是改别人的老系统,郁闷就在这里了
leixg 2003-09-09
  • 打赏
  • 举报
回复
不听老人言,吃亏就在眼前。
你的痛苦我经历过,但你不听,那我有什么办法。
BDE: Query 用于单表查询时,而且requestLive=true时才能修改,多表则不行,要用 UpdateSQL修改
Ado:多表关联可以修改。
delphi_xizhousheng 2003-09-09
  • 打赏
  • 举报
回复
最后再UP一遍!
总结一下:
1.使用环境 delphi6 ,BDE, ORACLE 9I;
2.因为要执行比较复杂的多表查询,所以选择TQUERY而不是TTABLE;
3.我试了先query.open 然后再Query.RequestLive:=True ,query还是只读的;
要是先Query1.RequestLive:=True,再query.open 则报‘表或视图不存在’的错误;
4.各种DELPHI6的升级包和补丁都装了

要是还是没有解决方案就只能郁闷的结贴了
delphi_xizhousheng 2003-09-09
  • 打赏
  • 举报
回复
RTL也装了
delphi_xizhousheng 2003-09-09
  • 打赏
  • 举报
回复
d6 update#1,#2都装了。
dickeybird888 2003-09-09
  • 打赏
  • 举报
回复
你可以实验安装一下升级包试试
dickeybird888 2003-09-09
  • 打赏
  • 举报
回复
估计可能你的Delphi没有进行升级的缘故
delphi_xizhousheng 2003-09-09
  • 打赏
  • 举报
回复
难道oracle的多表查询在BDE下就只能就不能用QUERY了么?
delphi_xizhousheng 2003-09-08
  • 打赏
  • 举报
回复
各位数据库界的资深人士,给点建议呗
phoenixdingz 2003-09-08
  • 打赏
  • 举报
回复
BDE连接数据库比ODBC连接数据效率高多了,我一直用BDE连Oracle的,在SQl Explore中new一个Oracle的别名,更改Sever Name属性为你所建的Oracle客户端名,输入用户名密码就可以了。

55555,可怜我,却无法用BDE连Sql Server成功,只能用ODBC连,谁能帮我阿!
phoenixdingz 2003-09-08
  • 打赏
  • 举报
回复
SELECT语句返回的数据集确实都是只读的,你想修改最好用Table连接表!
不过Query有个属性RequestLive,是导致只读的根源,你设为True试一下!
有Delphi帮助为证:
Set RequestLive to specify whether or not the BDE should attempt to return a live result set to the application. RequestLive is False by default, meaning that a query always returns a read-only result set.
jmjunta 2003-09-08
  • 打赏
  • 举报
回复
应该和BDE的QUERY采用游标类型有关,可能用了keyset游标。设置一下QUERY采用游标类型属性,也可能是结果集是只读的。为什么不用ODAC控件连oracle ?窑洞上有下的啊!
delphi_xizhousheng 2003-09-08
  • 打赏
  • 举报
回复
真的很着急呀。各位 这个问题应该不难吧?
delphi_xizhousheng 2003-09-05
  • 打赏
  • 举报
回复
楼上两位是对的,但是我将Query1.RequestLive:=True后,本来简单的SQL :SELECT * FROM TABLE 执行时却报‘表或使徒不存在’的错误,Query1.RequestLive:=False时就没有问题,是不是我没有修改表的权限呢?
加载更多回复(12)

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧