odbc_binmode

Handling of binary column data

&reftitle.description; `bool` `odbc_binmode` `resource` `result_id` `int` `mode`

Enables handling of binary column data. ODBC SQL types affected are `BINARY`, `VARBINARY`, and `LONGVARBINARY`.

When binary SQL data is converted to character C data, each byte (8 bits) of source data is represented as two ASCII characters. These characters are the ASCII character representation of the number in its hexadecimal form. For example, a binary `00000001` is converted to `"01"` and a binary `11111111` is converted to `"FF"`.

## LONGVARBINARY handling

binmode | longreadlen | result
`ODBC_BINMODE_PASSTHRU` | 0 | passthru
`ODBC_BINMODE_RETURN` | 0 | passthru
`ODBC_BINMODE_CONVERT` | 0 | passthru
`ODBC_BINMODE_PASSTHRU` | 0 | passthru
`ODBC_BINMODE_PASSTHRU` | >0 | passthru
`ODBC_BINMODE_RETURN` | >0 | return as is
`ODBC_BINMODE_CONVERT` | >0 | return as char

If `odbc_fetch_into` is used, passthru means that an empty string is returned for these columns.

&reftitle.parameters;

`result_id`

- The result identifier.

  If `result_id` is `0`, the settings apply as default for new results.

  Default for `longreadlen` is `4096` and `mode` defaults to `ODBC_BINMODE_RETURN`. Handling of binary long columns is also affected by `odbc_longreadlen`.

`mode`

- Possible values for `mode` are:

  - `ODBC_BINMODE_PASSTHRU`: Passthru BINARY data

  - `ODBC_BINMODE_RETURN`: Return as is

  - `ODBC_BINMODE_CONVERT`: Convert to char and return

&reftitle.returnvalues;

&return.success;