Why does CREATE EXISTING TABLE proxy_DUMMY AT 'XXX..SYS.DUMMY' fail for a V6 remote server when using DRIVER=SQL Anywhere 17, but it DOES work with DRIVER=SQL Anywhere 16? AFAIK the same error message is produced for all remote servers up to V9 but works with V10 and up. All tests were run on 17.0.9.4882. -- SQL Anywhere 5.5 remote database ddd5 running on Adaptive Server Anywhere 6.0 server ddd6 -- DRIVER=SQL Anywhere 16 works -- DRIVER=SQL Anywhere 17 throws "The remote table 'XXX..SYS.DUMMY' could not be found" on CREATE EXISTING TABLE DROP TABLE proxy_DUMMY; DROP SERVER XXX; CREATE SERVER XXX CLASS 'SAODBC' USING 'ENG=ddd6; DBN=ddd5; UID=dba; PWD=sql; DRIVER=SQL Anywhere 16;AutoStop=NO;AutoStart=NO;CPOOL=NO'; CREATE EXISTING TABLE proxy_DUMMY AT 'XXX..SYS.DUMMY' SELECT * FROM proxy_DUMMY; dummy_col 0 ===== -- SQL Anywhere 10 remote ddd10 -- DRIVER=SQL Anywhere 16 works -- DRIVER=SQL Anywhere 17 works DROP TABLE proxy_DUMMY; DROP SERVER YYY; CREATE SERVER YYY CLASS 'SAODBC' USING 'ENG=ddd10; DBN=ddd10; UID=dba; PWD=sql; DRIVER=SQL Anywhere 16;AutoStop=NO;AutoStart=NO;CPOOL=NO'; CREATE EXISTING TABLE proxy_DUMMY AT 'YYY..SYS.DUMMY'; SELECT * FROM proxy_DUMMY; dummy_col 0 |
Bottom line: When trying to connect to a V5 remote database running on a V6 server (or probably any 32-bit remote database up to V9) from a 32-bit V17.0.9.4882 database, use DRIVER=Adaptive Server Anywhere 6.0 or DRIVER=SQL Anywhere 16.
For a 64-bit V17 database, use DRIVER=SQL Anywhere 16 (driver versions 10 through 12 will probably work as well).
Never use DRIVER=SQL Anywhere 17... it really doesn't do "backward compatible" or "32-bit" :)
...but wait, it gets worse; DRIVER=SQL Anywhere Native used to work when connecting from V16 to a V9 remote, but it does not work when connecting from V17 (same bogus "dummy not found" message).