AnsweredAssumed Answered

64-bit ODBC driver fails on first SQLColAttribute call

Question asked by barefootguru on Jan 10, 2013
Latest reply on Sep 13, 2013 by disabled_ntaylor

Summary

64-bit ODBC driver fails on first SQLColAttribute call

Product

FileMaker Server

Version

12.0v3

Operating system version

Windows Server 2008 R2 Enterprise SP1

Description of the issue

SAS software can extract data from FileMaker Server using FileMaker ODBC driver under a 32-bit regime but not 64-bit.

Steps to reproduce the problem

32-bit set up:

Windows 7 32-bit with SAS 9.3 Ts1M2 32-bit and 32-bit FileMaker Pro ODBC driver 12.0.103.00

64-bit set up:

Windows 2008 Server 64-bit with SAS 9.3 Ts1M2 64-bit and 64-bit FileMaker Pro ODBC driver 12.0.103.00

another 64-bit test:

Windows 7 64-bit with SAS 9.2 Ts2M3 64-bit and 64-bit FileMaker Pro ODBC driver 12.0.103.00

Expected result

SAS can successfully read a FileMaker table using either FileMaker's 32-bit or 64-bit ODBC driver.

Actual result

Read using 32-bit ODBC driver succeeds, while read using 64-bit driver fails.

Exact text of any error message(s) that appear

Thorough testing by SAS Institute has narrowed it down to this:

I ran a test with 64 bit SAS 9.3 TS1M2 using the 64 bit ODBC driver of FileMaker Pro 12 and the exact same test with 32 bit SAS 9.3 TS1M2 using the 32 bit ODBC driver of FileMaker Pro 12. The 32 bit worked. The 64 bit failed on the first SQLColAttribute call.

ODBC trace snippet of the 32 bit SAS test:

ODBC: ENTER SQLDescribeCol
            0x024f5010
                     1
            0x05646aa4
                   129
            0x05646b26
            0x05646b28
            0x05646b2c
            0x05646b30
            0x05646b32
ODBC: EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
            0x024f5010
                     1
            0x05646aa4 [       6] "numvar"
                   129
            0x05646b26 (6)
            0x05646b28 (8)
            0x05646b2c (15)
            0x05646b30 (0)
            0x05646b32 (1)
ODBC: ENTER SQLColAttribute
            0x024f5010
                     1
                     9
            0x00000000
                     0
            0x00000000
            0x05646b4c
ODBC: EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
            0x024f5010
                     1
                     9
            0x00000000
                     0
            0x00000000
            0x05646b4c (0)


ODBC trace snippet of the 32 bit SAS test:

ODBC: ENTER SQLDescribeCol
            0x0000000000446a50
                             1
            0x0000000009949e14
                           129
            0x0000000009949e96
            0x0000000009949e98
            0x0000000009949ea0
            0x0000000009949ea8
            0x0000000009949eaa
ODBC: EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
            0x0000000000446a50
                             1
            0x0000000009949e14 [       6] "numvar"
                           129
            0x0000000009949e96 (6)
            0x0000000009949e98 (8)
            0x0000000009949ea0 (15)
            0x0000000009949ea8 (0)
            0x0000000009949eaa (1)
ODBC: ENTER SQLColAttribute
            0x0000000000446a50
                             1
                             9
            0x0000000000000000
                             0
            0x0000000000000000
            0x0000000009949ee0
ODBC: EXIT SQLColAttribute with return code -2 (SQL_INVALID_HANDLE)
            0x0000000000446a50
                             1
                             9
            0x0000000000000000
                             0
            0x0000000000000000
            0x0000000009949ee0 (0)


We will need input from the FileMaker Pro developer as to why their 64 bit ODBC driver is returning return code -2 for a standard SQLColAttribute call. If I use SAS Access to ODBC 64 bit with for instance a SQL server ODBC datasource, then I do not see any problems with the SQLColAttribute call SAS does. It really looks like an issue with the 64 bit ODBC driver or ODBC layer in FileMaker Pro 12.

Configuration information

SAS Institute adds:

I ran a test with 64 bit version of http://download.cnet.com/windows/george-poulose-software/3260-20_4-66591.html?filter=licenseName%3D%22Free+to+try%22%7C&filterName=licenseName%3DFree+to+try%7C&rpp=&sort=&topLevel=true&tag=narrow. It shows the data but I did not see in the generated ODBC trace the SQLColAttribute call. Maybe the tool is not interested in that level of detail since it only shows data whereas with SAS you might want to do all kinds of data manipulations that require the SAS modules to know all the details of each of the variables involved.

Outcomes