Provided by: libopendbx1-dev_1.4.6-17_amd64 bug

NAME

       odbx_set_option - Change behaviour of the database backend

SYNOPSIS

       #include <opendbx/api.h>

       int odbx_set_option (odbx_t* handle, unsigned int option, void* value);

DESCRIPTION

       Changes the value of the specified option in the backend module or the native database library associated
       to  handle  by  odbx_init().  Before  trying to set an option, it should be tested with odbx_get_option()
       first to ensure that it is supported by the backend. Almost all options need to be set before  connecting
       to the database server using odbx_bind() to take any effect.

       The first parameter handle is the connection object created and returned by odbx_init() which becomes in‐
       valid as soon as it was supplied to odbx_finish().

       There  are  several option values defined as named constants in the odbx.h header file. The available op‐
       tions whose values can be changed are:

       ODBX_OPT_TLS
              Use encryption to transmit all data securely over the network via SSL or TLS. This option  can  be
              set  to  ODBX_TLS_NEVER  (the default value) to prevent encrpytion, ODBX_TLS_ALWAYS to enforce en‐
              cryption and to fail if it can't be used between the client library and the server or ODBX_TLS_TRY
              to use encryption if possible with the option to fall back to a connection which isn't encrypted.

       ODBX_OPT_MULTI_STATEMENTS
              Enables the  database  server  to  accept  multiple  statements  in  one  query  string  sent  via
              odbx_query()  if  the value of value is set to ODBX_ENABLE. Although, it might be possible to dis‐
              able it by setting it to ODBX_DISABLE.

       ODBX_OPT_PAGED_RESULTS
              All database servers and client libraries are able to transfer the records row  by  row.  Some  of
              them  can also transfer multiple rows or even all at once to minimize server load, network traffic
              and latency. The downside of this is an increased memory consumption. If paged  results  are  sup‐
              ported  by the backend, passing positive values will fetch the specified number of records at once
              from the database server. The value of zero ("0") is special in this  case  because  it  asks  the
              backend module to retrieve all records at once

       ODBX_OPT_COMPRESS
              Enable  compressed  network  traffic  between  database  client  and server. This can maximize the
              throughput if the network is the bottleneck. Pass an integer variable with ODBX_ENABLE  to  enable
              compression or with ODBX_DISABLE to disable it for this connection

       ODBX_OPT_MODE
              Some database servers support different modes of operation, e.g. modes for compliance to other SQL
              implementations  or  completely  different query languages. This option is available since OpenDBX
              1.1.4. value must point to a zero terminated string and for a detailed description  of  the  MySQL
              modes look at their website ⟨http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html⟩

       If  not stated otherwise, the type of the variable passed to the third parameter value must be an integer
       pointer. Its values should be in the range specified by the option being changed.

RETURN VALUE

       odbx_set_option() returns ODBX_ERR_SUCCESS, or an error code whose value is less than zero if one of  the
       operations  couldn't  be completed successfully. Possible error codes are listed in the error section and
       they can be feed to odbx_error() and odbx_error_type() to get further details.

ERRORS

       -ODBX_ERR_PARAM
              One of the supplied parameters is invalid or is NULL and this isn't allowed in  the  used  backend
              module or in the native database client library

       -ODBX_ERR_OPTION
              The  value  passed to the option parameter isn't one of the values listed in this manual. The con‐
              tent of value remains unchanged if this error occurs

       -ODBX_ERR_OPTRO
              The option isn't intended for being changed and could only be read via odbx_get_option()

       -ODBX_ERR_OPTWR
              Setting the option failed for various reasons. It's most likely that the value  passed  via  value
              didn't match the range of values expected by the backend or the native database library

SEE ALSO

       odbx_bind(), odbx_error(), odbx_get_option()

                                                  3 April 2024                                odbx_set_option(3)