Subject | IBOConsole: Invalid KeyLinks entry |
---|---|
Author | skoczian |
Post date | 2004-12-20T14:52:52Z |
Using IBOConsole with Firebird 1.5, I get this error whenever I try to
execute a select statement in IBOConsole, if
1) I'm using a dialect 3 database,
2) the primary key of the table is not part of the field list of the
statement,
3) the field list contains an arithmetic expression involving either a
multiplication or the primary key, and
4) the offending expression is not enclosed in (otherwise unnecessary)
parentheses.
Every single one of these four conditions is necessary to produce the
error message, which doesn't seem to make sense.
Example: table t_tab has the primary key tab_nr (smallint), char field
tab_id, integer fields h_sieg, a_sieg.
Query 1: "SELECT tab_id, h_sieg + a_sieg AS punkte FROM t_tab"
Query 2: "SELECT tab_id, 3*(h_sieg + a_sieg) AS punkte FROM t_tab"
Query 3: "SELECT tab_nr, tab_id, 3*(h_sieg + a_sieg) AS punkte FROM
t_tab"
Query 4: "SELECT tab_id, h_sieg + tab_nr AS unsinn FROM t_tab"
Query 5: "SELECT tab_id, (3*(h_sieg + a_sieg)) AS punkte FROM t_tab"
Query 1, 3 and 5 work normally, query 2 and 4 produce the error
message. All five queries work normally, with correct results, if
executed in isql or via a python script using kinterbasdb.
Additional small anomaly: since updating IBOConsole to 1.1.11.7 the
message appears in Italian, though I've chosen English in the options
dialog. The same with some of the tooltips in the toolbar of the main
window.
Aside for german speaking soccer fans recognizing the problem domain:
this is simplified, I do know how to calculate the soccer table.
execute a select statement in IBOConsole, if
1) I'm using a dialect 3 database,
2) the primary key of the table is not part of the field list of the
statement,
3) the field list contains an arithmetic expression involving either a
multiplication or the primary key, and
4) the offending expression is not enclosed in (otherwise unnecessary)
parentheses.
Every single one of these four conditions is necessary to produce the
error message, which doesn't seem to make sense.
Example: table t_tab has the primary key tab_nr (smallint), char field
tab_id, integer fields h_sieg, a_sieg.
Query 1: "SELECT tab_id, h_sieg + a_sieg AS punkte FROM t_tab"
Query 2: "SELECT tab_id, 3*(h_sieg + a_sieg) AS punkte FROM t_tab"
Query 3: "SELECT tab_nr, tab_id, 3*(h_sieg + a_sieg) AS punkte FROM
t_tab"
Query 4: "SELECT tab_id, h_sieg + tab_nr AS unsinn FROM t_tab"
Query 5: "SELECT tab_id, (3*(h_sieg + a_sieg)) AS punkte FROM t_tab"
Query 1, 3 and 5 work normally, query 2 and 4 produce the error
message. All five queries work normally, with correct results, if
executed in isql or via a python script using kinterbasdb.
Additional small anomaly: since updating IBOConsole to 1.1.11.7 the
message appears in Italian, though I've chosen English in the options
dialog. The same with some of the tooltips in the toolbar of the main
window.
Aside for german speaking soccer fans recognizing the problem domain:
this is simplified, I do know how to calculate the soccer table.