Consultor Eletrônico



Kbase P118433: ODBC error S1090 querying tables in AS/400: The qualifier was larger than SQL_MAX_QUALIFER_LEN from
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   21/12/2009
Status: Verified

SYMPTOM(s):

S1090: The qualifier 'QS36F' was larger than SQL_MAX_QUALIFER_LEN from SQLGetInfo (0).

Getting error when accessing certain tables on AS/400

The tables were created by AS/400 DDS

All the table names has "." in it

The tables were accessed via ODBC wired protocol driver when errors occurred

FACT(s) (Environment):

ODBC DataServer
OpenEdge 10.1x

CAUSE:

The problem has to do with differences between UDB and ODBC / SQL. In ODBC world, "." is recognized as separator between qualifier/owner/schema and table names, "." in a table name is invalid.

FIX:

Rename these tables to have "_" in names instead of ".", then change foreign-name in schema holder to match them. For example,
Original schema holder df
ADD TABLE "BS_PRICE" TYPE ODBC
AREA "Schema Area"
DESCRIPTION "PRICE FILE"
DUMP-NAME "BS.PRICE"
FOREIGN-NAME "BS.PRICE"
FOREIGN-OWNER "QS36F"
FOREIGN-TYPE "TABLE"
PROGRESS-RECID 0
INDEX-FREE-FLD 55
FILE-MISC14 1
Revise schema holder to reflect correct foreign name after table name changes, for example,
ADD TABLE "BS_PRICE" TYPE ODBC
AREA "Schema Area"
DESCRIPTION "PRICE FILE"
DUMP-NAME "BS.PRICE"
FOREIGN-NAME "BS_PRICE"
FOREIGN-OWNER "LONNY"
FOREIGN-TYPE "TABLE"
PROGRESS-RECID 0
INDEX-FREE-FLD 55