kexi

KexiDB::TableSchema Class Reference

#include <tableschema.h>

Inheritance diagram for KexiDB::TableSchema:

KexiDB::FieldList KexiDB::SchemaData KexiDB::InternalTableSchema List of all members.

Detailed Description

KexiDB::TableSchema provides information about native database table that can be stored using SQL database engine.

Definition at line 42 of file tableschema.h.


Public Types

typedef QPtrList< TableSchemaList
typedef QPtrListIterator<
TableSchema
ListIterator

Public Member Functions

 TableSchema (const QString &name)
 TableSchema (const SchemaData &sdata)
 TableSchema ()
 TableSchema (const TableSchema &ts)
virtual ~TableSchema ()
virtual FieldListinsertField (uint index, Field *field)
virtual void removeField (KexiDB::Field *field)
IndexSchemaprimaryKey () const
void setPrimaryKey (IndexSchema *pkey)
const IndexSchema::ListIterator indicesIterator () const
const IndexSchema::Listindices ()
virtual void clear ()
virtual QString debugString ()
Connectionconnection () const
bool isKexiDBSystem () const
void setKexiDBSystem (bool set)
virtual bool isNative () const
virtual void setNative (bool set)
QuerySchemaquery ()
FieldanyNonPKField ()

Protected Member Functions

 TableSchema (Connection *conn, const QString &name=QString::null)
void init ()

Protected Attributes

IndexSchema::List m_indices
QGuardedPtr< Connectionm_conn
IndexSchemam_pkey
QuerySchemam_query
Private * d

Friends

class Connection

Member Typedef Documentation

Type of tables list.

Definition at line 45 of file tableschema.h.

Iterator for tables list.

Definition at line 46 of file tableschema.h.


Constructor & Destructor Documentation

TableSchema::TableSchema ( const TableSchema ts  ) 

Copy constructor.

Definition at line 75 of file tableschema.cpp.

TableSchema::TableSchema ( Connection conn,
const QString &  name = QString::null 
) [protected]

Automatically retrieves table schema via connection.

Definition at line 100 of file tableschema.cpp.


Member Function Documentation

Field * TableSchema::anyNonPKField (  ) 

Returns:
any field not being a part of primary key of this table. If there is no such field, returns 0.

Definition at line 321 of file tableschema.cpp.

void TableSchema::clear (  )  [virtual]

Removes all fields from the list, clears name and all other properties.

See also:
FieldList::clear()

Reimplemented from KexiDB::FieldList.

Definition at line 237 of file tableschema.cpp.

Connection* KexiDB::TableSchema::connection (  )  const [inline]

Returns:
connection object if table was created/retrieved using a connection, otherwise 0.

Definition at line 96 of file tableschema.h.

QString TableSchema::debugString (  )  [virtual]

Returns:
String for debugging purposes.

Reimplemented from KexiDB::FieldList.

Definition at line 291 of file tableschema.cpp.

FieldList & TableSchema::insertField ( uint  index,
Field field 
) [virtual]

Inserts field into a specified position (index). 'order' property of field is set automatically.

Reimplemented from KexiDB::FieldList.

Definition at line 152 of file tableschema.cpp.

bool KexiDB::TableSchema::isKexiDBSystem (  )  const [inline]

Returns:
true if this is KexiDB storage system's table (used internally by KexiDB). This helps in hiding such tables in applications (if desired) and will also enable lookup of system tables for schema export/import functionality.
Any internal KexiDB system table's schema (kexi__*) has cleared its SchemaData part, e.g. id=-1 for such table, and no description, caption and so on. This is because it represents a native database table rather that extended Kexi table.

isKexiDBSystem()==true implies isNative()==true.

By default (after allocation), TableSchema object has this property set to false.

Definition at line 112 of file tableschema.h.

virtual bool KexiDB::TableSchema::isNative (  )  const [inline, virtual]

Returns:
true if this is schema of native database object, When this is kexiDBSystem table, native flag is forced to be on.

Reimplemented from KexiDB::SchemaData.

Definition at line 121 of file tableschema.h.

IndexSchema* KexiDB::TableSchema::primaryKey (  )  const [inline]

Returns:
list of fields that are primary key of this table. This method never returns 0 value, if there is no primary key, empty IndexSchema object is returned. IndexSchema object is owned by the table schema.

Definition at line 68 of file tableschema.h.

QuerySchema * TableSchema::query (  ) 

Returns:
query schema object that is defined by "select * from <this_table_name>" This query schema object is owned by the table schema object. It is convenient way to get such a query when it is not available otherwise. Always returns non-0.

Definition at line 313 of file tableschema.cpp.

void TableSchema::removeField ( KexiDB::Field field  )  [virtual]

Reimplemented for internal reasons.

Reimplemented from KexiDB::FieldList.

Definition at line 193 of file tableschema.cpp.

void TableSchema::setKexiDBSystem ( bool  set  ) 

Sets KexiDBSystem flag to on or off. When on, native flag is forced to be on. When off, native flag is not affected.

See also:
isKexiDBSystem()

Definition at line 296 of file tableschema.cpp.

void TableSchema::setPrimaryKey ( IndexSchema pkey  ) 

Sets table's primary key index to pkey. Pass pkey==0 if you want to unassign existing primary key ("primary" property of given IndexSchema object will be cleared then so this index becomes ordinary index, still existing on table indeices list).

If this table already has primary key assigned, it is unassigned using setPrimaryKey(0) call.

Before assigning as primary key, you should add the index to indices list with addIndex() (this is not done automatically!).

Definition at line 131 of file tableschema.cpp.


Member Data Documentation

cached query schema that is defined by "select * from <this_table_name>"

Definition at line 148 of file tableschema.h.


The documentation for this class was generated from the following files:
KDE Home | KDE Accessibility Home | Description of Access Keys