Bug #3487 use mysql_use_result() functoin also for mysql_stmt based handling
| Submitted: | 16 Apr 2004 17:05 | Modified: | 30 Nov 2009 14:20 |
|---|---|---|---|
| Reporter: | wim delvaux | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: C API (client library) | Severity: | S4 (Feature request) |
| Version: | 4.1.2 | OS: | Linux (Linux) |
| Assigned to: | CPU Architecture: | Any |
[16 Apr 2004 17:05]
wim delvaux
[12 May 2004 21:48]
Konstantin Osipov
Yes, now there is no way to find out length of long column before actual fetch.
If you use mysql_stmt_store_result function and buffer entire result set in the statement,
you can use field->max_length for this column from statement result metadata (which can be
obtained by mysql_stmt_result_metadata).
But this works only if you set STMT_ATTR_UPDATE_MAX_LENGTH attribute of the statement with
recently implemented mysql_stmt_attr_set.
Alternatively you can use mysql_stmt_fetch with buffer for this column of zero length and
pointer to write real lenght to, followed by mysql_stmt_fetch_column.
Example:
real_length= 0;
bind[0].buffer= 0;
bind[0].buffer_length= 0;
bind[0].length= &real_length
mysql_stmt_bind_result(stmt, bind);
mysql_stmt_fetch(stmt);
if (real_length > 0)
{
data= malloc(real_length);
bind[0].buffer= data;
bind[0].buffer_length= real_length;
mysql_stmt_fetch_column(stmt, 0, bind, 0);
}
[13 May 2004 1:39]
wim delvaux
OK thanx for the reply. Perhaps the documentation should be a be more clear on that W
[30 Nov 2009 14:20]
Valeriy Kravchuk
I think this is properly documented already. See http://dev.mysql.com/doc/refman/5.1/en/mysql-stmt-attr-set.html http://dev.mysql.com/doc/refman/5.1/en/mysql-stmt-fetch.html
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.038 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.