|
Finally, just tried with a table with LONGBLOB with the same steps and it crashes the ODBC Test tool. Without the col bind, it works properly.
Unhandled exception at 0x522E374A (maodbc.dll) in odbcte32.exe: 0xC0000005: Access violation reading location 0x00000010.
|
Loading up Visual Studio and the source code showed @ https://github.com/MariaDB/mariadb-connector-c/blob/34f8887af03d022416dd6593de91d0706e57f46b/libmariadb/mariadb_lib.c#L3281
|
mariadb_lib.c
|
/* snip */
|
MYSQL_FIELD * STDCALL mysql_fetch_field_direct(MYSQL_RES *res,uint fieldnr)
|
{
|
return &(res)->fields[fieldnr];
|
}
|
Exception:
Unhandled exception thrown: read access violation.
|
res was nullptr.
|
|
Call Stack
|
> maodbc.dll!mysql_fetch_field_direct(st_mysql_res * res, unsigned int fieldnr) Line 3281 C
|
maodbc.dll!MADB_StmtGetData(void * StatementHandle, unsigned short Col_or_Param_Num, short TargetType, void * TargetValuePtr, long BufferLength, long * StrLen_or_IndPtr, int InternalUse) Line 2529 C
|
maodbc.dll!SQLGetData(void * StatementHandle, unsigned short Col_or_Param_Num, short TargetType, void * TargetValuePtr, long BufferLength, long * StrLen_or_IndPtr) Line 1813 C
|
EDIT:
Edit, this might just be me doing it wrong. On the same table if I follow these steps the driver doesn't crash.
- Conn-->Full Connect
- Catalog --> SQLColumns --> Fill in TableName
- Results --> Bind Col All
- Catalog --> SQLColumns --> Fill in TableName
- Results --> Get Data All
Log:
Full Connect(Default)
|
|
Env. Attr. SQL_ATTR_ODBC_VERSION set to SQL_OV_ODBC3
|
|
Successfully connected to DSN 'MariaDB-Test'.
|
SQLColumns:
|
In: StatementHandle = 0x001B9640, CatalogName = SQL_NULL_HANDLE,
|
NameLength1 = 0, SchemaName = SQL_NULL_HANDLE, NameLength2 = 0, TableName = "CE_BLOB",
|
NameLength3 = 7, ColumnName = SQL_NULL_HANDLE, NameLength4 = 0
|
Return: SQL_SUCCESS=0
|
|
Bind Col All:
|
icol, fCType, cbValueMax, pcbValue, rgbValue
|
1, SQL_C_CHAR=1, 65, 0, ""
|
2, SQL_C_CHAR=1, 2, 0, ""
|
3, SQL_C_CHAR=1, 65, 0, ""
|
4, SQL_C_CHAR=1, 65, 0, ""
|
5, SQL_C_SSHORT=-15, 2, 0, 0
|
6, SQL_C_CHAR=1, 254, 0, ""
|
7, SQL_C_SLONG=-16, 4, 0, 0
|
8, SQL_C_SLONG=-16, 4, 0, 0
|
9, SQL_C_SSHORT=-15, 2, 0, 0
|
10, SQL_C_SSHORT=-15, 2, 0, 0
|
11, SQL_C_SSHORT=-15, 2, 0, 0
|
12, SQL_C_CHAR=1, 254, 0, ""
|
13, SQL_C_CHAR=1, 254, 0, ""
|
14, SQL_C_SSHORT=-15, 2, 0, 0
|
15, SQL_C_SSHORT=-15, 2, 0, 0
|
16, SQL_C_SLONG=-16, 4, 0, 0
|
17, SQL_C_SLONG=-16, 4, 0, 0
|
18, SQL_C_CHAR=1, 4, 0, ""
|
SQLColumns:
|
In: StatementHandle = 0x001B9640, CatalogName = SQL_NULL_HANDLE,
|
NameLength1 = 0, SchemaName = SQL_NULL_HANDLE, NameLength2 = 0, TableName = "CE_BLOB",
|
NameLength3 = 7, ColumnName = SQL_NULL_HANDLE, NameLength4 = 0
|
Return: SQL_SUCCESS=0
|
|
Get Data All:
|
TST1005: Highest bound column is 18.
|
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME", "DATA_TYPE", "TYPE_NAME", "COLUMN_SIZE", "BUFFER_LENGTH", "DECIMAL_DIGITS", "NUM_PREC_RADIX", "NULLABLE", "REMARKS", "COLUMN_DEF", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "CHAR_OCTET_LENGTH", "ORDINAL_POSITION", "IS_NULLABLE"
|
"iemr_test", <Null>, "ce_blob", "EVENT_ID", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 1, "NO"
|
"iemr_test", <Null>, "ce_blob", "VALID_UNTIL_DT_TM", 93, "DATETIME", 19, 16, <Null>, 10, 0, "", <Null>, 9, 3, <Null>, 2, "NO"
|
"iemr_test", <Null>, "ce_blob", "BLOB_SEQ_NUM", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 3, "NO"
|
"iemr_test", <Null>, "ce_blob", "VALID_FROM_DT_TM", 93, "DATETIME", 19, 16, <Null>, 10, 0, "", <Null>, 9, 3, <Null>, 4, "NO"
|
"iemr_test", <Null>, "ce_blob", "BLOB_LENGTH", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 5, "NO"
|
"iemr_test", <Null>, "ce_blob", "COMPRESSION_CD", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 6, "NO"
|
SQLFetch returned: SQL_ERROR=-1
|
: szSqlState = "22003", *pfNativeError = 0, *pcbErrorMsg = 57
|
szErrorMsg = "[ma-3.1.0][10.3.11-MariaDB-log]Numeric value out of range"
|
|
For the same table without the bind step:
|
Without bind
|
Full Connect(Default)
|
|
Env. Attr. SQL_ATTR_ODBC_VERSION set to SQL_OV_ODBC3
|
|
Successfully connected to DSN 'MariaDB-Test'.
|
SQLColumns:
|
In: StatementHandle = 0x001B6C88, CatalogName = SQL_NULL_HANDLE,
|
NameLength1 = 0, SchemaName = SQL_NULL_HANDLE, NameLength2 = 0, TableName = "CE_BLOB",
|
NameLength3 = 7, ColumnName = SQL_NULL_HANDLE, NameLength4 = 0
|
Return: SQL_SUCCESS=0
|
|
Get Data All:
|
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME", "DATA_TYPE", "TYPE_NAME", "COLUMN_SIZE", "BUFFER_LENGTH", "DECIMAL_DIGITS", "NUM_PREC_RADIX", "NULLABLE", "REMARKS", "COLUMN_DEF", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "CHAR_OCTET_LENGTH", "ORDINAL_POSITION", "IS_NULLABLE"
|
"iemr_test", <Null>, "ce_blob", "EVENT_ID", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 1, "NO"
|
"iemr_test", <Null>, "ce_blob", "VALID_UNTIL_DT_TM", 93, "DATETIME", 19, 16, <Null>, 10, 0, "", <Null>, 9, 3, <Null>, 2, "NO"
|
"iemr_test", <Null>, "ce_blob", "BLOB_SEQ_NUM", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 3, "NO"
|
"iemr_test", <Null>, "ce_blob", "VALID_FROM_DT_TM", 93, "DATETIME", 19, 16, <Null>, 10, 0, "", <Null>, 9, 3, <Null>, 4, "NO"
|
"iemr_test", <Null>, "ce_blob", "BLOB_LENGTH", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 5, "NO"
|
"iemr_test", <Null>, "ce_blob", "COMPRESSION_CD", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 6, "NO"
|
"iemr_test", <Null>, "ce_blob", "BLOB_CONTENTS", -4, "LONGBLOB", 4294967295, 4294967295, <Null>, <Null>, 1, "", "NULL", -4, <Null>, 4294967295, 7, "YES"
|
"iemr_test", <Null>, "ce_blob", "UPDT_DT_TM", 93, "DATETIME", 19, 16, <Null>, 10, 0, "", <Null>, 9, 3, <Null>, 8, "NO"
|
"iemr_test", <Null>, "ce_blob", "UPDT_ID", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 9, "NO"
|
"iemr_test", <Null>, "ce_blob", "UPDT_TASK", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 10, "NO"
|
"iemr_test", <Null>, "ce_blob", "UPDT_CNT", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 11, "NO"
|
"iemr_test", <Null>, "ce_blob", "UPDT_APPLCTX", 8, "DOUBLE", 15, 8, <Null>, 10, 0, "", <Null>, 8, <Null>, 4, 12, "NO"
|
"iemr_test", <Null>, "ce_blob", "LAST_UTC_TS", 93, "DATETIME", 19, 16, <Null>, 10, 1, "", "NULL", 9, 3, <Null>, 13, "YES"
|
"iemr_test", <Null>, "ce_blob", "Audit_CreateJobId", -5, "BIGINT", 19, 20, 0, 10, 1, "", "NULL", -5, <Null>, 3, 14, "YES"
|
"iemr_test", <Null>, "ce_blob", "Audit_CreateDate", 93, "DATETIME", 19, 16, <Null>, 10, 0, "", "current_timestamp(6)", 9, 3, <Null>, 15, "NO"
|
"iemr_test", <Null>, "ce_blob", "Audit_UpdateJobId", -5, "BIGINT", 19, 20, 0, 10, 1, "", "NULL", -5, <Null>, 3, 16, "YES"
|
"iemr_test", <Null>, "ce_blob", "Audit_UpdateDate", 93, "DATETIME", 19, 16, <Null>, 10, 1, "", "NULL", 9, 3, <Null>, 17, "YES"
|
"iemr_test", <Null>, "ce_blob", "Audit_Deleted", -6, "TINYINT", 3, 1, 0, 10, 0, "", "0", -6, <Null>, 1, 18, "NO"
|
"iemr_test", <Null>, "ce_blob", "Audit_DeleteJobId", -5, "BIGINT", 19, 20, 0, 10, 1, "", "NULL", -5, <Null>, 3, 19, "YES"
|
"iemr_test", <Null>, "ce_blob", "Audit_DeletedDate", 93, "DATETIME", 19, 16, <Null>, 10, 1, "", "NULL", 9, 3, <Null>, 20, "YES"
|
"iemr_test", <Null>, "ce_blob", "Audit_ValidFrom", 93, "DATETIME", 19, 16, <Null>, 10, 1, "", "NULL", 9, 3, <Null>, 21, "YES"
|
"iemr_test", <Null>, "ce_blob", "Audit_ValidUntil", 93, "DATETIME", 19, 16, <Null>, 10, 1, "", "NULL", 9, 3, <Null>, 22, "YES"
|
22 rows fetched from 18 columns.
|
|
|
Sorry, I missed the original request for SQLGetTypeInfo.
I've determined the issue with the error was an init query of "SET SQL_MODE='ORACLE';" - see the test at the bottom of this post.
Tests have been completed with 3.06 and 3.1 RC 32-Bit with the ODBC Unicode tester. Unless otherwise stated, all ODBC options are at their default.
All tests have been created on a new database, DDL included below.
Lastly, the ODBC driver in it's current form will crash SSIS during execution (though I couldn't always reliably crash it). I've confirmed the crash is with the ODBC component in SSIS, but can't be certain what the cause is as there was nothing obvious in the logs.
Sadly, I can't spend any more work time on this. I'll try to assist out of work hours, but for work we'll need to find an option with more mature Windows connectivity.
|
DDL for tests
|
CREATE DATABASE ODBC_TEST;
|
USE ODBC_TEST;
|
create table combined_test (
|
id int auto_increment primary key,
|
contents longtext null,
|
blobcontent longblob null,
|
bitfield bit(1) null
|
);
|
Maria ODBC 3.06 32bit
|
SQLGetTypeInfo
|
SQLGetTypeInfo:
|
In: StatementHandle = 0x001C7000, DataType = SQL_ALL_TYPES=0
|
Return: SQL_SUCCESS=0
|
|
Get Data All:
|
"TYPE_NAME", "DATA_TYPE", "COLUMN_SIZE", "LITERAL_PREFIX", "LITERAL_SUFFIX", "CREATE_PARAMS", "NULLABLE", "CASE_SENSITIVE", "SEARCHABLE", "UNSIGNED_ATTRIBUTE", "FIXED_PREC_SCALE", "AUTO_UNIQUE_VALUE", "LOCAL_TYPE_NAME", "MINIMUM_SCALE", "MAXIMUM_SCALE", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "NUM_PREC_RADIX", "INTERVAL_PRECISION"
|
"BIT", -7, 1, "", "", <Null>, 1, 1, 3, 0, 0, 0, "BIT", 0, 0, 0, 0, 10, <Null>
|
"BOOL", -7, 1, "", "", <Null>, 1, 1, 3, 0, 0, 0, "BOOL", 0, 0, 0, 0, 10, <Null>
|
"TINYINT", -6, 3, "", "", <Null>, 1, 0, 3, 0, 0, 1, "TINYINT", 0, 0, 0, 0, 10, <Null>
|
"TINYINT UNSIGNED", -6, 3, "", "", <Null>, 1, 0, 3, 1, 0, 1, "TINYINT UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"BIGINT", -5, 19, "", "", <Null>, 1, 0, 3, 0, 0, 1, "BIGINT", 0, 0, 0, 0, 10, <Null>
|
"BIGINT UNSIGNED", -5, 20, "", "", <Null>, 1, 0, 3, 1, 0, 1, "BIGINT UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"LONG VARBINARY", -4, 16777215, "'", "'", <Null>, 1, 1, 3, 0, 0, 0, "LONG VARBINARY", 0, 0, 0, 0, 10, <Null>
|
"MEDIUMBLOB", -4, 16777215, "'", "'", <Null>, 1, 1, 3, 0, 0, 0, "MEDIUMBLOB", 0, 0, 0, 0, 10, <Null>
|
"LONGBLOB", -4, 2147483647, "'", "'", <Null>, 1, 1, 3, 0, 0, 0, "LONGBLOB", 0, 0, 0, 0, 10, <Null>
|
"BLOB", -4, 65535, "'", "'", <Null>, 1, 1, 3, 0, 0, 0, "BLOB", 0, 0, 0, 0, 10, <Null>
|
"TINYBLOB", -4, 255, "'", "'", <Null>, 1, 1, 3, 0, 0, 0, "TINYBLOB", 0, 0, 0, 0, 10, <Null>
|
"VARBINARY", -3, 255, "'", "'", "length", 1, 1, 3, 0, 0, 0, "VARBINARY", 0, 0, 0, 0, 10, <Null>
|
"BINARY", -2, 255, "'", "'", "length", 1, 1, 3, 0, 0, 0, "BINARY", 0, 0, 0, 0, 10, <Null>
|
"LONG VARCHAR", -1, 16777215, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "LONG VARCHAR", 0, 0, 0, 0, 10, <Null>
|
"MEDIUMTEXT", -1, 16777215, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "MEDIUMTEXT", 0, 0, 0, 0, 10, <Null>
|
"LONGTEXT", -1, 2147483647, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "LONGTEXT", 0, 0, 0, 0, 10, <Null>
|
"TEXT", -1, 65535, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "TEXT", 0, 0, 0, 0, 10, <Null>
|
"TINYTEXT", -1, 255, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "TINYTEXT", 0, 0, 0, 0, 10, <Null>
|
"CHAR", 1, 255, "'", "'", "length", 1, 0, 3, 0, 0, 0, "CHAR", 0, 0, 0, 0, 10, <Null>
|
"NUMERIC", 2, 65, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "NUMERIC", -308, 308, 0, 0, 10, <Null>
|
"DECIMAL", 3, 65, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "DECIMAL", -308, 308, 0, 0, 10, <Null>
|
"INTEGER", 4, 10, "", "", <Null>, 1, 0, 3, 0, 0, 1, "INTEGER", 0, 0, 0, 0, 10, <Null>
|
"INTEGER UNSIGNED", 4, 10, "", "", <Null>, 1, 0, 3, 1, 0, 1, "INTEGER UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"INT", 4, 10, "", "", <Null>, 1, 0, 3, 0, 0, 1, "INT", 0, 0, 0, 0, 10, <Null>
|
"INT UNSIGNED", 4, 10, "", "", <Null>, 1, 0, 3, 1, 0, 1, "INT UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"MEDIUMINT", 4, 7, "", "", <Null>, 1, 0, 3, 0, 0, 1, "MEDIUMINT", 0, 0, 0, 0, 10, <Null>
|
"MEDIUMINT UNSIGNED", 4, 8, "", "", <Null>, 1, 0, 3, 1, 0, 1, "MEDIUMINT UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"SMALLINT", 5, 5, "", "", <Null>, 1, 0, 3, 0, 0, 1, "SMALLINT", 0, 0, 0, 0, 10, <Null>
|
"SMALLINT UNSIGNED", 5, 5, "", "", <Null>, 1, 0, 3, 1, 0, 1, "SMALLINT UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"FLOAT", 6, 10, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "FLOAT", -38, 38, 0, 0, 10, <Null>
|
"DOUBLE", 8, 17, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "DOUBLE", -308, 308, 0, 0, 10, <Null>
|
"DOUBLE PRECISION", 8, 17, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "DOUBLE PRECISION", -308, 308, 0, 0, 10, <Null>
|
"REAL", 8, 17, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "REAL", -308, 308, 0, 0, 10, <Null>
|
"VARCHAR", 12, 255, "'", "'", "length", 1, 0, 3, 0, 0, 0, "VARCHAR", 0, 0, 0, 0, 10, <Null>
|
"ENUM", 12, 65535, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "ENUM", 0, 0, 0, 0, 10, <Null>
|
"SET", 12, 64, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "SET", 0, 0, 0, 0, 10, <Null>
|
"DATE", 91, 10, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "DATE", 0, 0, 0, 0, 10, <Null>
|
"TIME", 92, 8, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "TIME", 0, 0, 0, 0, 10, <Null>
|
"DATETIME", 93, 16, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "DATETIME", 0, 0, 0, 0, 10, <Null>
|
"TIMESTAMP", 93, 16, "'", "'", "scale", 1, 0, 3, 0, 0, 0, "TIMESTAMP", 0, 0, 0, 0, 10, <Null>
|
"CHAR", -8, 255, "'", "'", "length", 1, 0, 3, 0, 0, 0, "CHAR", 0, 0, 0, 0, 10, <Null>
|
"VARCHAR", -9, 255, "'", "'", "length", 1, 0, 3, 0, 0, 0, "VARCHAR", 0, 0, 0, 0, 10, <Null>
|
"LONG VARCHAR", -10, 16777215, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "LONG VARCHAR", 0, 0, 0, 0, 10, <Null>
|
43 rows fetched from 19 columns.
|
|
SQLColumns
|
SQLColumns:
|
In: StatementHandle = 0x005C74F0, CatalogName = SQL_NULL_HANDLE, NameLength1 = 0, SchemaName = SQL_NULL_HANDLE, NameLength2 = 0,
|
TableName = "combined_test", NameLength3 = 13, ColumnName = SQL_NULL_HANDLE, NameLength4 = 0
|
Return: SQL_SUCCESS=0
|
|
Get Data All:
|
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME", "DATA_TYPE", "TYPE_NAME", "COLUMN_SIZE", "BUFFER_LENGTH", "DECIMAL_DIGITS", "NUM_PREC_RADIX", "NULLABLE", "REMARKS", "COLUMN_DEF", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "CHAR_OCTET_LENGTH", "ORDINAL_POSITION", "IS_NULLABLE"
|
"odbc_test", <Null>, "combined_test", "id", 4, "INT", 10, 4, 0, 10, 1, "", <Null>, 4, <Null>, 2, 1, "YES"
|
"odbc_test", <Null>, "combined_test", "contents", -1, "LONGTEXT", 4294967295, 4294967295, <Null>, <Null>, 1, "", "NULL", -1, <Null>, 4294967295, 2, "YES"
|
"odbc_test", <Null>, "combined_test", "blobcontent", -4, "LONGBLOB", 4294967295, 4294967295, <Null>, <Null>, 1, "", "NULL", -4, <Null>, 4294967295, 3, "YES"
|
"odbc_test", <Null>, "combined_test", "bitfield", -7, "BIT", 1, 1, <Null>, 10, 1, "", "NULL", -7, <Null>, <Null>, 4, "YES"
|
4 rows fetched from 18 columns.
|
ODBC Connector 3.1RC
|
SQLGetTypeInfo
|
SQLGetTypeInfo:
|
In: StatementHandle = 0x00568E60, DataType = SQL_ALL_TYPES=0
|
Return: SQL_SUCCESS=0
|
|
Get Data All:
|
"TYPE_NAME", "DATA_TYPE", "COLUMN_SIZE", "LITERAL_PREFIX", "LITERAL_SUFFIX", "CREATE_PARAMS", "NULLABLE", "CASE_SENSITIVE", "SEARCHABLE", "UNSIGNED_ATTRIBUTE", "FIXED_PREC_SCALE", "AUTO_UNIQUE_VALUE", "LOCAL_TYPE_NAME", "MINIMUM_SCALE", "MAXIMUM_SCALE", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "NUM_PREC_RADIX", "INTERVAL_PRECISION"
|
"BIT", -7, 1, "", "", <Null>, 1, 1, 3, 0, 0, 0, "BIT", 0, 0, 0, 0, 10, <Null>
|
"BOOL", -7, 1, "", "", <Null>, 1, 1, 3, 0, 0, 0, "BOOL", 0, 0, 0, 0, 10, <Null>
|
"TINYINT", -6, 3, "", "", <Null>, 1, 0, 3, 0, 0, 1, "TINYINT", 0, 0, 0, 0, 10, <Null>
|
"TINYINT UNSIGNED", -6, 3, "", "", <Null>, 1, 0, 3, 1, 0, 1, "TINYINT UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"BIGINT", -5, 19, "", "", <Null>, 1, 0, 3, 0, 0, 1, "BIGINT", 0, 0, 0, 0, 10, <Null>
|
"BIGINT UNSIGNED", -5, 20, "", "", <Null>, 1, 0, 3, 1, 0, 1, "BIGINT UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"LONG VARBINARY", -4, 16777215, "'", "'", <Null>, 1, 1, 3, 0, 0, 0, "LONG VARBINARY", 0, 0, 0, 0, 10, <Null>
|
"MEDIUMBLOB", -4, 16777215, "'", "'", <Null>, 1, 1, 3, 0, 0, 0, "MEDIUMBLOB", 0, 0, 0, 0, 10, <Null>
|
"LONGBLOB", -4, 2147483647, "'", "'", <Null>, 1, 1, 3, 0, 0, 0, "LONGBLOB", 0, 0, 0, 0, 10, <Null>
|
"BLOB", -4, 65535, "'", "'", <Null>, 1, 1, 3, 0, 0, 0, "BLOB", 0, 0, 0, 0, 10, <Null>
|
"TINYBLOB", -4, 255, "'", "'", <Null>, 1, 1, 3, 0, 0, 0, "TINYBLOB", 0, 0, 0, 0, 10, <Null>
|
"VARBINARY", -3, 255, "'", "'", "length", 1, 1, 3, 0, 0, 0, "VARBINARY", 0, 0, 0, 0, 10, <Null>
|
"BINARY", -2, 255, "'", "'", "length", 1, 1, 3, 0, 0, 0, "BINARY", 0, 0, 0, 0, 10, <Null>
|
"LONG VARCHAR", -1, 16777215, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "LONG VARCHAR", 0, 0, 0, 0, 10, <Null>
|
"MEDIUMTEXT", -1, 16777215, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "MEDIUMTEXT", 0, 0, 0, 0, 10, <Null>
|
"LONGTEXT", -1, 2147483647, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "LONGTEXT", 0, 0, 0, 0, 10, <Null>
|
"TEXT", -1, 65535, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "TEXT", 0, 0, 0, 0, 10, <Null>
|
"TINYTEXT", -1, 255, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "TINYTEXT", 0, 0, 0, 0, 10, <Null>
|
"CHAR", 1, 255, "'", "'", "length", 1, 0, 3, 0, 0, 0, "CHAR", 0, 0, 0, 0, 10, <Null>
|
"NUMERIC", 2, 65, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "NUMERIC", -308, 308, 0, 0, 10, <Null>
|
"DECIMAL", 3, 65, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "DECIMAL", -308, 308, 0, 0, 10, <Null>
|
"INTEGER", 4, 10, "", "", <Null>, 1, 0, 3, 0, 0, 1, "INTEGER", 0, 0, 0, 0, 10, <Null>
|
"INTEGER UNSIGNED", 4, 10, "", "", <Null>, 1, 0, 3, 1, 0, 1, "INTEGER UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"INT", 4, 10, "", "", <Null>, 1, 0, 3, 0, 0, 1, "INT", 0, 0, 0, 0, 10, <Null>
|
"INT UNSIGNED", 4, 10, "", "", <Null>, 1, 0, 3, 1, 0, 1, "INT UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"MEDIUMINT", 4, 7, "", "", <Null>, 1, 0, 3, 0, 0, 1, "MEDIUMINT", 0, 0, 0, 0, 10, <Null>
|
"MEDIUMINT UNSIGNED", 4, 8, "", "", <Null>, 1, 0, 3, 1, 0, 1, "MEDIUMINT UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"SMALLINT", 5, 5, "", "", <Null>, 1, 0, 3, 0, 0, 1, "SMALLINT", 0, 0, 0, 0, 10, <Null>
|
"SMALLINT UNSIGNED", 5, 5, "", "", <Null>, 1, 0, 3, 1, 0, 1, "SMALLINT UNSIGNED", 0, 0, 0, 0, 10, <Null>
|
"FLOAT", 6, 10, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "FLOAT", -38, 38, 0, 0, 10, <Null>
|
"DOUBLE", 8, 17, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "DOUBLE", -308, 308, 0, 0, 10, <Null>
|
"DOUBLE PRECISION", 8, 17, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "DOUBLE PRECISION", -308, 308, 0, 0, 10, <Null>
|
"REAL", 8, 17, "", "", "precision,scale", 1, 0, 3, 0, 0, 1, "REAL", -308, 308, 0, 0, 10, <Null>
|
"VARCHAR", 12, 255, "'", "'", "length", 1, 0, 3, 0, 0, 0, "VARCHAR", 0, 0, 0, 0, 10, <Null>
|
"ENUM", 12, 65535, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "ENUM", 0, 0, 0, 0, 10, <Null>
|
"SET", 12, 64, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "SET", 0, 0, 0, 0, 10, <Null>
|
"DATE", 91, 10, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "DATE", 0, 0, 0, 0, 10, <Null>
|
"TIME", 92, 8, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "TIME", 0, 0, 0, 0, 10, <Null>
|
"DATETIME", 93, 16, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "DATETIME", 0, 0, 0, 0, 10, <Null>
|
"TIMESTAMP", 93, 16, "'", "'", "scale", 1, 0, 3, 0, 0, 0, "TIMESTAMP", 0, 0, 0, 0, 10, <Null>
|
"CHAR", -8, 255, "'", "'", "length", 1, 0, 3, 0, 0, 0, "CHAR", 0, 0, 0, 0, 10, <Null>
|
"VARCHAR", -9, 255, "'", "'", "length", 1, 0, 3, 0, 0, 0, "VARCHAR", 0, 0, 0, 0, 10, <Null>
|
"LONG VARCHAR", -10, 16777215, "'", "'", <Null>, 1, 0, 3, 0, 0, 0, "LONG VARCHAR", 0, 0, 0, 0, 10, <Null>
|
43 rows fetched from 19 columns.
|
|
SQLColumns
|
SQLColumns:
|
In: StatementHandle = 0x00568E60, CatalogName = SQL_NULL_HANDLE, NameLength1 = 0, SchemaName = SQL_NULL_HANDLE, NameLength2 = 0,
|
TableName = "combined_test", NameLength3 = 13, ColumnName = SQL_NULL_HANDLE, NameLength4 = 0
|
Return: SQL_SUCCESS=0
|
|
Get Data All:
|
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME", "DATA_TYPE", "TYPE_NAME", "COLUMN_SIZE", "BUFFER_LENGTH", "DECIMAL_DIGITS", "NUM_PREC_RADIX", "NULLABLE", "REMARKS", "COLUMN_DEF", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "CHAR_OCTET_LENGTH", "ORDINAL_POSITION", "IS_NULLABLE"
|
"odbc_test", <Null>, "combined_test", "id", 4, "INT", 10, 4, 0, 10, 1, "", <Null>, 4, <Null>, 2, 1, "YES"
|
"odbc_test", <Null>, "combined_test", "contents", -10, "LONGTEXT", 4294967295, 17179869180, <Null>, <Null>, 1, "", "NULL", -10, <Null>, 17179869180, 2, "YES"
|
"odbc_test", <Null>, "combined_test", "blobcontent", -4, "LONGBLOB", 4294967295, 4294967295, <Null>, <Null>, 1, "", "NULL", -4, <Null>, 4294967295, 3, "YES"
|
"odbc_test", <Null>, "combined_test", "bitfield", -7, "BIT", 1, 1, <Null>, 10, 1, "", "NULL", -7, <Null>, <Null>, 4, "YES"
|
4 rows fetched from 18 columns.
|
ODBC 3.1RC 32-Bit `SET SQL_MODE='ORACLE';`
|
SQLGetTypeInfo
|
SQLGetTypeInfo:
|
In: StatementHandle = 0x005674F0, DataType = SQL_ALL_TYPES=0
|
Return: SQL_ERROR=-1
|
stmt: szSqlState = "42S22", *pfNativeError = 1054, *pcbErrorMsg = 67, *ColumnNumber = -2, *RowNumber = -2
|
MessageText = "[ma-3.1.0][10.3.11-MariaDB-log]Unknown column 'BIT' in 'field list'"
|
|
SQLColumns
|
SQLColumns:
|
In: StatementHandle = 0x005674F0, CatalogName = SQL_NULL_HANDLE, NameLength1 = 0, SchemaName = SQL_NULL_HANDLE, NameLength2 = 0,
|
TableName = "combined_test", NameLength3 = 13, ColumnName = SQL_NULL_HANDLE, NameLength4 = 0
|
Return: SQL_SUCCESS=0
|
|
Get Data All:
|
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME", "DATA_TYPE", "TYPE_NAME", "COLUMN_SIZE", "BUFFER_LENGTH", "DECIMAL_DIGITS", "NUM_PREC_RADIX", "NULLABLE", "REMARKS", "COLUMN_DEF", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "CHAR_OCTET_LENGTH", "ORDINAL_POSITION", "IS_NULLABLE"
|
"odbc_test", <Null>, "combined_test", "id", 4, "INT", 10, 4, 0, 10, 1, "", <Null>, 4, <Null>, 2, 1, "YES"
|
"odbc_test", <Null>, "combined_test", "contents", -10, "LONGTEXT", 4294967295, 17179869180, <Null>, <Null>, 1, "", "NULL", -10, <Null>, 17179869180, 2, "YES"
|
"odbc_test", <Null>, "combined_test", "blobcontent", -4, "LONGBLOB", 4294967295, 4294967295, <Null>, <Null>, 1, "", "NULL", -4, <Null>, 4294967295, 3, "YES"
|
"odbc_test", <Null>, "combined_test", "bitfield", -7, "BIT", 1, 1, <Null>, 10, 1, "", "NULL", -7, <Null>, <Null>, 4, "YES"
|
4 rows fetched from 18 columns.
|
|