/***************************************************************************
copyright : (C) 1999 by Edwin Glaser
email : edwin@pannenleiter.de
version : $Id: dbtable.h,v 1.1.1.1 2000/02/07 21:42:12 ege Exp $
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef DBTABLE_H
#define DBTABLE_H
#include <qdatetime.h>
/**
*@author Edwin Glaser
*/
class DBTableDescription
{
public:
DBTableDescription *next;
char *table;
int numPrimaries;
int *primaryPos;
char **primaries;
int numColumns;
int *columnPos;
char **columns;
DBTableDescription(const char *t, const char *p, const char *c = 0);
~DBTableDescription();
static int DBTableDescription::splitStr(const char *str, char ***rs, int **rp);
void setColumns(const char *c) { numColumns = splitStr(c, &columns, &columnPos); };
};
class DBMasterDescription
{
public:
int numJoin;
int *joinMasterPos;
int *joinDetailPos;
int numInit;
int *initMasterPos;
int *initDetailPos;
DBMasterDescription(const char *join, const char *init);
~DBMasterDescription();
static int DBMasterDescription::splitStr(const char *str, int **rm, int **rd);
};
class DBColumnDescription
{
public:
char columnName[100];
char columnQualifierName[100];
int columnType;
char columnTypeName[100];
long columnLength;
int columnPrecision;
int columnScale;
long columnDisplaySize;
int columnNullable;
int columnUnsigned;
int columnMoney;
int columnUpdatable;
int columnAutoIncrement;
};
class DBField
{
public:
int sqlType;
int sqlScale;
int cType;
int cSize;
bool isValid;
bool isNull;
void *buffer;
//SQLINTEGER tmp;
long tmp;
DBField();
DBField( const DBField &s );
~DBField();
static int cTypeOfSQL(int sql, int scale = 0);
void init(int sql, int size, int scale = 0);
DBField& operator= ( const DBField & s );
bool operator== ( const DBField & s ) const;
bool operator!= ( const DBField & s ) const { return !(*this == s); };
bool setQString(const QString &str);
QString getQString(const char *format = 0) const;
bool setQDate(const QDate &val);
QDate getQDate() const;
bool setQTime(const QTime &val);
QTime getQTime() const;
bool setQDateTime(const QDateTime &val);
QDateTime getQDateTime() const;
bool setDouble(double num);
double getDouble() const;
bool setLong(long num);
long getLong() const;
protected:
static char date_format[100];
static char time_format[100];
static char timestamp_format[100];
static char *initFormat(char *buffer, const char *format);
static bool scanDate(const char *str, const char *f, struct tm *res);
};
#endif
Documentation generated by eg@wonko on Sam Feb 19 00:09:53 MET 2000