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

Michal Vitecek fuf at mageo.cz
Tue Nov 15 12:32:05 CET 2005


 hello Marc,

 a bit of information ...

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)

 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)



More information about the egenix-users mailing list