[egenix-users] Re: [unixODBC-support] Solid, unixODBC & mxODBC: Restricted datatype attribute violation

Michal Vitecek fuf at mageo.cz
Tue Nov 15 13:04:39 CET 2005


 hello Marc,

 some more information ...

Michal Vitecek wrote:
>Michal Vitecek wrote:
>>M.-A. Lemburg wrote:
>>>Michal Vitecek wrote:
>>>>  hello everyone, Marc,
>>>> 
>>>>  i'm having problems with Solid, unixODBC, mxODBC combo (please read
>>>>  below). i originally posted the problem description to unixodbc-support
>>>>  list but it seems this is not their problem.
>>>> 
>>>>  can someone please help how to get around this problem?
>>>
>>>Some ODBC drivers don't like it when the app unbinds columns.
>>>
>>>The best thing to do in this case, is to simply comment
>>>out the unbinding section in mxODBC.c.
>>
>> i looked at the code but unfortunately failed to find the spot to
>> comment. can you please be more specific?
>
> i think i have found the place (mx/ODBC/unixODBC/mxODBC.c:3086).
> however commenting out the unbinding code doesn't help:
>
> mxODBC.InternalError: ('S1090', 25204, '[unixODBC]Invalid string or
> buffer length', 3258)

 if i set the GETDATA_THRESHOLD from 64k to 386k everything works
 correctly because vars[i].use_getdata == 0.
 
 however when the threshold is lowered again to 64k, the value of
 vars[i].use_getdata == 1. SQLFetch() call in mxODBCursor_Fetch()
 returns a value which mxODBC_SQLCheck() considers as an error and so
 SQLGetData() is never called.

>
> any suggestions? i *really* need get this thing working.
>
>    thanks,
>            Michal
>
>
>>>>  i'm using Solid 3.5, mxODBC 2.0.7, unixODBC 2.2.11.
>>>
>>>Solid's ODBC driver is known to have the unbind incompatibility,
>>>so commenting out the section will fix the problem. The Nexus DB
>>>ODBC driver is another such candidate.
>>
>> in the meantime i tested with Solid 4.2 and the error 'Restricted data
>> type attribute violation' gets replaced with another one: 'String data,
>> right truncated' *sigh*.
>>
>> can you please help again?
>>
>>        thanks a lot,
>>                Michal
>>
>>>> 
>>>> Martin J. Evans wrote:
>>>>>Nick Gorham wrote:
>>>>>>Michal Vitecek wrote:
>>>>>>>Nick Gorham wrote:
>>>>>>>Michal Vitecek wrote:
>>>>>>>>>i'm in the process of trying to use unixODBC in between the Solid
>>>>>>>>>database engine and the mxODBC (python extension which adds ODBC
>>>>>>>>>support). the problem is that i'm unable to retrieve values of columns
>>>>>>>>>which are defined as 'VARCHAR(262144)' (256KB) and get the following
>>>>>>>>>error:
>>>>>>>>>
>>>>>>>>>Traceback: ProgrammingError ('07006', -1, '[unixODBC]Restricted data 
>>>>>>>>>type attribute violation', 3326): from [snip]
>>>>>>>>>
>>>>>>>>>when i try to retrieve the column values via isql all i get is empty
>>>>>>>>>strings for the column (all other columns of different types are okay).
>>>>>>>>>   
>>>>>>>>
>>>>>>>>At first sight I would guess you are asking the driver for a column 
>>>>>>>>in a type it doesn't understand.
>>>>>>>>
>>>>>>>>isql doesn't show long fields so that may be the problem. A ODBC 
>>>>>>>>trace would at least show what mxODBC is asking the driver to do.
>>>>>>>> 
>>>>>>>
>>>>>>>
>>>>>>>below is the relevant (i think) part of the trace. thank you again.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>Not much help, but I think the problem is between the driver and the 
>>>>>>app, the app is binding a null pointer, which I suspect is confusing the 
>>>>>>driver
>>>>>
>>>>>and binding a NULL TargetValuePtr and StrLen_Or_Ind is the same as
>>>>>unbinding - I think.
>>>>>
>>>>>
>>>>>>[ODBC][696][SQLBindCol.c][165]
>>>>>>              Entry:
>>>>>>                      Statement = 0x8298a70
>>>>>>                      Column Number = 1            
>>>>>>                      Target Type = 1 SQL_CHAR            
>>>>>>                      Target Value = (nil)            
>>>>>>                      Buffer Length = 0            
>>>>>>                      StrLen Or Ind = (nil)
>>>>>>
>>
>>-- 
>>		fuf		(fuf at mageo.cz)
>>
>>
>>_______________________________________________________________________
>>eGenix.com User Mailing List                     http://www.egenix.com/
>>https://www.egenix.com/mailman/listinfo/egenix-users
>
>-- 
>		fuf		(fuf at mageo.cz)
>
>
>_______________________________________________________________________
>eGenix.com User Mailing List                     http://www.egenix.com/
>https://www.egenix.com/mailman/listinfo/egenix-users

-- 
		fuf		(fuf at mageo.cz)



More information about the egenix-users mailing list