| FreeTDS API
    | 
| Public Attributes | |
| TDS_DESC * | apd | 
| TDS_DESC * | ard | 
| struct _hsattr | attr | 
| unsigned int | curr_param_row | 
| TDSCURSOR * | cursor | 
| DSTR | cursor_name | 
| struct _hdbc * | dbc | 
| TDSDYNAMIC * | dyn | 
| struct _sql_errors | errs | 
| SQLSMALLINT | htype | 
| TDS_DESC * | ipd | 
| TDS_DESC * | ird | 
| unsigned | is_prepared_query:1 | 
| tds_mutex | mtx | 
| unsigned | need_reprepare:1 | 
| Prepared statement needs to be prepared again. | |
| struct _hstmt * | next | 
| next in list | |
| unsigned int | num_param_rows | 
| TDS_DESC * | orig_apd | 
| TDS_DESC * | orig_ard | 
| unsigned int | param_count | 
| number of parameter in current query | |
| unsigned | param_data_called:1 | 
| int | param_num | 
| last valid parameter in params, it's a ODBC index (from 1 relative to descriptor) | |
| TDSPARAMINFO * | params | 
| parameters saved | |
| size_t | prepared_pos | 
| position in prepared query to check parameters, used only in RPC | |
| unsigned | prepared_query_is_func:1 | 
| unsigned | prepared_query_is_rpc:1 | 
| struct _hstmt * | prev | 
| previous in list | |
| DSTR | query | 
| query to execute | |
| int | row | 
| TDS_INT8 | row_count | 
| row count to return | |
| TDS_ODBC_ROW_STATUS | row_status | 
| status of row, it can happen that this flag mark that we are still parsing row, this it's normal | |
| TDS_ODBC_SPECIAL_ROWS | special_row | 
| SQLULEN | sql_rowset_size | 
| TDSSOCKET * | tds | 
| socket (only if active) | |
| unsigned _hstmt::need_reprepare | 
Prepared statement needs to be prepared again.
This can happen if the parameters was changed or not specified.