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