Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 编程 » ODBC 支持 » ODBC 应用程序开发

 

适用于 Unix 的 UTF-32 ODBC 驱动管理器

将 SQLWCHAR 定义为 32 位 (UTF-32) 的 ODBC 驱动程序管理器版本不能同支持宽调用的 SQL Anywhere ODBC 驱动程序一起使用,因为该驱动程序是为 16 位 SQLWCHAR 构建的。针对这些情况,特地提供了纯 ANSI 版本的 SQL Anywhere ODBC 驱动程序。此版本的 ODBC 驱动程序不支持宽调用接口(如 SQLConnectW)。

此驱动程序的共享对象名为 libdbodbcansi16_r。只提供一个驱动程序的线程变体。 在 Mac OS X 上,除了 dylib 外,还提供打包形式的驱动程序 (dbodbcansi16_r.bundle)。某些框架,如 Real Basic,不能使用 dyliband,必需使用打包形式。

常规 ODBC 驱动程序将 SQLWCHAR 字符串视作 UTF-16 字符串。该驱动程序不能和某些 ODBC 驱动程序管理器一起使用(如 iODBC),因为这些驱动程序会将 SQLWCHAR 字符串视为 UTF-32 字符串。处理启用了 Unicode 的驱动程序时,这些驱动程序管理器将来自应用程序的窄调用转换成到驱动程序的宽调用。纯 ANSI 驱动程序避开了这种行为,只要应用程序不作出任何宽调用,驱动程序就可以与这些驱动程序管理器一同使用。通过 iODBC 进行宽调用或其它任何有类似语义的驱动程序管理器,仍然是不受支持的。