Gjsify LogoGjsify Logo

Specifies some aspects of a connection when opening it.

Additional information about the GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE flag: For example without this flag, if the table name specified in a #GdaServerOperation to create a table is MyTable, then usually the database will create a table named mytable, whereas with this flag, the table will be created as MyTable (note that in the end the database may still decide to name the table mytable or differently if it can't do otherwise). Libgda will not apply this rule when parsing SQL code, the SQL code being parsed has to be conform to the database it will be used with

Additional information about the GDA_CONNECTION_OPTIONS_THREAD_SAFE and GDA_CONNECTION_OPTIONS_THREAD_ISOLATED flags: The GDA_CONNECTION_OPTIONS_THREAD_SAFE flag specifies that it has to be able to use the returned connection object from several threads at once (locking is ensured by the #GdaConnection itself). Depending on the database provider's implementation and on the native libraries it uses, the "normal" connection object might not respect this requirement, and in this case a specific thread is started and used as the unique thread which will manipulate the actual connection, while a "wrapper connection" is actually returned and used by the caller (that wrapper connection passes method calls from the calling thread to the actual connection's specific thread, and gets the results back).

The GDA_CONNECTION_OPTIONS_THREAD_ISOLATED forces using a specific thread and a "wrapper connection" even if the "normal" connection would itself be thread safe; this is useful for example to be sure the asynchronous API can always be used (see gda_connection_async_statement_execute()).

Having a specific thread and a "wrapper connection" definitely has an impact on the performances (because it involves messages passing between threads for every method call), so using the GDA_CONNECTION_OPTIONS_THREAD_SAFE or GDA_CONNECTION_OPTIONS_THREAD_ISOLATED flags should be carefully considered.

Note about the GDA_CONNECTION_OPTIONS_AUTO_META_DATA flag: Every time a DDL statement is successfully executed, the associated meta data, if defined, will be updated, which has a impact on performances If a transaction is started and some DDL statements are executed and the transaction is not rolled back or committed, then the meta data may end up being wrong

bitfield

Index

Enumeration Members

AUTO_META_DATA: number

this flags specifies that if a #GdaMetaStore has been associated to the connection, then it is kept up to date with the evolutions in the database's structure. Be aware however that there are some drawbacks explained below.

NONE: number

no specific aspect

READ_ONLY: number

this flag specifies that the connection to open should be in a read-only mode (this policy is not correctly enforced at the moment)

SQL_IDENTIFIERS_CASE_SENSITIVE: number

this flag specifies that SQL identifiers submitted as input to Libgda have to keep their case sensitivity.

THREAD_ISOLATED: number

this flag specifies that the connection to open will be used by several threads at once and requests that the real connection be used only in a sub thread created specifically for it

THREAD_SAFE: number

this flag specifies that the connection to open will be used by several threads at once so it has to be thread safe

Legend

  • Module
  • Object literal
  • Variable
  • Function
  • Function with type parameter
  • Index signature
  • Type alias
  • Type alias with type parameter
  • Enumeration
  • Enumeration member
  • Property
  • Method
  • Interface
  • Interface with type parameter
  • Constructor
  • Property
  • Method
  • Index signature
  • Class
  • Class with type parameter
  • Constructor
  • Property
  • Method
  • Accessor
  • Index signature
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Inherited accessor
  • Protected property
  • Protected method
  • Protected accessor
  • Private property
  • Private method
  • Private accessor
  • Static property
  • Static method