Unicode 関数の引数

ODBC 3.5 (またはそれ以降) ドライバー マネージャーは、引数で文字列または SQLPOINTER へのポインターを受け入れるすべての関数の ANSI バージョンと Unicode バージョンの両方をサポートしています。 Unicode 関数は、マクロとしてではなく、関数 (接尾辞に W が付く) として実装されます。 ANSI 関数(接尾辞に A が付くかどうかにかわらず呼び出すことができます)は、現在の ODBC API 関数と同じです。

解説

文字列または長さの引数を常に返すか、受け取る Unicode 関数の場合、引数は文字数として渡されます。 サーバー データの長さ情報を返す関数の場合、表示サイズと精度は文字数で記述されます。 長さ (データの転送サイズ) が文字列または文字列以外のデータを参照できる場合、長さはオクテット長で記述されます。 例えば、SQLGetInfoW はバイト数として長さを受け取りますが、SQLExecDirectW では文字数を使用します。

文字数は、ANSI 関数のバイト数 (オクテット) と UNICODE 関数の WCHAR (16 ビット ワード) の数を指します。 特に、2 バイト文字シーケンス (DBCS) またはマルチバイト文字シーケンス (MBCS) は、複数のバイトで構成できます。 UTF-16 Unicode 文字シーケンスは、複数の WCHAR で構成できます。

Unicode (W) バージョンと ANSI (A) バージョンの両方をサポートする ODBC API 関数の一覧を次に示します。

SQLBrowseConnect
SQLColAttribute
SQLColAttributes
SQLColumnPrivileges
SQLColumns
SQLConnect
SQLDataSources
SQLDescribeCol
SQLDriverConnect
SQLDrivers
SQLError
SQLExecDirect
SQLForeignKeys
SQLGetConnectAttr
SQLGetConnectOption
SQLGetCursorName
SQLGetDescField
SQLGetDescRec
SQLGetDiagField

SQLGetDiagRec
SQLGetInfo
SQLGetStmtAttr
SQLGetTypeInfo
SQLNativeSql
SQLPrepare
SQLPrimaryKeys
SQLProcedureColumns
SQLProcedures
SQLSetConnectAttr
SQLSetConnectOption
SQLSetCursorName
SQLSetDescField
SQLSetStmtAttr
SQLSpecialColumns
SQLStatistics
SQLTablePrivileges
SQLTables

Unicode (W) バージョンと ANSI (A) バージョンの両方をサポートする ODBC インストーラおよび ODBC トランスレーター関数の一覧を次に示します。

SQLConfigDataSource
SQLCreateDataSource
SQLDataSourceToDriver
SQLDriverToDataSource
SQLGetAvailableDrivers
SQLGetInstalledDrivers
SQLGetTranslator
SQLInstallDriver

SQLInstallDriverManager
SQLInstallerError
SQLInstallODBC
SQLReadFileDSN
SQLRemoveDSNFromINI
SQLValidDSN
SQLWriteDSNToINI

Note

ODBC 3.x ドライバー マネージャーでは UNICODE #define を使用した ODBC 2.x アプリケーションの再コンパイルがサポートされているため、非推奨の関数では Unicode から ANSI へのマッピングがサポートされています。

このセクションでは、次のトピックを扱います。