tdbc::odbc

View Ticket
Login
Ticket Hash: 647ec7268f5f3263b35e59880168e12405e8a007
Title: Win64 variant compiles with wrong ODBC-related type definitions
Status: Closed Type: Build_Problem
Severity: Critical Priority: Immediate
Subsystem: Resolution: Fixed
Last Modified: 2019-12-15 17:32:25
Version Found In: 1.0.4
User Comments:
anonymous added on 2016-06-04 03:00:59:
TclError or, in some cases, crash during parameter binding or, in some cases, during statement execution. 

Apears for all scenarios requiring a pointer to a buffer length in the SQLBindParameter function (all string-qualified,all binary and NULL ) 

Problem will probably touch all Win64 ODBC versions since Win Server 2003 [source](https://msdn.microsoft.com/en-us/library/ms716287%28v=vs.85%29.aspx#Anchor_1).

Problem appears if compiled without explicitly setting up includes for odbc libs instead of fakesql.h.

Reason: line 72 of the file 'fakesql.h'

  there's '#if defined(__WIN64)' and probably should be '#if defined(_WIN64)'.

  SQLBindParameter expects pointer to 8byte SQLLEN, instead it gets 4byte SQLLEN.

kbk added on 2019-09-13 16:34:45:
Fix in progress: [https://core.tcl-lang.org/tdbcodbc/timeline?r=bug-647ec7268f]

jan.nijtmans added on 2019-12-15 17:31:14:

Fixed now in trunk. Will be available in next release most likely 1.1.2