Source Code (Use browser search to find items of interest.)

Class Index

katabase'Kdb (./koffice/katabase/kdb/kdb.h:32)

class Kdb {
public:
	enum ExceptionTypes {
		NoHost,
		NoBase,
		UnknownField,
		NoField,
		NoRecord,
		NotImplemented
	};
	enum RelationType {
		Equal,
		Greater,
		Less,
		Like
	};
	enum Operator {
		And,
		Or,
		NAnd,
		NOr
	};
	enum Bases {
		Postgres,
		mySQL,
		miniSQL,
		ODBC,
		Oracle,
		None
	};
	
private:
	static Bases        _connectionType;
	static QString      _dateFormat;
	static kdbDataBase *_dataBase;

public:
	Kdb();
	~Kdb();
	
	static void setDateFormat(const QString& df) { _dateFormat = df;   };
	static const QString& dateFormat()           { return _dateFormat; };
	
	static bool isOpen();
	static bool hasDataSet(const QString&);
	static void Open(Bases, const QString&, const QString&);
	static void Close();
	
	static kdbDataSet  *dataSet(const QString&);
	static kdbRelation *relation(kdbDataSet *,const QString&);
	static kdbDataBase *dataBase();
	
	static Operator     str2operator(const QString&);
	static RelationType str2condition(const QString&);
	static QString      exceptionMsg(ExceptionTypes);
};

katabase'Kdb::Kdb() (./koffice/katabase/kdb/kdb.cpp:36)

Kdb::Kdb()
{
	_dataBase       = 0;
	_connectionType = None;
	_dateFormat     = "%m/%d/%Y";
}


katabase'Kdb::~Kdb() (./koffice/katabase/kdb/kdb.cpp:43)

Kdb::~Kdb()
{
}

QString

katabase'Kdb::exceptionMsg() (./koffice/katabase/kdb/kdb.cpp:48)

Kdb::exceptionMsg(ExceptionTypes t)
{
	switch( t ) {
		case NoHost:
			return i18n("No connection to host");
		case NoBase:
			return i18n("No database open");
		case NoField:
			return i18n("Field index out of bounds");
		case UnknownField:
			return i18n("Unknown field name");
		case NoRecord:
			return i18n("Record index out of bounds");
		case NotImplemented:
			return i18n("The feature isn't implemented yet");
		default:
			return i18n("unknwon exception type");
	}
}

bool

katabase'Kdb::isOpen() (./koffice/katabase/kdb/kdb.cpp:69)

Kdb::isOpen()
{
	return ( _connectionType != None);
}

void

katabase'Kdb::Open() (./koffice/katabase/kdb/kdb.cpp:75)

Kdb::Open(Bases p_baseType, const QString& p_base, const QString& p_host)
{
	kdbDataSet *dset;
	kdbCriteria *crit;
	
	switch( p_baseType ) {
		case Postgres:
			_dataBase       = new kdbPgBase( p_base,p_host );
			_connectionType = p_baseType;
			dset = new kdbDataSet( _dataBase,"pg_class" );
			dset->fieldSet()->addField( "relname" );
			crit = new kdbCriteria( dset,"relkind" );
			(*crit) = "r";
			(*crit) = Equal;
			crit = new kdbCriteria( dset,"relname" );
			(*crit) = Like;
			(*crit) = NAnd;
			(*crit) = "pg_%";
			dset->setVisualProgress( false );
			dset->runQuery( false );
			dset->setName( "$tables" );
			dset->field( "relname" ).setName( "$name" );
			break;
		default:
			throw NotImplemented;
	}
}

void

katabase'Kdb::Close() (./koffice/katabase/kdb/kdb.cpp:104)

Kdb::Close()
{
	if ( _dataBase )
		delete _dataBase;
	_dataBase       = 0;
	_connectionType = None;
}

kdbDataBase *

katabase'Kdb::dataBase() (./koffice/katabase/kdb/kdb.cpp:113)

Kdb::dataBase()
{
	if ( _connectionType == None )
		throw NoBase;
	return _dataBase;
}

bool

katabase'Kdb::hasDataSet() (./koffice/katabase/kdb/kdb.cpp:121)

Kdb::hasDataSet(const QString& p_set)
{
	QObjectList *list;
	QObject     *obj;
		
	if ( _connectionType == None )
		throw NoBase;
	list  = _dataBase->queryList( "kdbDataSet",p_set,true,false );
	QObjectListIt it( *list );
	obj = it.current();
	delete list;
	return (obj != 0);
}

kdbDataSet *

katabase'Kdb::dataSet() (./koffice/katabase/kdb/kdb.cpp:136)

Kdb::dataSet(const QString& p_set)
{
	QObjectList *list;
	QObject     *obj;
	
	if ( _connectionType == None )
		throw NoBase;
	list = _dataBase->queryList( "kdbDataSet",p_set,true,false );
	QObjectListIt it( *list );
	obj = it.current();
	delete list;
	if ( !obj ) {
		obj = new kdbDataSet( _dataBase,p_set );
		_dataBase->getFields( (kdbDataSet *)obj );
	}
	return (kdbDataSet *)obj;
}

kdbRelation *

katabase'Kdb::relation() (./koffice/katabase/kdb/kdb.cpp:155)

Kdb::relation(kdbDataSet *p_set, const QString& p_rel)
{
	QObjectList *list;
	QObject     *obj;

	if ( p_set == 0 || p_rel == QString::null )
		return 0;
	obj = p_set->child( p_rel,"kdbRelation" );
	list = p_set->queryList( "kdbRelation",p_rel );
	QObjectListIt it( *list );
	for( ;(obj = it.current());++it )
		break;
	delete list;
	return (kdbRelation *)obj;
}

Kdb::Operator
Kdb::str2operator(const QString& p_str)
{
	if ( p_str.find("AND",0,false) != -1 )
		return And;
	else if ( p_str.find("OR",0,false) != -1 )
		return Or;
	else if ( p_str.find("NAND",0,false) != -1 )
		return NAnd;
	else
		return NOr;
}

Kdb::RelationType
Kdb::str2condition(const QString& p_str)
{
	if ( p_str.find("Equal",0,false) != -1 )
		return Equal;
	else if ( p_str.find("Less",0,false) != -1 )
		return Less;
	else if ( p_str.find("Greater",0,false) != -1 )
		return Greater;
	else
		return Like;
}