Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用带索引的QSqlQuery_C++_Sql_Qt - Fatal编程技术网

C++ 使用带索引的QSqlQuery

C++ 使用带索引的QSqlQuery,c++,sql,qt,C++,Sql,Qt,我有自己的数据存储机制来存储数据。但我想为最终用户实现标准的数据操作和查询接口,所以我认为qtsql适合我的情况。 但我仍然无法理解如何将索引用于sql查询。 比如说,, 我有一个包含列A(int)、B(int)、C(int)、D(int)的表,并且列A被索引 如何使用索引搜索结果?您已经编写了自己的存储系统,并希望使用类似SQL的语法对其进行操作?我认为qtsql不是适合这项工作的工具。它提供与各种SQL服务器的连接,而不是用于解析SQL语句。Qt希望“传递”查询,然后以某种方式解析结果集,并

我有自己的数据存储机制来存储数据。但我想为最终用户实现标准的数据操作和查询接口,所以我认为qtsql适合我的情况。 但我仍然无法理解如何将索引用于sql查询。 比如说,, 我有一个包含列A(int)、B(int)、C(int)、D(int)的表,并且列A被索引


如何使用索引搜索结果?

您已经编写了自己的存储系统,并希望使用类似SQL的语法对其进行操作?我认为qtsql不是适合这项工作的工具。它提供与各种SQL服务器的连接,而不是用于解析SQL语句。Qt希望“传递”查询,然后以某种方式解析结果集,并将其转换为Qt友好的表示形式

因此,如果您只想要一个Qt友好的表示,我看不出使用SQL进行间接寻址的理由

但是关于你的问题: 在SQL中,索引通常不在查询中声明,而是在创建表模式期间声明。但是SQL server有可能“提示”索引,这就是您要寻找的吗


使用(索引(索引名称)[,…])从表名称中选择列列表

我认为我可以从qt编写sql驱动程序。如果我能够实现QSqlDriver接口和QSqlResult接口,它应该可以正常工作?从技术上讲,这应该可以工作。但这仍然意味着您必须在某个地方实现自己的SQL子集,因为Qt在这方面帮不了您。Qt希望“传递”查询,然后以某种方式解析结果集,并将其转换为Qt友好的表示形式。我相应地扩展了我的答案。你知道有哪个内置解析器的独立于数据库的sql模块适合我的要求吗?我怀疑是否有一个适合你的需要。SQL有大量不同的专有方言。您可能能够重用一些XText语法,也许您在这里有一些运气:哦,请记住:有一个使用Boost.Spirit的相当小的SQL子集的解析器示例。我还没有检查是否进一步(doc说它只是select子句,不管它是什么意思),但如果你幸运的话,这就足够你的应用程序了: