当ResolveToSataSet=True时,更新数据出现Capbility not supported错误!(100分)

  • 主题发起人 主题发起人 bunker
  • 开始时间 开始时间
B

bunker

Unregistered / Unconfirmed
GUEST, unregistred user!
用ORACLE数据库,中间层用QUERY和DATASETPROVIDER提供数据更新,QUERY的SQL语句为无条件的
SELECT语句,REQUESTLIVE为TRUE,客户端为ClientDataSet和DBGrid,使用ApplyUpdates(0)
进行更新,然后出现Capbility not supported错误!还需要进行其他设置吗?还是我的
SQL语句有问题?
 
在OnGetTableName事件写入TableName := '...';
另外你要Delphi自动产生SQL语句提交,就要把
ResolveToSataSet := False;
不过我现在的Oracle和Delphi好像有兼容问题,
Number()型的字段Delphi客户端和服务器不一致,
烦死了,只有自己用SQL语句处理这种情况,你要
小心!
 
我必须要使用QUERY来控制数据更新的方式,因此必须设定ResolveToDataSet为TRUE,不使用
DATASETORVIDER自动生成的UPDATE语句,但就是出错,我也跟踪不到QUERY生成的SQL语句。
请各位高手指点指点!
 
我觉得这个问题应该不是太难吧,可能也比较普遍,没有人帮一下我吗?
 
to bunker
你将requestlive设置成false,因为要让query有可修改功能的话。
另外,使用一个updateSql控件,让它与query联系起来。才能使用query有
提交数据的能力,否则 query只是只读的。
还有,applyupdates()的参数换一个试试。
 
to_pccmmzl
requestlive应该是TRUE吧,这样数据集才可写,数据库我都重装了。。。还是不行:(
两层就可以根据到TQUERY自动生成的SQL语句,三层就会出错,我不知道毛病出在那里了。
按李伟的书上说的很恨简单啊~~大家帮忙
 
加入updatesql控件
 
好像Capbility not supported错误和数据库有关系。我从新建表后,不再提示这个错误了
可是并不更新数据,不知为什么?我也试过在BeforeUpdateRecord中使用UpdateSQL组件
来更新数据,也是没有出错提示,不更新数据。真是奇怪。。。
 
Capbility not supported 应该是和数据库有关系,把你的 SQL 语句贴上来看看,在
SQLPLUS 中能执行的语句在 Query 中不一定能执行!
 
to macrozeng:
SQL语句如下:
SELECT EMPNO, LASTNAME, FIRSTNAME, PHONEEXT, HIREDATE, SALARY
FROM EMPLOYEE Employee
就是一个很简单的SELECT语句啊
 
怎么有两个 EMPLOYEE?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部