[BUG] 0.91 SQL Anywhere SQLColumns

Lionel Elie Mamane <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
Hi,

When connecting to SQL Anywhere 10.0.1.3716, SQLColumns() returns
wrong data: the columns are not at their expected
position, don't have the right name, don't contain the right data, ...
http://msdn.microsoft.com/en-us/library/windows/desktop/ms711683(v=vs.85).aspx

E.g. column "ordinal_position" should be at position 17
but it is at position 14 and is called "column_id".
It seems the first 12 columns are correct (these are the ODBC 1.0
columns), and after that, the two extra columns are incorrect, and
most are missing.

The source code says:

/**
 * SQLColumns
 *
 * Return column information for a table or view. This is
 * mapped to a call to sp_columns which - lucky for us - returns
 * the exact result set we need.
 *
 * exec sp_columns [ @table_name = ] object 
 *                 [ , [ @table_owner = ] owner ] 
 *                 [ , [ @table_qualifier = ] qualifier ] 
 *                 [ , [ @column_name = ] column ] 
 *                 [ , [ @ODBCVer = ] ODBCVer ] 
 *
 */


Well, that assumption is wrong:

1> exec sp_columns @table_name='COMPANY';
2> go
table_qualifier	table_owner	table_name	column_name	type_id	type_name	precision	length	scale	radix nullable remarks ss_domain_id column_id
compta		DBA		COMPANY		CMPY_CODE	1	char		8		8	0	NULL  0	       NULL    47	    1
compta		DBA		COMPANY		LEGAL_FORM_CODE	1	char		4		4	0	NULL  0	       NULL    47	    2
compta		DBA		COMPANY		CURY_CODE	1	char		3		3	0	NULL  0	       NULL    47	    3
compta		DBA		COMPANY		CTRY_CODE	1	char		2		2	0	NULL  0	       NULL    47	    4
compta		DBA		COMPANY		CMPY_NAME	12	varchar		250		250	0	NULL  0	       NULL    39	    5
compta		DBA		COMPANY		CMPY_VAT_NUM	12	T_VAT_NUMBER	20		20	0	NULL  1	       NULL    39	    6
compta		DBA		COMPANY		CMPY_VAT_ID	12	T_VAT_NUMBER	20		20	0	NULL  1	       NULL    39	    7
compta		DBA		COMPANY		CMPY_TRADE_REG	12	varchar		20		20	0	NULL  1	       NULL    39	    8
compta		DBA		COMPANY		CMPY_TAX_BUR	1	char		10		10	0	NULL  1	       NULL    47	    9
compta		DBA		COMPANY		CMPY_VAT_DECL_VRMODE	1		char		1	1	0     NULL     1       NULL	    47 10
compta		DBA		COMPANY		ADDR_NUM		1		char		10	10	0     NULL     1       NULL	    47 11
compta		DBA		COMPANY		ADDR_STREET		12		varchar		50	50	0     NULL     1       NULL	    39 12
compta		DBA		COMPANY		ADDR_BOX		12		varchar		20	20	0     NULL     1       NULL	    39 13
compta		DBA		COMPANY		ADDR_SUPP		12		varchar		50	50	0     NULL     1       NULL	    39 14
compta		DBA		COMPANY		ADDR_ZIP_CODE		12		varchar		20	20	0     NULL     1       NULL	    39 15
compta		DBA		COMPANY		ADDR_CITY		12		varchar		35	35	0     NULL     1       NULL	    39 16
compta		DBA		COMPANY		CURY_CODE2		1		char		3	3	0     NULL     1       NULL	    47 17
compta		DBA		COMPANY		cmpy_activity		12		varchar		50	50	0     NULL     1       NULL	    39 18
compta		DBA		COMPANY		CMPY_XML_VAT_CODE	12		varchar		5	5	0     NULL     1       NULL	    39 19
compta		DBA		COMPANY		CMPY_XML_AUTH_CODE	12		varchar		30	30	0     NULL     1       NULL	    39 20
compta		DBA		COMPANY		CMPY_NUM_CETREL		12		varchar		50	50	0     NULL     1       NULL	    39 21
compta		DBA		COMPANY		CMPY_DOM_FILE_ID	2		numeric		10	10	0     10       1       NULL	    63 22
compta		DBA		COMPANY		SW_DECL_VAT_PAID	2		numeric		1	1	0     10       1       NULL	    63 23
compta		DBA		COMPANY		cmpy_debut_exercice	12		varchar		10	10	0     NULL     1       NULL	    39 24
compta		DBA		COMPANY		intrastat_declaration_type		2		numeric	1	1     0	       10      1	    NULL 63 25
compta		DBA		COMPANY		CMPY_COMMENT				12		varchar	1024	1024  0	       NULL    1	    NULL 39 26
compta		DBA		COMPANY		CMPY_PICTURE				-4		image	32767	32767 0	       NULL    1	    NULL 34 27
compta		DBA		COMPANY		CMPY_XML_ECDF_CODE			12		varchar	6	6     0	       NULL    1	    NULL 39 28



-- 
Lionel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.