# test all types using ODBC 2 select bit 0 attr SQL_COLUMN_LENGTH 1 attr SQL_COLUMN_PRECISION 1 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 1 attr SQL_DESC_OCTET_LENGTH 1 attr SQL_DESC_PRECISION 1 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 1 attr SQL_DESC_TYPE_NAME bit select tinyint 0 attr SQL_COLUMN_LENGTH 1 attr SQL_COLUMN_PRECISION 3 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 3 attr SQL_DESC_OCTET_LENGTH 1 attr SQL_DESC_PRECISION 3 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 3 select smallint 0 attr SQL_COLUMN_LENGTH 2 attr SQL_COLUMN_PRECISION 5 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 5 attr SQL_DESC_OCTET_LENGTH 2 attr SQL_DESC_PRECISION 5 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 6 select int 0 attr SQL_COLUMN_LENGTH 4 attr SQL_COLUMN_PRECISION 10 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 10 attr SQL_DESC_OCTET_LENGTH 4 attr SQL_DESC_PRECISION 10 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 11 select bigint 0 attr SQL_COLUMN_LENGTH 8 attr SQL_COLUMN_PRECISION 19 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 19 attr SQL_DESC_OCTET_LENGTH 8 attr SQL_DESC_PRECISION 19 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 20 select real 0 attr SQL_COLUMN_LENGTH 4 attr SQL_COLUMN_PRECISION 7 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 7 attr SQL_DESC_OCTET_LENGTH 4 attr SQL_DESC_PRECISION 7 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 14 select float 0 attr SQL_COLUMN_LENGTH 8 attr SQL_COLUMN_PRECISION 15 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 15 attr SQL_DESC_OCTET_LENGTH 8 attr SQL_DESC_PRECISION 15 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 24 select smallmoney 0 attr SQL_COLUMN_LENGTH 12 attr SQL_COLUMN_PRECISION 10 attr SQL_COLUMN_SCALE 4 attr SQL_DESC_LENGTH 10 attr SQL_DESC_OCTET_LENGTH 12 attr SQL_DESC_PRECISION 10 attr SQL_DESC_SCALE 4 attr SQL_DESC_DISPLAY_SIZE 12 attr SQL_DESC_CONCISE_TYPE SQL_DECIMAL select money 0 attr SQL_COLUMN_LENGTH 21 attr SQL_COLUMN_PRECISION 19 attr SQL_COLUMN_SCALE 4 attr SQL_DESC_LENGTH 19 attr SQL_DESC_OCTET_LENGTH 21 attr SQL_DESC_PRECISION 19 attr SQL_DESC_SCALE 4 attr SQL_DESC_DISPLAY_SIZE 21 attr SQL_DESC_CONCISE_TYPE SQL_DECIMAL select numeric(10,2) 0 attr SQL_COLUMN_LENGTH 12 attr SQL_COLUMN_PRECISION 10 attr SQL_COLUMN_SCALE 2 attr SQL_DESC_LENGTH 10 attr SQL_DESC_OCTET_LENGTH 12 attr SQL_DESC_PRECISION 10 attr SQL_DESC_SCALE 2 attr SQL_DESC_DISPLAY_SIZE 12 select numeric(23,4) 0 attr SQL_COLUMN_LENGTH 25 attr SQL_COLUMN_PRECISION 23 attr SQL_COLUMN_SCALE 4 attr SQL_DESC_LENGTH 23 attr SQL_DESC_OCTET_LENGTH 25 attr SQL_DESC_PRECISION 23 attr SQL_DESC_SCALE 4 attr SQL_DESC_DISPLAY_SIZE 25 select datetime '2006-04-14' attr SQL_COLUMN_LENGTH 16 attr SQL_COLUMN_PRECISION 23 attr SQL_COLUMN_SCALE 3 attr SQL_DESC_LENGTH 23 attr SQL_DESC_OCTET_LENGTH 16 attr SQL_DESC_PRECISION 3 attr SQL_DESC_SCALE 3 attr SQL_DESC_DISPLAY_SIZE 23 attr SQL_DESC_CONCISE_TYPE SQL_TIMESTAMP select smalldatetime '2006-04-14' attr SQL_COLUMN_LENGTH 16 attr SQL_COLUMN_PRECISION 16 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 16 attr SQL_DESC_OCTET_LENGTH 16 attr SQL_DESC_PRECISION 0 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 19 attr SQL_DESC_CONCISE_TYPE SQL_TIMESTAMP select char(10) 'hi!' attr SQL_COLUMN_LENGTH 10 attr SQL_COLUMN_PRECISION 10 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 10 attr SQL_DESC_OCTET_LENGTH 10 attr SQL_DESC_PRECISION 10 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 10 attr SQL_DESC_TYPE_NAME char select varchar(11) 'hi!' attr SQL_COLUMN_LENGTH 11 attr SQL_COLUMN_PRECISION 11 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 11 attr SQL_DESC_OCTET_LENGTH 11 attr SQL_DESC_PRECISION 11 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 11 attr SQL_DESC_TYPE_NAME varchar select nchar(12) 'hi!'+nchar(10) attr SQL_COLUMN_LENGTH 24 attr SQL_COLUMN_PRECISION 12 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 12 attr SQL_DESC_OCTET_LENGTH 24 attr SQL_DESC_PRECISION 12 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 12 attr SQL_DESC_TYPE_NAME nchar select nvarchar(13) 'hi!'+nchar(10) attr SQL_COLUMN_LENGTH 26 attr SQL_COLUMN_PRECISION 13 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 13 attr SQL_DESC_OCTET_LENGTH 26 attr SQL_DESC_PRECISION 13 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 13 attr SQL_DESC_TYPE_NAME nvarchar select text 'hi!' attr SQL_COLUMN_LENGTH 4096 attr SQL_COLUMN_PRECISION 4096 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 4096 attr SQL_DESC_OCTET_LENGTH 4096 attr SQL_DESC_PRECISION 4096 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 4096 attr SQL_DESC_TYPE_NAME text select ntext 'hi!' attr SQL_COLUMN_LENGTH 4096 attr SQL_COLUMN_PRECISION 2048 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 2048 attr SQL_DESC_OCTET_LENGTH 4096 attr SQL_DESC_PRECISION 2048 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 2048 attr SQL_DESC_TYPE_NAME ntext select binary(10) 'hi!' attr SQL_COLUMN_LENGTH 10 attr SQL_COLUMN_PRECISION 10 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 10 attr SQL_DESC_OCTET_LENGTH 10 attr SQL_DESC_PRECISION 10 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 20 select varbinary(11) 'hi!' attr SQL_COLUMN_LENGTH 11 attr SQL_COLUMN_PRECISION 11 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 11 attr SQL_DESC_OCTET_LENGTH 11 attr SQL_DESC_PRECISION 11 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 22 select image 'hi!' attr SQL_COLUMN_LENGTH 4096 attr SQL_COLUMN_PRECISION 4096 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 4096 attr SQL_DESC_OCTET_LENGTH 4096 attr SQL_DESC_PRECISION 4096 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 8192 # test all types using ODBC 3 odbc 3 select bit 0 attr SQL_COLUMN_LENGTH 1 attr SQL_COLUMN_PRECISION 1 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 1 attr SQL_DESC_OCTET_LENGTH 1 attr SQL_DESC_PRECISION 1 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 1 select tinyint 0 attr SQL_COLUMN_LENGTH 1 attr SQL_COLUMN_PRECISION 3 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 3 attr SQL_DESC_OCTET_LENGTH 1 attr SQL_DESC_PRECISION 3 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 3 select smallint 0 attr SQL_COLUMN_LENGTH 2 attr SQL_COLUMN_PRECISION 5 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 5 attr SQL_DESC_OCTET_LENGTH 2 attr SQL_DESC_PRECISION 5 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 6 select int 0 attr SQL_COLUMN_LENGTH 4 attr SQL_COLUMN_PRECISION 10 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 10 attr SQL_DESC_OCTET_LENGTH 4 attr SQL_DESC_PRECISION 10 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 11 select bigint 0 attr SQL_COLUMN_LENGTH 8 attr SQL_COLUMN_PRECISION 19 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 19 attr SQL_DESC_OCTET_LENGTH 8 attr SQL_DESC_PRECISION 19 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 20 select real 0 attr SQL_COLUMN_LENGTH 4 attr SQL_COLUMN_PRECISION 7 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 24 attr SQL_DESC_OCTET_LENGTH 4 attr SQL_DESC_PRECISION 24 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 14 select float 0 attr SQL_COLUMN_LENGTH 8 attr SQL_COLUMN_PRECISION 15 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 53 attr SQL_DESC_OCTET_LENGTH 8 attr SQL_DESC_PRECISION 53 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 24 select smallmoney 0 attr SQL_COLUMN_LENGTH 12 attr SQL_COLUMN_PRECISION 10 attr SQL_COLUMN_SCALE 4 attr SQL_DESC_LENGTH 10 attr SQL_DESC_OCTET_LENGTH 12 attr SQL_DESC_PRECISION 10 attr SQL_DESC_SCALE 4 attr SQL_DESC_DISPLAY_SIZE 12 attr SQL_DESC_CONCISE_TYPE SQL_DECIMAL select money 0 attr SQL_COLUMN_LENGTH 21 attr SQL_COLUMN_PRECISION 19 attr SQL_COLUMN_SCALE 4 attr SQL_DESC_LENGTH 19 attr SQL_DESC_OCTET_LENGTH 21 attr SQL_DESC_PRECISION 19 attr SQL_DESC_SCALE 4 attr SQL_DESC_DISPLAY_SIZE 21 attr SQL_DESC_CONCISE_TYPE SQL_DECIMAL select numeric(10,2) 0 attr SQL_COLUMN_LENGTH 12 attr SQL_COLUMN_PRECISION 10 attr SQL_COLUMN_SCALE 2 attr SQL_DESC_LENGTH 10 attr SQL_DESC_OCTET_LENGTH 12 attr SQL_DESC_PRECISION 10 attr SQL_DESC_SCALE 2 attr SQL_DESC_DISPLAY_SIZE 12 select numeric(23,4) 0 attr SQL_COLUMN_LENGTH 25 attr SQL_COLUMN_PRECISION 23 attr SQL_COLUMN_SCALE 4 attr SQL_DESC_LENGTH 23 attr SQL_DESC_OCTET_LENGTH 25 attr SQL_DESC_PRECISION 23 attr SQL_DESC_SCALE 4 attr SQL_DESC_DISPLAY_SIZE 25 select datetime '2006-04-14' attr SQL_COLUMN_LENGTH 16 attr SQL_COLUMN_PRECISION 23 attr SQL_COLUMN_SCALE 3 attr SQL_DESC_LENGTH 23 attr SQL_DESC_OCTET_LENGTH 16 attr SQL_DESC_PRECISION 3 attr SQL_DESC_SCALE 3 attr SQL_DESC_DISPLAY_SIZE 23 attr SQL_DESC_CONCISE_TYPE SQL_TYPE_TIMESTAMP select smalldatetime '2006-04-14' attr SQL_COLUMN_LENGTH 16 attr SQL_COLUMN_PRECISION 16 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 16 attr SQL_DESC_OCTET_LENGTH 16 attr SQL_DESC_PRECISION 0 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 19 attr SQL_DESC_CONCISE_TYPE SQL_TYPE_TIMESTAMP select char(10) 'hi!' attr SQL_COLUMN_LENGTH 10 attr SQL_COLUMN_PRECISION 10 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 10 attr SQL_DESC_OCTET_LENGTH 10 attr SQL_DESC_PRECISION 10 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 10 select varchar(11) 'hi!' attr SQL_COLUMN_LENGTH 11 attr SQL_COLUMN_PRECISION 11 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 11 attr SQL_DESC_OCTET_LENGTH 11 attr SQL_DESC_PRECISION 11 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 11 select nchar(12) 'hi!'+nchar(10) attr SQL_COLUMN_LENGTH 24 attr SQL_COLUMN_PRECISION 12 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 12 attr SQL_DESC_OCTET_LENGTH 24 attr SQL_DESC_PRECISION 12 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 12 attr SQL_DESC_TYPE_NAME nchar select nvarchar(13) 'hi!'+nchar(10) attr SQL_COLUMN_LENGTH 26 attr SQL_COLUMN_PRECISION 13 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 13 attr SQL_DESC_OCTET_LENGTH 26 attr SQL_DESC_PRECISION 13 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 13 attr SQL_DESC_TYPE_NAME nvarchar select text 'hi!' attr SQL_COLUMN_LENGTH 4096 attr SQL_COLUMN_PRECISION 4096 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 4096 attr SQL_DESC_OCTET_LENGTH 4096 attr SQL_DESC_PRECISION 4096 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 4096 select ntext 'hi!' attr SQL_COLUMN_LENGTH 4096 attr SQL_COLUMN_PRECISION 2048 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 2048 attr SQL_DESC_OCTET_LENGTH 4096 attr SQL_DESC_PRECISION 2048 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 2048 attr SQL_DESC_TYPE_NAME ntext select binary(10) 'hi!' attr SQL_COLUMN_LENGTH 10 attr SQL_COLUMN_PRECISION 10 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 10 attr SQL_DESC_OCTET_LENGTH 10 attr SQL_DESC_PRECISION 10 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 20 select varbinary(11) 'hi!' attr SQL_COLUMN_LENGTH 11 attr SQL_COLUMN_PRECISION 11 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 11 attr SQL_DESC_OCTET_LENGTH 11 attr SQL_DESC_PRECISION 11 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 22 select image 'hi!' attr SQL_COLUMN_LENGTH 4096 attr SQL_COLUMN_PRECISION 4096 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 4096 attr SQL_DESC_OCTET_LENGTH 4096 attr SQL_DESC_PRECISION 4096 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 8192 select uniqueidentifier 'AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE' attr SQL_COLUMN_LENGTH 16 attr SQL_COLUMN_PRECISION 36 attr SQL_COLUMN_SCALE 0 attr SQL_DESC_LENGTH 36 attr SQL_DESC_OCTET_LENGTH 16 attr SQL_DESC_PRECISION 36 attr SQL_DESC_SCALE 0 attr SQL_DESC_DISPLAY_SIZE 36 attr SQL_DESC_TYPE_NAME uniqueidentifier select sql_variant 'hello' #attr SQL_COLUMN_LENGTH 0 #attr SQL_COLUMN_PRECISION 8000 attr SQL_COLUMN_SCALE 0 #attr SQL_DESC_LENGTH 8000 #attr SQL_DESC_OCTET_LENGTH 0 #attr SQL_DESC_PRECISION 8000 attr SQL_DESC_SCALE 0 #attr SQL_DESC_DISPLAY_SIZE 8000 attr SQL_DESC_TYPE_NAME sql_variant select int 654 select sql_variant 123 #attr SQL_COLUMN_LENGTH 0 #attr SQL_COLUMN_PRECISION 8000 attr SQL_COLUMN_SCALE 0 #attr SQL_DESC_LENGTH 8000 #attr SQL_DESC_OCTET_LENGTH 0 #attr SQL_DESC_PRECISION 8000 attr SQL_DESC_SCALE 0 #attr SQL_DESC_DISPLAY_SIZE 8000 attr SQL_DESC_TYPE_NAME sql_variant # some additional tests using ARD set DESC_CONCISE_TYPE SQL_NUMERIC set DESC_PRECISION 20 set DESC_SCALE 4 set DESC_CONCISE_TYPE SQL_INTEGER attr DESC_TYPE SQL_INTEGER attr DESC_LENGTH 0 attr DESC_PRECISION 0 attr DESC_SCALE 0