forked from sirnacnud/qt-sqlite-generator
-
Notifications
You must be signed in to change notification settings - Fork 1
/
QTSqlGen.h
122 lines (103 loc) · 4.44 KB
/
QTSqlGen.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#ifndef DALGEN_H
#define DALGEN_H
//The MIT License
//
//Copyright (c) 2006-2010 Michael Simpson
//
//Permission is hereby granted, free of charge, to any person obtaining a copy
//of this software and associated documentation files (the "Software"), to deal
//in the Software without restriction, including without limitation the rights
//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//copies of the Software, and to permit persons to whom the Software is
//furnished to do so, subject to the following conditions:
//
//The above copyright notice and this permission notice shall be included in
//all copies or substantial portions of the Software.
//
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
//THE SOFTWARE.
#include <QDate>
#include <QDialog>
#include <QtSql>
#include "ui_QTSqlGen.h"
#include "Table.h"
#include "SqlProjects.h"
class QTSqlGen :
public QDialog,
public Ui::QTSqlGenClass
{
Q_OBJECT
public:
QTSqlGen( QWidget *parent = NULL, Qt::WindowFlags flags = 0 );
~QTSqlGen();
private slots:
void on__schemaSource_currentIndexChanged( int );
void on__connectionString_textChanged( const QString & );
void on__projectNames_currentIndexChanged( int );
void on__deleteProject_clicked();
void on__newProject_clicked();
void on__databaseType_currentIndexChanged( int index );
void on__aboutButton_clicked( void );
void on__staticRadio_toggled( bool );
void on__dynamicRadio_toggled( bool );
void on__locatePath_clicked( void );
void on__locateTarget_clicked( void );
void on__genDal_clicked( void );
void on__replaceProject_stateChanged( int state );
private:
void SetProductName( const QString& databaseName );
void GenCode( Tables & tables, const QString templateFile );
void GenRecordHeader( Table& table );
void GenRecordSource( Table& table );
void GenSelectionHeader( Table& table );
void GenSelectionSource( Table& table );
QString GenerateAccessor( const QString& name, const QString& type );
QString GenerateAccessorSource( const QString& tableName, const QString& name, const Column::Type type );
QString GenerateSelector( const QString& name, const Column::Type type );
QString GenerateFieldType( const QString& columnName, const QString& name, Column::Type type );
QString GenerateTableRoutine( const Table& table );
void AppendOutput( const QString& output );
void WriteDatabaseFiles( void );
void WriteStaticFiles( void );
void WriteHeaderFile( void );
void WriteExportHeaderFile( void );
void WriteProject( void );
void AddHeaderFile( const QString& headerFileName );
void AddSourceFile( const QString& sourceFileName );
void LoadSqliteColumns( void );
void LoadSqliteTables( void );
void LoadSqliteViews( void );
void LoadSqliteViewColumns( void );
void LoadODBCColumns( void );
void LoadODBCTables( void );
void LoadODBCViews( void );
void LoadODBCViewColumns( void );
void PopulateDrivers( void );
void LoadProjects( void );
void SaveProjects( void );
void SetCurrentProject( int index );
void StandardReplacements( QByteArray& replaceMe );
void AddProject( SqlProject* sqlProject, bool setAsCurrentProject = false );
SqlProject* GetProject( int index = -1 );
QStringList LoadOracleTables( void );
QStringList LoadOracleViews( void );
QSqlDatabase _db;
Tables _tables;
Tables _views;
QStringList _indexes;
QString _productName;
QString _dllExport;
QString _dllExportDefine;
QString _productInclude;
QString _projectGUID;
QString _headerFiles;
QString _headers;
QString _sources;
QDate _now;
};
#endif // DALGEN_H