Off hand, it's something like this:
Result result = query.store();
Result::iterator i = result.begin();
Row row;
// loop through all results
for( ; i != result.end(); i++ )
{
row = *i;
unsigned long *col_lengths = result.fetch_lengths();
// row.raw_data(0) is the first selected column
// and col_lengths[0] is the size of it
// do something...
memcpy(dest, row.raw_data(0), col_lengths[0]);
}
- Chris
On Sun, Apr 16, 2006 at 09:57:09PM -0500, Bill K wrote:
> Hello,
>
> After trial and error over a few hours, it looks like retrieving binary
> data that contains 0 (null) characters is not possible with mysql++. Is
> this correct?
>
> I am using mysql++ 2.1.1 and MySQL Server 5.0
>
> What I am doing with mysql++ is executing this:
> "SELECT pri_key, CAST(message AS BINARY) message FROM blockedmessages;"
>
> The message column is defined as a BLOB in MySQL.
>
> The row.at(1).size() and row.at(1).length() return the length of the
> data as if it were a string (terminated by the first occurring null
> character). There seems to be no way with mysql++ to easily access this
> binary data in full.
>
> When I hard code a malloc const char* to the right length of the data, I
> can see that all the binary is actually put into memory, but there is no
> reference provided to access it. You just have to know how long the data
> really is and use a malloc or something.
>
> Am I right, or am I missing something?
>
> Thanks!
>
> - Bill Krahmer
>
>
>
> --
> MySQL++ Mailing List
> For list archives: http://lists.mysql.com/plusplus
> To unsubscribe: http://lists.mysql.com/plusplus?unsub=1