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;
}