namespace KDB


List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Types

Public Members


Detailed Description

Capability (class)

base class for all Capabilities implemented by a plugin

Database (class)

Central access point to all functionality of the single database.

That means it provides a list of all queries and tables, and is able to execute a command query and to return a recordset for a given query.

Tables and queries can be accessed by name, and the class can provide collection objects for both.

Connection (class)

Manages the connection state to a SQL engine.

Basically stores all authentication tokens and opens/closes connection as needed.

It is also a collection of database objects, allowing

typedef QValueList<TablePtr> Tables

typedef QValueList<QueryPtr> Queries

DataObject (class)

base class for all 'real' data access objects.

It mostly provide shared support (with automatic deallocation) It inherits from KShared.

Table, Query and Recordset are DatabaseObject.

Plugin (class)

A Plugin handles all connections related to a DBMS (Postgres, MySQL, and so on).

This class allows traversal of the list of available connections, and can be queryed about general informations and implemented capabilities trough provides

The Plugin is also responsible of creating "capability objects", that is objects that can implement a specific capabilities.

Actually whe have found the following capabilities:

DBEngine (class)

This object manages all available plugins, and can create connections to servers or databases.

In more detail:

Exception (class)

PluginException (class)

UnsupportedCapability (class)

DataException (class)

ConversionException (class)

Field (class)

It knows its name, its datatype, constraints when available (like null/not null) and, when it is part of a record, its value.

The field object can manage only the data type of the underlying column. Conversion operators are provided for all common C++ datatypes. If a conversion is not allowed, a KDB::ConversionException is raised.

It is responsibility of the plugin to instantiate a correct field object for the underlying datatype. For datatypes not supported natively by C++, the Plugin can handle either QStrings or QByteArrays.

The datatype supported are the following:

All numeric types are handled both in signed and unsigned form.

Index (class)

Things such fields involved, ordering, if primary or not and so on.

enum dataType {UNKNOWN = -1, CHAR, VARCHAR, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DATE, TIME, TIMESTAMP, SET, ENUM, ARRAY, BLOB }

These are all the datatypes natively supported by libkdbcore. Conversion to and from QT/C++ native types is provided by the library. See KDB::Field for further details on kdbcore type system

enum capability {TRANSACTIONS, REORG, STOPROCS, VIEWS, ADMIN, SEQUENCES, FUNCTIONS }

These are all currently known capabilities of a DBMS that a plugin can support. Plugins are queryable about the supported capabilities trough KDB::Plugin::provides and implementations are available trough KDB::Plugin::createObject

Object (class)

Base class for all KDB objects. It inherits QObject and provide base error reporting

Recordset (class)

A recordset can be obtained directly by the database (trough KDB::Database::openRecordset ("Select * from blah") ) or from an existing table or query.

There are two types of recordsets: read only or updatable. the type can be queryed trough updatable

an updatable recordset can be asked to build new records, as well as delete existing ones. Updates are allowed in the KDB::Record class

Query (class)

representation of a stored query. trough this object we access the fields and parameters of the query, if any.

Record (class)

typedef QList<Field> Fields

typedef QList<Index> Indexes

Table (class)

Representation of a database table.

Trough this object we access the fields and indices of a given table (when available). This object will allow building of new fields and indexes, as well as editing of the table data using openRecordset


Generated by: pradu@server.rete.casa on Fri Jul 28 15:15:55 2000, using kdoc 2.0a36.