00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef ASQLTABLE_H
00031 #define ASQLTABLE_H
00032 #include <qsqlcursor.h>
00033 #include <qdict.h>
00034 #include "acfg.h"
00035
00036
00037
00038
00039 #define aSQLTable aDataTable
00040
00041
00042 class aDatabase;
00043 class aSQLField;
00044
00054 class ANANAS_EXPORT aDataTable : public QSqlCursor
00055 {
00056 public:
00057 aDatabase* db;
00058 QString tableName;
00059 bool selected;
00060
00061 aSQLTable( aCfgItem context, aDatabase *adb );
00062 aSQLTable( const QString &tname, aDatabase *adb );
00063 virtual ~aSQLTable();
00064 void init( aCfgItem context, aDatabase *adb );
00065 void setObject(aCfgItem context);
00066 void appendField( aSQLField * fieldinfo );
00067 void insertField( int pos, aSQLField * fieldinfo );
00068 void removeField( int pos );
00069 void clearFields();
00070 bool checkStructure( bool update );
00071 long getMdObjId();
00072 Q_ULLONG getIdd();
00073 void printRecord();
00074
00075
00076
00077 virtual QVariant value ( int i );
00078 virtual QVariant value ( const QString & name );
00079 virtual void setValue ( int i, QVariant value );
00080 virtual bool setValue ( const QString & name, QVariant value );
00081 virtual QVariant sysValue ( const QString & name );
00082 virtual void setSysValue ( const QString & name, QVariant value );
00083 virtual bool sysFieldExists( const QString & name );
00084
00085 virtual QSqlRecord* primeInsert();
00086
00087
00088 virtual bool select( const QString & filter="", bool usefltr = true );
00089 virtual bool select( Q_ULLONG id );
00090 virtual void clearFilter();
00091 virtual bool setFilter( const QString &name, const QVariant &value );
00092 virtual void setFilter( const QString& );
00093 virtual QString getFilter();
00094 virtual QString getNFilter();
00095 virtual bool exec( QString query );
00096 virtual QStringList getUserFields();
00097 virtual ERR_Code setMarkDeleted( bool Deleted );
00098 virtual bool isMarkDeleted();
00099 QString sqlFieldName ( const QString & userFieldName ) const;
00100
00101 virtual bool New();
00102 virtual bool Copy();
00103 virtual bool Delete();
00104 virtual bool Update();
00105
00106 virtual bool seek ( int i, bool relative = FALSE );
00107 virtual bool next ();
00108 virtual bool prev ();
00109 virtual bool first ();
00110 virtual bool last ();
00111
00112
00113 protected:
00114 QVariant calcFieldValue( const QString &name );
00115 virtual QVariant calculateField( const QString &name );
00116 virtual QVariant calc_obj(int fid,Q_ULLONG idd);
00117 virtual QVariant calc_rem(int fid,Q_ULLONG id);
00118 void insertFieldInfo(aCfgItem cobj, bool calculated=true);
00119
00120 long mdobjId;
00121
00122 private:
00123
00124 aCfgItem obj;
00125 aCfgItem init_obj;
00126 aCfg* md;
00127 QDict<QObject> p_cat;
00128 QDict<QObject> p_doc;
00129 QDict<QObject> p_reg;
00130 QMap<int,aCfgItem> mapCat, mapReg, mapDoc;
00131 QMap<int,QString> mapDim,mapSum;
00132 QStringList fildsList;
00133 QDict<QString> fnames;
00134 QDict<QVariant> userFilter;
00135
00136
00137
00138 };
00139
00140 #endif