“Capability not supported” 该如何解决?

wf2091139 2005-10-15 11:29:24
SQL语句运行就提示“Capability not supported”。
但是用ShowMessage(...) 显示出来查询语句并不是很长啊,而且,比这长度长3、4倍的语句也一样
正确执行。不知道为什么??怎么解决???

上面ShowMessage(...) 的显示结果我把它照样子全写到查询分析器中也一样正确运行
源码如下:
/*
select (select Count(*) from Y2BXXETFO where id <= a.id and ( 全宗号 = 'b' or 全宗号 = 'd'))序号,a.* From Y2BXXETFO as a where ( 全宗号 = 'b' or 全宗号 = 'd') order by id
*/

当把 上面的 “a.*” 改成 “*”是出现下列错误
/*
Invalid use of keyword
Toke:*
Line Number:1
*/
db->Connected = true;
try
{
qry->DatabaseName = db->DatabaseName;
qry->Close();
qry->SQL->Clear();
// qry->SQL->Add("Select * from da_objects"); //用这句测试连接正确
qry->SQL->Add("select (select Count(*) from Y2BXXETFO where id <= a.id and ( 全宗号 = 'b' or 全宗号 = 'd'))序号,* From Y2BXXETFO as a where ( 全宗号 = 'b' or 全宗号 = 'd') order by id");
qry->Open();
}
catch(Exception &e){ShowMessage(e.Message);}


//其中 TQuery *qry; TDatabase *db;
...全文
1017 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
CACACACACA 2005-10-19
BDE支持有限的SQL语句。
回复
xibingwuqing 2005-10-19
刚刚发现一个问题:这里打开你的工程,找不到databasename,dbgrid的datasource的dataset的active会自动变为false,所以设好databasename和sql以后再把active设为true,这里如此,你那里也应如此

如果dbgrid里显示有记录,并且recno为-1的话,可能是其它的问题了,比如需要重装BCB
回复
wf2091139 2005-10-19
to : xibingwuqing(惜冰无情)

邮件收到了,不过我测试的结果还是-1。
回复
xibingwuqing 2005-10-18
“Capability not supported”好像不是SQL语句过长的原因,偶用paradox经常出现这样的提示,因为paradox许多嵌套语句不支持,改改SQL就好了
回复
xibingwuqing 2005-10-18
如果要生成唯一序号,这个也可以
GUID guid;
CoCreateGuid(&guid);
return guid.Data1;
这里显示CoCreateGuid未定义,没法试了
回复
wf2091139 2005-10-18
to: dm1cyg(从头再来)

说清楚点吧,你说的那个什么live 是指requestlive?这个值一直都是true啊。
表原来已经有索引了
回复
xibingwuqing 2005-10-18
邮件收到了吗
回复
wf2091139 2005-10-18
requestlive = false 的时候好象是可以实现,
可是查询结果显示在DBGrid中的时候,必须的是可写才可以!
回复
dm1cyg 2005-10-17
你把表加个索引就好了,我记的有个什么live=true;也可以的了
回复
wf2091139 2005-10-17
UP
回复
wf2091139 2005-10-15
顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复
Sumel 2005-10-15
帮你顶!!!!!!!
回复
wf2091139 2005-10-15
自己顶!自己顶!自己顶!自己顶!
回复
Sumel 2005-10-15
关注中。。。。。
回复
wf2091139 2005-10-15
极度郁闷啊!

select (select Count(*) from Y2BXXETFO where id <= a.id and ( 全宗号 = 'b' or 全宗号 = 'd'))序号,a.* From Y2BXXETFO as a where ( 全宗号 = 'b' or 全宗号 = 'd') order by id


这么一个直接、明了的 SQL 查询语句,在TADOQuery 中都可以显示,而TQuery 却又不行!!

这是为什么啊!!!???

回复
Sumel 2005-10-15
UP
回复
wf2091139 2005-10-15
up!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复
发动态
发帖子
数据库及相关技术
创建于2007-08-02

1156

社区成员

C++ Builder 数据库及相关技术
申请成为版主
社区公告
暂无公告