Guides
General Concepts
* [Handles](#::handles)
* [Connecting](#::connecting)
* [Error Handling and Diagnostics](#::error-handling-and-diagnostics)
* [Buffers and Binding](#::buffers-and-binding)  
#### Handles {#docs:guides:odbc:general::handles}  
A [handle](https://learn.microsoft.com/en-us/sql/odbc/reference/develop-app/handles?view=sql-server-ver16) is a pointer to a specific ODBC object which is used to interact with the database.  There are several different types of handles, each with a different purpose, these are the environment handle, the connection handle, the statement handle, and the descriptor handle. Handles are allocated using the [`SQLAllocHandle`](https://learn.microsoft.com/en-us/sql/odbc/reference/syntax/sqlallochandle-function?view=sql-server-ver16) which takes as input the type of handle to allocate, and a pointer to the handle, the driver then creates a new handle of the specified type which it returns to the application.  
The DuckDB ODBC driver has the following handle types.