Issue report by barefootguru
Product
FileMaker ServerVersion
12.0v3Operating system version
Windows Server 2008 R2 Enterprise SP1Description 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) <SQL_DOUBLE>
0x05646b2c (15)
0x05646b30 (0)
0x05646b32 (1)
ODBC: ENTER SQLColAttribute
0x024f5010
1
9 <SQL_DESC_FIXED_PREC_SCALE>
0x00000000
0
0x00000000
0x05646b4c
ODBC: EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
0x024f5010
1
9 <SQL_DESC_FIXED_PREC_SCALE>
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) <SQL_DOUBLE>
0x0000000009949ea0 (15)
0x0000000009949ea8 (0)
0x0000000009949eaa (1)
ODBC: ENTER SQLColAttribute
0x0000000000446a50
1
9 <SQL_DESC_FIXED_PREC_SCALE>
0x0000000000000000
0
0x0000000000000000
0x0000000009949ee0
ODBC: EXIT SQLColAttribute with return code -2 (SQL_INVALID_HANDLE)
0x0000000000446a50
1
9 <SQL_DESC_FIXED_PREC_SCALE>
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.