Thread: SqlGetData problems

SqlGetData problems

From
Mika Mäntylä
Date:
I have discovered two problems with SQLGetData. I have hacked my way
around these problems, but the fixes are not very elegant ...

1)
SqlGetData:
The target column's type is SQL_LONGVARBINARY (other binary fields might
do as well), and you try to get them as SQL_C_CHAR. This return the data
in binary format, instead of ASCII characters as hexadecimal form
(11111111 -> FF).

2)
SqlGetData:
The target column's type is SQL_DATE or SQL_TIMESTAMP, and you try to
get them as SQL_C_CHAR. This will cause successive calls to SQLGetData
to return the same value repeatedly. This results non-ending loop in the
following code, as value of got is constantly above zero. Note:
st.GetData is wrapper around SQLGetData.

while( (got=st.GetData( i, buf, sizeof(buf), SQL_C_CHAR ))>0 )
    line.append( buf );


--
Mika Mäntylä            || SoberIT
+358 9 451 6001         || Spektri Kvartti 3330a



Re: SqlGetData problems

From
Hiroshi Inoue
Date:
Mika M舅tyl\xE7wrote:
>
> I have discovered two problems with SQLGetData. I have hacked my way
> around these problems, but the fixes are not very elegant ...
>
> 1)
> SqlGetData:
> The target column's type is SQL_LONGVARBINARY (other binary fields might
> do as well), and you try to get them as SQL_C_CHAR. This return the data
> in binary format, instead of ASCII characters as hexadecimal form
> (11111111 -> FF).

I will take care of this but I'm not sure when I could
do it.

>
> 2)
> SqlGetData:
> The target column's type is SQL_DATE or SQL_TIMESTAMP, and you try to
> get them as SQL_C_CHAR. This will cause successive calls to SQLGetData
> to return the same value repeatedly. This results non-ending loop in the
> following code, as value of got is constantly above zero. Note:
> st.GetData is wrapper around SQLGetData.
>
> while( (got=st.GetData( i, buf, sizeof(buf), SQL_C_CHAR ))>0 )
>         line.append( buf );
>

This seems easier to fix than fixing 1) and so I would
be able to fix it in the near future.

regards,
Hiroshi Inoue