|
From: Michael H. <Mic...@jm...> - 2012-10-26 20:04:27
|
I just discovered that in the Mac OS X 10.8 SDK, sqlucode.h, all of the Wide (Unicode) variants of about 37 APIs are marked as
DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER. Example:
SQLRETURN SQL_API SQLGetConnectAttrW (
SQLHDBC hdbc,
SQLINTEGER fAttribute,
SQLPOINTER rgbValue,
SQLINTEGER cbValueMax,
SQLINTEGER * pcbValue) DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER;
FYI: If UNICODE is defined and SQL_NOUNICODEMAP is not defined, then a normal call to SQLGetConnectAttr gets mapped to the wide version.
#define SQLGetConnectAttr SQLGetConnectAttrW
So if these are deprecated, what are we supposed to use instead?
Also, and possibly unrelated, I am calling the above SQLGetConnectAttrW (via the Unicode mapping) like so:
SQLTCHAR catalogName[100];
retcode = SQLGetConnectAttr( hdbc, SQL_ATTR_CURRENT_CATALOG,
(SQLPOINTER)&catalogName, sizeof(catalogName), NULL);
And I get back a string that is not a wide string:
catalogName SQLTCHAR [100]
[0] SQLTCHAR user
[1] SQLTCHAR s\0\0\0
This is using Actual's "SQL Server" driver, if it matters.
--Michael
|