我使用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);
编辑:我遇到同样问题的两台机器的规格:
开发机器:
生产服务器:
答案 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