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