mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 22:02:49 -06:00
105 lines
2.2 KiB
C
105 lines
2.2 KiB
C
#pragma BLITZ_APPROVE
|
|
|
|
#define __EMP __EMP2
|
|
#define __EMP2 __EMP3
|
|
#define __EMP3 __EMP4
|
|
#define __EMP4
|
|
|
|
#define TABLE(n)
|
|
#define TABLE_(n) const String& n() { static String s = #n; return s; }
|
|
#define COLUMN(t, n, f)
|
|
#define COLUMN_(t, n, f) const String& n() { static String s = #n; return s; }
|
|
#define SCOLUMN(t, n)
|
|
#define SCOLUMN_(tn, n) const String& n() { static String s = #n; return s; }
|
|
#define NINDEX()
|
|
#define TINDEX()
|
|
#define SINDEX()
|
|
#define LINK(rt)
|
|
#define END_TABLE()
|
|
|
|
#include TABLEFILE
|
|
|
|
#undef TABLE
|
|
#undef TABLE_
|
|
#undef COLUMN
|
|
#undef COLUMN_
|
|
#undef SCOLUMN
|
|
#undef SCOLUMN_
|
|
#undef NINDEX
|
|
#undef TINDEX
|
|
#undef SINDEX
|
|
#undef END_TABLE
|
|
|
|
#define TABLE(n) void Build##n(DataTable& table) {
|
|
#define TABLE_(n) TABLE(n)
|
|
#define COLUMN(t, n, f) if(table.FindColumn(n()) < 0) table.AddColumn(n(), ValueTypeNo(*(const t*)0), 0 f);
|
|
#define COLUMN_(t, n, f) if(table.FindColumn(n()) < 0) table.AddColumn(n(), ValueTypeNo(*(const t*)0), 0 f);
|
|
#define SCOLUMN(t, n) COLUMN(t, n, __EMP)
|
|
#define SCOLUMN_(t, n) COLUMN(t, n, __EMP)
|
|
#define NINDEX | DataTableColumn::NUMBER_INDEX
|
|
#define TINDEX | DataTableColumn::DATETIME_INDEX
|
|
#define SINDEX | DataTableColumn::STRING_INDEX
|
|
#define END_TABLE() }
|
|
|
|
#include TABLEFILE
|
|
|
|
#undef TABLE
|
|
#undef COLUMN
|
|
#undef COLUMN_
|
|
#undef NINDEX
|
|
#undef TINDEX
|
|
#undef SINDEX
|
|
#undef END_TABLE
|
|
|
|
#ifdef BUILDPROC
|
|
void BUILDPROC(DataBase& db)
|
|
#else
|
|
void BuildAllTables(DataBase& db)
|
|
#endif
|
|
{
|
|
|
|
#define TABLE(n) Build##n(db.GetAdd(n()));
|
|
#define COLUMN(t, n, f)
|
|
#define COLUMN_(t, n, f)
|
|
#define NINDEX __EMP
|
|
#define TINDEX __EMP
|
|
#define SINDEX __EMP
|
|
#define END_TABLE()
|
|
|
|
#include TABLEFILE
|
|
|
|
#undef TABLE
|
|
#undef COLUMN
|
|
#undef COLUMN_
|
|
#undef LINK
|
|
#undef END_TABLE
|
|
|
|
#define TABLE(n) { DataTable& table = db[n()]; {
|
|
#define COLUMN(t, n, f) } { const String& c = n(); f
|
|
#define COLUMN_(t, n, f) } { const String& c = n(); f
|
|
#define LINK(rt) table.Column(c).Link(db[rt()]);
|
|
#define END_TABLE() } }
|
|
|
|
#include TABLEFILE
|
|
|
|
}
|
|
|
|
#undef TABLE
|
|
#undef TABLE_
|
|
#undef COLUMN
|
|
#undef COLUMN_
|
|
#undef SCOLUMN
|
|
#undef SCOLUMN_
|
|
#undef LINK
|
|
#undef NINDEX
|
|
#undef TINDEX
|
|
#undef SINDEX
|
|
#undef END_TABLE
|
|
#undef TABLEFILE
|
|
#undef __EMP
|
|
#undef __EMP2
|
|
#undef __EMP3
|
|
#undef __EMP4
|
|
#ifdef BUILDPROC
|
|
#undef BUILDPROC
|
|
#endif
|