---
name: "OpenDBX"
section: "3"
platform: "linux"
package: "opendbx"
version: "1.4.6-13"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/OpenDBX"
---

# OpenDBX(3)

OpenDBX C++ API.

## NAME

OpenDBX - **OpenDBX** C++ API.

## SYNOPSIS

### Classes

class **Conn**\
 Encapsulates a connection to a database.  class **Exception**\
 Exceptions thrown by the **OpenDBX** classes.  class **Lob**\
 Handling large objects if supported by the database.  class **Result**\
 Provides result sets from the database.  class **Stmt**\
 Statement object.

## Detailed Description

**OpenDBX** C++ API.

The **OpenDBX** C++ API is an object-oriented database abstraction layer based on the procedural C API of the **OpenDBX** library. The C++ API provides objects encapsulating connections, statements, result sets and large objects.

Using the API starts with establishing a connection to the database server by creating an instance of the **Conn** class with the parameters backend, host and port. **Conn::getCapability()** tests the implemented capabilites of the underlying database library while **Conn::getOption()** and **Conn::setOption()** has be used to test for and change a number of options. The options must be changed before authenticating the connection with the **Conn::bind()** method to have any effect. It's also possible to rebind a connection using different credentials after **Conn::unbind()** had been called. Additionally, the **Conn** class is able to escape potentially dangerous character sequences with **Conn::escape()** if e.g. user input should be part of a statement as value.

The **Conn::create()** method creates and initializes a new statement instance from a SQL string. Currently, there are only simple statement objects implemented, which needs to be complete statements which can be sent to the database with **Stmt::execute()**. This method returns a **Result** object encapsulating one or more result sets returned by the database depending on the statement sent.

Each result set must be retrieved using **Result::getResult()**, while Result::getRows() fetches a row from the current result set if the statement was a SELECT like statement. Otherwise, **Result::rowsAffected()** can be used to get the number of rows that were touched by the statement. If the statement may return rows, the **Result::columnName()** and **Result::columnType()** methods are able to provide some informations about the columns indexed from 0 to n. It's also possible to map the column name with the **Result::columnPos()** method to the column index which is required be the other column methods. To get the actual value and length of the content in the current row at the given position, the **Result::fieldValue()** and **Result::fieldLength()** must be called.

In case the unterlying database library requires special handling of large objects (binary or text LOBs), the value of **Result::fieldValue()** has to be feed into the **Result::getLob()** method. It returns a **Lob** object which enables the application to read from and write to a large object using **Lob::read()** respectively **Lob::write()**. This is only necessary if the **Conn::getCapability()** method returns true when asking for ODBX\_CAP\_LO.

If an error occurs in any of the object methods, the objects will throw an instance of the **Exception** class with extends the runtime\_error exception of the STL. The instance contains an error message, the **OpenDBX** error code and an error type indicating the severity of the error. This information can be retrieved by the methods Exception::what(), **Exception::getCode()** and **Exception::getType()**.

**Author**

Norbert Sendetzky norbert@linuxnetworks.de

**Version**

1\.0

## Author

Generated automatically by Doxygen for opendbx from the source code.
