freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
RE: [freetds] Problem with data type conversions and FreeTDS
- From: "ZIGLIO Frediano" <Frediano.Ziglio AT vodafone.com>
- To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
- Subject: RE: [freetds] Problem with data type conversions and FreeTDS
- Date: Wed, 30 Jul 2003 15:27:06 +0200
>
> Hi all,
>
Hi!
> I had a friend create a table on his M$ SQL server 2000 with
> just one row and as many columns as data types. He filled
> each field with a different value corresponding to data type. E.g.
>
> bigint, bit, char, datetime, float, money, nvarchar, unique
> 1111119,1,c,30/04/2003 13:00:19,23.45, 123.45, hello,
> {F44A-etc-...blah}
>
> Note the Unique identifier in the above example is not the
> real value I just couldn't be bothered to write it out in full!
>
> Anyway using the code snippet below works great except when
> trying to convert and print the unique ID. What should I be
> doing to allow all data types to be printed successfully as
> with tsql and sqsh?
>
> <snip>
>
Wow... C++ !!!
> const string& tds::connection::print_field (const int &column) {
string tds::connection::print_field (const int column) {
(return value, not input reference)
> static string str;
string str;
??? why static ???
> unsigned char *row = results->current_row;
> const int type = results->columns[column]->column_type;
> const int offset = results->columns[column]->column_offset;
> const int size = results->columns[column]->column_cur_size;
> const int conversion_type = tds_get_conversion_type (type, size);
>
> str.clear ();
>
remove str.clear(); line
> if (tds_get_null (const_cast <unsigned char *> (row), column))
row is already unsigned char *, cast unneeded
> str = "NULL";
> else {
> CONV_RESULT convert;
> unsigned char *value = &(row[offset]);
>
> if (is_blob_type (type))
> value = (unsigned char*) ((TDSBLOBINFO *) value)->textvalue;
>
> if (tds_convert (context, conversion_type, (TDS_CHAR
> *) value,
> size, SYBVARCHAR, &convert) < 0)
> throw tds::error ("Failed to convert row type at
> column.");
>
Seem correct...
> str = convert.c;
> free (convert.c);
> }
>
> return str;
> }
>
> </snip>
>
> I have tried printing both the C++ tds::string and the
> converted value* both fail.
>
> Can anyone help! Plleasse!!
>
What version of FreeTDS are you using ??
> Many thanks
>
> James Vanns
>
freddy77
-
[freetds] Problem with data type conversions and FreeTDS,
James Vanns, 07/30/2003
- <Possible follow-up(s)>
-
RE: [freetds] Problem with data type conversions and FreeTDS,
ZIGLIO Frediano, 07/30/2003
- RE: [freetds] Problem with data type conversions and FreeTDS, James Vanns, 07/30/2003
-
RE: [freetds] Problem with data type conversions and FreeTDS,
ZIGLIO Frediano, 07/30/2003
- RE: [freetds] Problem with data type conversions and FreeTDS, James Vanns, 07/30/2003
-
RE: [freetds] Problem with data type conversions and FreeTDS,
ZIGLIO Frediano, 07/30/2003
- RE: [freetds] Problem with data type conversions and FreeTDS, James Vanns, 07/30/2003
-
RE: [freetds] Problem with data type conversions and FreeTDS,
ZIGLIO Frediano, 07/30/2003
- RE: [freetds] Problem with data type conversions and FreeTDS, James Vanns, 07/30/2003
-
RE: [freetds] Problem with data type conversions and FreeTDS,
Lowden, James K, 07/30/2003
- RE: [freetds] Problem with data type conversions and FreeTDS, James Vanns, 07/30/2003
- RE: [freetds] Problem with data type conversions and FreeTDS, Michael Peppler, 07/30/2003
Archive powered by MHonArc 2.6.24.