Sybase Adaptive Server IQ不能SELECT *,总是限制为30?

时间:2015-08-07 08:42:45

标签: php sybase sqlanywhere sybase-iq

我使用PHP SQL Anywhere扩展的Sybase IQ数据库(版本SELECT @@version显示Adaptive Server IQ / 12.5.0 / 0306)存在此问题。

我无法选择所有行,即SELECT * from anytable 始终返回30行

我发现的唯一解决方法是使用SELECT TOP 1000 * from anytable(最大值为32767),但在某些情况下我需要所有行。

非常感谢任何帮助。

编辑:示例脚本(很像documentation

$conn = sasql_connect("HOST=host:port;DBN=dbn;UID=uid;PWD=pwd");
if (!$conn) { echo "Connection failed."; die(); }

$result = sasql_query($conn, "SELECT * FROM dba.anytable" );
sasql_result_all($result); // display 30 rows in a formatted table
sasql_free_result($result);
sasql_disconnect($conn);

编辑:我遇到同样问题的两台机器的规格:

开发机器:

生产服务器:

2 个答案:

答案 0 :(得分:5)

可能是一个愚蠢的问题,但只是为了确定。

您是否登记了客户 - >工具 - > Sybase IQ - >要显示的最大行数。

(sry发布此作为答案,但我没有足够的代表在评论中问你。)干杯

答案 1 :(得分:3)

嗯,可能有一些可配置的属性可以让你从 30 的邪恶魔掌中解脱出来。我不知道那个房产在哪里。我希望有人找到它。

如果没有人这样做,这里是一个大的黑客,它按给定表的主键排序,检索尽可能多的行给出你的约束,并跟踪最后获取的主键以便检索下一批行。最好将其调整为使用var dialogDefinition = ev.data.definition; var oldOnShow = dialogDefinition.onShow; dialogDefinition.onShow = function(evt) { // do some stuff // do some more stuff // call old function oldOnShow(); } START AT / LIMIT(如果可用),但我假设它们不是。如果其中一个可用,您可以将此方法用于任何表。如果不是,则此方法可以适用于具有唯一非空键的任何表。

OFFSET