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