D
das.chayan
Guest
Currently I see this problem on HPUX-IA64, SOLARIS-SPARC64 and suselinux-s390x. DM version is : 07.14.0119 (U0115) Behavior of the following attributes mentioned below have deviation from the ODBC Specification. SQL_ATTR_AUTOCOMMIT(102) SQL_ATTR_ACCESS_MODE(101) SQL_ATTR_CONNECTION_TIMEOUT(113) SQL_ATTR_METADATA_ID(10014) RECEIVED are the error values and EXPECTED are those that we expect as per the ODBC SPECIFICATION. Please go through the specification to understand the Behavior. Below is the list of scenarios where we are encountering these problems. ATTRIBUTES got back using GetConnectAttr before Connection (DEFAULT Values) SQL_ATTR_AUTOCOMMIT(102) : 1 (EXPECTED) 0 (RECEIVED) ATTRIBUTES got back using GetConnectAttr before Connection and after call to SetConnectAttr SQL_ATTR_ACCESS_MODE(101) : 1 (EXPECTED) 0 (RECEIVED) SQL_ATTR_CONNECTION_TIMEOUT(113) : 1 (EXPECTED) 0 (RECEIVED) SQL_ATTR_METADATA_ID(10014) : 1 (EXPECTED) 0 (RECEIVED) ATTRIBUTES got back using GetConnectAttr After Connection, Before Disconnection and after call to SetConnectAttr(Values Set Before Connect) SQL_ATTR_ACCESS_MODE(101) : 1 (EXPECTED) 0 (RECEIVED) SQL_ATTR_CONNECTION_TIMEOUT(113) : 1 (EXPECTED) 0 (RECEIVED) ATTRIBUTES got back using GetConnectAttr After Disconnection and after call to SetConnectAttr(Values set Before Connect) SQL_ATTR_ACCESS_MODE(101) : 1 (EXPECTED) 0 (RECEIVED) SQL_ATTR_CONNECTION_TIMEOUT(113) : 1 (EXPECTED) 0 (RECEIVED) SQL_ATTR_METADATA_ID(10014) : 1 (EXPECTED) 0 (RECEIVED) ATTRIBUTES got back using GetConnectAttr Before Disconnection and after call to SetConnectAttr(Values set After Connect) SQL_ATTR_ACCESS_MODE(101) : 1 (EXPECTED) 0 (RECEIVED) SQL_ATTR_CONNECTION_TIMEOUT(113) : 1 (EXPECTED) 0 (RECEIVED) ATTRIBUTES got back using GetConnectAttr After Disconnection and after call to SetConnectAttr(Values set After Connect) SQL_ATTR_ACCESS_MODE(101) : 1 (EXPECTED) 0 (RECEIVED) SQL_ATTR_CONNECTION_TIMEOUT(113) : 1 (EXPECTED) 0 (RECEIVED) SQL_ATTR_METADATA_ID(10014) : 1 (EXPECTED) 0 (RECEIVED) Out of the several attributes I have pointed as deviation of Specification. I wanted to highlight few so as I can clearly state what exactly I mean by deviation from Specification. Suppose for the SQL_ATTR_AUTOCOMMIT using MS ODBC GUI we get the default value as SQL_AUTOCOMMIT_ON = 1. SQLGetConnectAttr: In:ConnectionHandle = 0x0000000000277200, Attribute = Conn: SQL_ATTR_AUTOCOMMIT=102, ValuePtr = 0x0000000000139740, BufferLength = 300, StringLengthPtr = 0x000000000013AE20, fAttribute Type = SQL_C_SLONG=-16 Return: SQL_SUCCESS=0 Out:*ValuePtr = SQL_AUTOCOMMIT_ON = 1, *StringLengthPtr = unmodified But same on the UNIX we do not get. We get it as 0. Now we expect to get back what was set by SQLSetConnectAttr: Suppose for the SQL_ATTR_ACCESS_MODE(101). SQLSetConnectAttr: In:ConnectionHandle = 0x0000000000277200, Attribute = Conn: SQL_ATTR_ACCESS_MODE=101, ValuePtr = SQL_MODE_READ_ONLY=1, StringLength = SQL_NTS=-3, fAttribute Type = SQL_C_SLONG=-16 Return: SQL_SUCCESS=0 SQLGetConnectAttr: In:ConnectionHandle = 0x0000000000277200, Attribute = Conn: SQL_ATTR_ACCESS_MODE=101, ValuePtr = 0x0000000000139740, BufferLength = 300, StringLengthPtr = 0x000000000013AE20, fAttribute Type = SQL_C_SLONG=-16 Return: SQL_SUCCESS=0 Out:*ValuePtr = SQL_MODE_READ_ONLY = 1, *StringLengthPtr = 4 But on UNIX we get it as 0 even if we set as 1. Please see the default values at http://msdn.microsoft.com/en-us/library/windows/desktop/ms713605(v=vs.85).aspx Also it is believed MS DM and DD DM should be in sync as per the specification. So if it has to be an enhancement we are ok as long as the behaviors are in sync. More details on this can be DD Support Case 00154046 where they have already talked about raising an Enhancement [ enhancement request (DD00065759) with our Development organization].
Continue reading...
Continue reading...