使用 SQLBindCol、SQLBindParameter 或 SQLGetData 时,将为列或参数指定 C 数据类型。在某些平台上,提供给每列的存储(内存)必须正确对齐,才能读取或存储指定类型的值。下表列出了诸如 Sun Sparc、Itanium-IA64 和基于 ARM 的设备之类的处理器的内存对齐要求。
C 数据类型 | 需要的对齐方式 |
---|---|
SQL_C_CHAR | 无 |
SQL_C_BINARY | none |
SQL_C_GUID | none |
SQL_C_BIT | none |
SQL_C_STINYINT | none |
SQL_C_UTINYINT | none |
SQL_C_TINYINT | none |
SQL_C_NUMERIC | none |
SQL_C_DEFAULT | none |
SQL_C_SSHORT | 2 |
SQL_C_USHORT | 2 |
SQL_C_SHORT | 2 |
SQL_C_DATE | 2 |
SQL_C_TIME | 2 |
SQL_C_TIMESTAMP | 2 |
SQL_C_TYPE_DATE | 2 |
SQL_C_TYPE_TIME | 2 |
SQL_C_TYPE_TIMESTAMP | 2 |
SQL_C_WCHAR | 2(在所有平台上,缓冲区大小必须是 2 的倍数) |
SQL_C_SLONG | 4 |
SQL_C_ULONG | 4 |
SQL_C_LONG | 4 |
SQL_C_FLOAT | 4 |
SQL_C_DOUBLE | 8 |
SQL_C_SBIGINT | 8 |
SQL_C_UBIGINT | 8 |
x86、x64 和 PowerPC 平台不需要内存对齐。x64 平台包括 Advanced Micro Devices (AMD) AMD64 处理器和 Intel Extended Memory 64 Technology (EM64T) 处理器。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |