Thanks for your reply, Chris.
I ran a trace - below is portion of the log I determined to be associated with the syntaxFromSql() call. It doesn't really give me any clues, but I don't speak whatever language this is. Maybe you or someone out there will have some amazing insight.
Next I might try the lower-level trace.
(08BD3048): PREPARE:
(08BD3048): select moniker from pending_trade where 1=2(DBI_PREPARE) (3.136 MS / 775.584 MS)
(08BD3048): DESCRIBE:(DBI_DESCRIBE) (0.021 MS / 775.605 MS)
(08BD3048): name=moniker,dsntype=char,len=7,type=CHAR,pbt=1,dbt=1,ct=0,prec=6,scale=0
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_GET_FROM_BEFORE) (0.000 MS / 775.605 MS)
(08BD3048): (DBI_VALIDATE_IDENT) (0.000 MS / 775.605 MS)
(08BD3048): GET EXTENDED ATTRIBUTES: TABLE=pending_trade OWNER=dbo(DBI_COMPLETE_TABLE_INFO) (9.980 MS / 785.585 MS)
(08BD3048): (DBI_PARSE_COLLIST) (0.000 MS / 785.585 MS)
(08BD3048): (DBI_VALIDATE_IDENT) (0.000 MS / 785.585 MS)
(08BD3048): (DBI_VALIDATE_HASH) (6.214 MS / 791.799 MS)
(08BD3048): (DBI_FORMAT_HASH) (6.370 MS / 798.169 MS)
(08BD3048): (DBI_EDITSTYLE_HASH) (6.635 MS / 804.804 MS)
(08BD3048): (DBI_DESCRIBE_OPTIMIZED) (0.000 MS / 804.804 MS)
(08BD3048): (DBI_CASE_SENSITIVE) (0.000 MS / 804.804 MS)
(08BD3048): (DBI_DW_COL_DICT) (6.566 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_TERMINATOR) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_GET_FROM_BEFORE) (0.000 MS / 811.370 MS)
(08BD3048): (DBI_VALIDATE_IDENT) (0.000 MS / 811.370 MS)
(08BD3048): UNIQUE KEY CHECK: TABLE=pending_trade OWNER=dbo USER=dbo(DBI_UNIQUE_KEY) (11.892 MS / 823.262 MS)
(08BD3048): YES, unique key found
If you have a few minutes, it might be worthwhile opening a Support Ticket (its free) for this ODBC issue. That would at least get this issue on Engineering's ToDo list.
FYI: https://www.appeon.com/standardsupport
Regards ... Chris