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 #ifndef QDATASCHEMADRIVER_H
00030 #define QDATASCHEMADRIVER_H
00031 #include <qobject.h>
00032 #include <qdataschemaglobal.h>
00033 #include <qsqldatabase.h>
00034
00035 class QDataSchemaDriver: public QObject
00036 {
00037 Q_OBJECT
00038
00039 public:
00040 QDataSchemaDriver();
00041 ~QDataSchemaDriver();
00042 virtual QString sqlDriverName();
00043 virtual QString fieldtype( const QString &qdstype,
00044 int width, int decimals = 0,
00045 bool notnull = false, bool primarykey = false, bool serial = false );
00046
00047 virtual QString fieldSQLToDS( QSqlFieldInfo *ftypedef );
00048 virtual QString fieldName( QSqlFieldInfo *ftypedef );
00049 virtual int fieldWidth( QSqlFieldInfo *ftypedef );
00050 virtual int fieldDecimals( QSqlFieldInfo *ftypedef );
00051 virtual QString defaultDatabaseName(){ return "";};
00052
00053 virtual QString queryInitConnection( bool unicode );
00054 virtual QString queryCreateDatabase( const QString &name );
00055 virtual QString queryDropDatabase( const QString &name );
00056 virtual QString queryCreateTable( const QString &tname, const QString &fields );
00057 virtual QString queryDropTable( const QString &tname );
00058 virtual QString queryCreateIndex( const QString &tname, const QString &iname, const QString &fields );
00059 virtual QString queryDropIndex( const QString &tname, const QString &iname );
00060 virtual QString queryAlterTable( const QString &tname,
00061 const QString &fieldsnew, const QString &fieldsold,
00062 const QString &fieldsadd,const QString &fieldsdrop,
00063 const QString &fieldsmodifynew,const QString &fieldsmodifyold );
00064 protected:
00065 virtual QString queryAlterTableDropField( const QString &tname, const QString &field );
00066 virtual QString queryAlterTableAddField( const QString &tname, const QString &field );
00067 virtual QString queryAlterTableModifyField( const QString &tname, const QString &field, const QString &oldfield = "" );
00068 };
00069
00070 #endif
00071