From 979cbd98e8c98f422e8a32fcbfd14d78ffcc28e1 Mon Sep 17 00:00:00 2001 From: cxl Date: Fri, 9 Dec 2011 13:07:37 +0000 Subject: [PATCH] .reference git-svn-id: svn://ultimatepp.org/upp/trunk@4283 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- reference/SqlExp/SqlExp.cpp | 305 ++++++++++++++++++------------------ reference/SqlExp/SqlExp.upp | 3 +- reference/SqlExp/init | 1 + 3 files changed, 157 insertions(+), 152 deletions(-) diff --git a/reference/SqlExp/SqlExp.cpp b/reference/SqlExp/SqlExp.cpp index a7aa25b9b..462a4a699 100644 --- a/reference/SqlExp/SqlExp.cpp +++ b/reference/SqlExp/SqlExp.cpp @@ -1,151 +1,154 @@ -#include -#include - -using namespace Upp; - -#ifdef flagQTF -#define GENERATE_QTF -#endif - -#define MODEL -#define SCHEMADIALECT -#include -#include -#include - -#define EXP(s) Exp(#s, s) - -#ifdef GENERATE_QTF -String qtf; - -void Put(String s, const char *splits) -{ - Vector split = Split(splits, ';'); - bool was = false; - for(int i = 0; i < split.GetCount(); i++) { - int q = s.Find(split[i]); - if(q >= 0) { - if(was) - qtf << "&\n"; - qtf << DeQtf(s.Mid(0, q)); - s = s.Mid(q); - was = true; - } - } - if(was) - qtf << "&\n"; - qtf << DeQtf(s); -} - -void Exp(const char *s, SqlStatement sql) -{ - qtf << "\n:: "; - Put(s, ".From;.Where;.OrderBy"); - qtf << "\n:: "; - Put(sql.Get(PGSQL), " from; where; order by"); -} -#else -void Exp(const char *s, SqlStatement sql) -{ - LOG(s); - LOG('\t' << sql.Get(PGSQL)); -} -#endif - -GUI_APP_MAIN -{ -#ifdef GENERATE_QTF - qtf << "[C1 {{1:1 SqlExp C`+`+:: PostgreSQL"; -#else - StdLogSetup(LOG_FILE|LOG_COUT); -#endif - EXP(Select(COL).From(TABLE1)); - EXP(Select(COL.Of(TABLE1)).From(TABLE1)); - EXP(Select(COL.As(A)).From(TABLE1)); - EXP(Select(COL&A).From(TABLE1)); - EXP(Select(COL[3]).From(TABLE1)); - EXP(Select(COLUMN1 % COLUMN2).From(TABLE1)); - EXP(Select(COLUMN1 | COLUMN2).From(TABLE1)); - EXP(Select(SqlFunc("any_fn", COL, 2)).From(TABLE1)); - EXP(Select(Distinct(COL)).From(TABLE1)); - EXP(Select(Distinct(SqlSet(COLUMN1, COLUMN2))).From(TABLE1)); - EXP(Select(All(COL)).From(TABLE1)); - EXP(Select(Count(COL)).From(TABLE1)); - EXP(Select(SqlAll()).From(TABLE1)); - EXP(Select(SqlCountRows()).From(TABLE1)); - EXP(Select(COL).From(TABLE1).OrderBy(Descending(COL))); - EXP(Select(SqlMax(COL)).From(TABLE1)); - EXP(Select(SqlMin(COL)).From(TABLE1)); - EXP(Select(SqlSum(COL)).From(TABLE1)); - EXP(Select(Avg(COL)).From(TABLE1)); - EXP(Select(Stddev(COL)).From(TABLE1)); - EXP(Select(Variance(COL)).From(TABLE1)); - EXP(Select(Greatest(COLUMN1, COLUMN2)).From(TABLE1)); - EXP(Select(Least(COLUMN1, COLUMN2)).From(TABLE1)); - EXP(Select(Upper(COL)).From(TABLE1)); - EXP(Select(Lower(COL)).From(TABLE1)); - EXP(Select(Substr(COL, 1)).From(TABLE1)); - EXP(Select(Substr(COL, 2, 1)).From(TABLE1)); - EXP(Select(Instr(COL, "hello")).From(TABLE1)); - EXP(Select(SqlNvl(COLUMN1, COLUMN2)).From(TABLE1)); - EXP(Select(NextVal(SEQ)).Get()); - EXP(Select(CurrVal(SEQ)).Get()); - EXP(Select(SqlArg()).From(TABLE1)); - - EXP(Select(COL).From(TABLE1).Where(COL / 2 > 1 && COLUMN1 == "A" || COLUMN2 == Date(2006, 1, 1))); - EXP(Select(COL).From(TABLE1).Where(!(COL == 1))); - EXP(Select(COL).From(TABLE1).Where((COLUMN1 == 1) - (COLUMN2 == 1))); - EXP(Select(COL).From(TABLE1).Where(IsNull(COLUMN1))); - EXP(Select(COL).From(TABLE1).Where(NotNull(COLUMN1))); - EXP(Select(COL).From(TABLE1).Where(Like(COLUMN1, Wild("A*")))); - EXP(Select(COL).From(TABLE1).Where(NotLike(COLUMN1, Wild("A*")))); - EXP(Select(COL).From(TABLE1).Where(In(COL, Select(COL).From(TABLE1)))); - EXP(Select(COL).From(TABLE1).Where(COL == Select(COL).From(TABLE1))); - EXP(Select(COL).From(TABLE1).Where(COL == Select(COL).From(TABLE1).AsValue())); - EXP(Select(COL).From(TABLE1).Where(NotIn(COL, Select(COL).From(TABLE1)))); - EXP(Select(COL).From(TABLE1).Where(COL != Select(COL).From(TABLE1))); - EXP(Select(COL).From(TABLE1).Where(Exists(Select(COL).From(TABLE1)))); - EXP(Select(COL).From(TABLE1).Where(NotExists(Select(COL).From(TABLE1)))); - - EXP(Select(COL).From(TABLE1).Where(COL == (Select(COLUMN1).From(TABLE1) | Select(COLUMN2).From(TABLE2)))); - EXP(Select(COL).From(TABLE1).Where(COL == (Select(COLUMN1).From(TABLE1) & Select(COLUMN2).From(TABLE2)))); - EXP(Select(COL).From(TABLE1).Where(COL == (Select(COLUMN1).From(TABLE1) - Select(COLUMN2).From(TABLE2)))); - EXP(Select(COL).From(TABLE1).Where(COL == 0).GroupBy(COL).Having(COL == 0).OrderBy(Descending(COL))); - EXP(Select(COL, Count(Select(SqlAll()).From(TABLE1))).From(TABLE1).Where(COL == 0).GroupBy(COL) - .Having(COL == 0).OrderBy(Descending(COL))); - EXP(Select(COL).From(TABLE1).Limit(100)); - EXP(Select(COL).From(TABLE1).Limit(100, 10)); - EXP(Select(COL).From(TABLE1).Offset(20)); - EXP(Select(25 * 34).Get()); - EXP(Select(COL).From(TABLE1).Hint("hint")); - EXP(Select(COL).From(TABLE1).InnerJoin(TABLE1).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); - EXP(Select(COL).From(TABLE1).LeftJoin(TABLE1).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); - EXP(Select(COL).From(TABLE1).RightJoin(TABLE1).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); - EXP(Select(COL).From(TABLE1).FullJoin(TABLE1).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); - - EXP(Delete(TABLE1).Where(COL < 0)); - - EXP(Insert(TABLE1)(COLUMN1, 12)(COLUMN2, "hello")(COL, Date(2007, 1, 1))); - EXP(Insert(TABLE1)(COLUMN1, 12)(COLUMN2)(COL).From(TABLE1).Where(COL >= 0)); - - EXP(Update(TABLE1)(COLUMN1, 13)(COLUMN2, "world").Where(COL > Date(2007, 1, 1))); - - EXP(Insert(TABLE1)(COL, Select(COLUMN1).From(TABLE1).Where(COLUMN2 == 21).AsValue())); - - EXP(Select(COL).From(Select(COL).From(TABLE1))); - EXP(Select(COL).From(Select(COL).From(TABLE1).AsTable(TABLE2))); - EXP(Select(COL).From(TABLE1).LeftJoin(Select(COL).From(TABLE1)).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); - EXP(Select(COL).From(TABLE1).LeftJoin(Select(COL).From(TABLE1).AsTable(TABLE2)).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); - - EXP(Select(TABLE1(COL, COLUMN1)).From(TABLE1)); - - EXP(Select(ID(ID, NAME, LASTNAME)).From(TABLE1).LeftJoinRef(TABLE2).Where(BDATE == Date(2011, 12, 9))); - EXP(Select(ID(ID, NAME, LASTNAME)).From(TABLE1).LeftJoinRef(TABLE2).On(IsNull(BDATE)).Where(BDATE == Date(2011, 12, 9))); - -#ifdef GENERATE_QTF - qtf << "}}"; - - ParseQTF(qtf); - SaveFile(ConfigFile("sqlexp.qtf"), qtf); -#endif -} +#include +#include + +using namespace Upp; + +#ifdef flagQTF +#define GENERATE_QTF +#endif + +#define MODEL +#define SCHEMADIALECT +#include +#include +#include + +#define EXP(s) Exp(#s, s) + +#ifdef GENERATE_QTF +String qtf; + +void Put(String s, const char *splits) +{ + Vector split = Split(splits, ';'); + bool was = false; + for(int i = 0; i < split.GetCount(); i++) { + int q = s.Find(split[i]); + if(q >= 0) { + if(was) + qtf << "&\n"; + qtf << DeQtf(s.Mid(0, q)); + s = s.Mid(q); + was = true; + } + } + if(was) + qtf << "&\n"; + qtf << DeQtf(s); +} + +void Exp(const char *s, SqlStatement sql) +{ + qtf << "\n:: "; + Put(s, ".From;.Where;.OrderBy"); + qtf << "\n:: "; + Put(sql.Get(PGSQL), " from; where; order by"); +} +#else +void Exp(const char *s, SqlStatement sql) +{ + LOG(s); + LOG('\t' << sql.Get(PGSQL)); +} +#endif + +GUI_APP_MAIN +{ +#ifdef GENERATE_QTF + qtf << "[C1 {{1:1 SqlExp C`+`+:: PostgreSQL"; +#else + StdLogSetup(LOG_FILE|LOG_COUT); +#endif + EXP(Select(COL).From(TABLE1)); + EXP(Select(COL.Of(TABLE1)).From(TABLE1)); + EXP(Select(COL.As(A)).From(TABLE1)); + EXP(Select(COL&A).From(TABLE1)); + EXP(Select(COL[3]).From(TABLE1)); + EXP(Select(COLUMN1 % COLUMN2).From(TABLE1)); + EXP(Select(COLUMN1 | COLUMN2).From(TABLE1)); + EXP(Select(SqlFunc("any_fn", COL, 2)).From(TABLE1)); + EXP(Select(Distinct(COL)).From(TABLE1)); + EXP(Select(Distinct(SqlSet(COLUMN1, COLUMN2))).From(TABLE1)); + EXP(Select(All(COL)).From(TABLE1)); + EXP(Select(Count(COL)).From(TABLE1)); + EXP(Select(SqlAll()).From(TABLE1)); + EXP(Select(SqlCountRows()).From(TABLE1)); + EXP(Select(COL).From(TABLE1).OrderBy(Descending(COL))); + EXP(Select(SqlMax(COL)).From(TABLE1)); + EXP(Select(SqlMin(COL)).From(TABLE1)); + EXP(Select(SqlSum(COL)).From(TABLE1)); + EXP(Select(Avg(COL)).From(TABLE1)); + EXP(Select(Stddev(COL)).From(TABLE1)); + EXP(Select(Variance(COL)).From(TABLE1)); + EXP(Select(Greatest(COLUMN1, COLUMN2)).From(TABLE1)); + EXP(Select(Least(COLUMN1, COLUMN2)).From(TABLE1)); + EXP(Select(Upper(COL)).From(TABLE1)); + EXP(Select(Lower(COL)).From(TABLE1)); + EXP(Select(Substr(COL, 1)).From(TABLE1)); + EXP(Select(Substr(COL, 2, 1)).From(TABLE1)); + EXP(Select(Instr(COL, "hello")).From(TABLE1)); + EXP(Select(SqlNvl(COLUMN1, COLUMN2)).From(TABLE1)); + EXP(Select(NextVal(SEQ)).Get()); + EXP(Select(CurrVal(SEQ)).Get()); + EXP(Select(SqlArg()).From(TABLE1)); + + EXP(Select(COL).From(TABLE1).Where(COL / 2 > 1 && COLUMN1 == "A" || COLUMN2 == Date(2006, 1, 1))); + EXP(Select(COL).From(TABLE1).Where(!(COL == 1))); + EXP(Select(COL).From(TABLE1).Where((COLUMN1 == 1) - (COLUMN2 == 1))); + EXP(Select(COL).From(TABLE1).Where(IsNull(COLUMN1))); + EXP(Select(COL).From(TABLE1).Where(NotNull(COLUMN1))); + EXP(Select(COL).From(TABLE1).Where(Like(COLUMN1, Wild("A*")))); + EXP(Select(COL).From(TABLE1).Where(NotLike(COLUMN1, Wild("A*")))); + EXP(Select(COL).From(TABLE1).Where(In(COL, Select(COL).From(TABLE1)))); + EXP(Select(COL).From(TABLE1).Where(COL == Select(COL).From(TABLE1))); + EXP(Select(COL).From(TABLE1).Where(COL == Select(COL).From(TABLE1).AsValue())); + EXP(Select(COL).From(TABLE1).Where(NotIn(COL, Select(COL).From(TABLE1)))); + EXP(Select(COL).From(TABLE1).Where(COL != Select(COL).From(TABLE1))); + EXP(Select(COL).From(TABLE1).Where(Exists(Select(COL).From(TABLE1)))); + EXP(Select(COL).From(TABLE1).Where(NotExists(Select(COL).From(TABLE1)))); + + EXP(Select(COL).From(TABLE1).Where(COL == (Select(COLUMN1).From(TABLE1) | Select(COLUMN2).From(TABLE2)))); + EXP(Select(COL).From(TABLE1).Where(COL == (Select(COLUMN1).From(TABLE1) & Select(COLUMN2).From(TABLE2)))); + EXP(Select(COL).From(TABLE1).Where(COL == (Select(COLUMN1).From(TABLE1) - Select(COLUMN2).From(TABLE2)))); + EXP(Select(COL).From(TABLE1).Where(COL == 0).GroupBy(COL).Having(COL == 0).OrderBy(Descending(COL))); + EXP(Select(COL, Count(Select(SqlAll()).From(TABLE1))).From(TABLE1).Where(COL == 0).GroupBy(COL) + .Having(COL == 0).OrderBy(Descending(COL))); + EXP(Select(COL).From(TABLE1).Limit(100)); + EXP(Select(COL).From(TABLE1).Limit(100, 10)); + EXP(Select(COL).From(TABLE1).Offset(20)); + EXP(Select(25 * 34).Get()); + EXP(Select(COL).From(TABLE1).Hint("hint")); + EXP(Select(COL).From(TABLE1).InnerJoin(TABLE1).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); + EXP(Select(COL).From(TABLE1).LeftJoin(TABLE1).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); + EXP(Select(COL).From(TABLE1).RightJoin(TABLE1).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); + EXP(Select(COL).From(TABLE1).FullJoin(TABLE1).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); + + EXP(Delete(TABLE1).Where(COL < 0)); + + EXP(Insert(TABLE1)(COLUMN1, 12)(COLUMN2, "hello")(COL, Date(2007, 1, 1))); + EXP(Insert(TABLE1)(COLUMN1, 12)(COLUMN2)(COL).From(TABLE1).Where(COL >= 0)); + + EXP(Update(TABLE1)(COLUMN1, 13)(COLUMN2, "world").Where(COL > Date(2007, 1, 1))); + + EXP(Insert(TABLE1)(COL, Select(COLUMN1).From(TABLE1).Where(COLUMN2 == 21).AsValue())); + + EXP(Select(COL).From(Select(COL).From(TABLE1))); + EXP(Select(COL).From(Select(COL).From(TABLE1).AsTable(TABLE2))); + EXP(Select(COL).From(TABLE1).LeftJoin(Select(COL).From(TABLE1)).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); + EXP(Select(COL).From(TABLE1).LeftJoin(Select(COL).From(TABLE1).AsTable(TABLE2)).On(COL.Of(TABLE1) == COLUMN1.Of(TABLE1))); + + EXP(Select(TABLE1(COL, COLUMN1)).From(TABLE1)); + + EXP(Select(ID(ID, NAME, LASTNAME)).From(TABLE1).LeftJoinRef(TABLE2).Where(BDATE == Date(2011, 12, 9))); + EXP(Select(ID(ID, NAME, LASTNAME)).From(TABLE1).LeftJoinRef(TABLE2).On(IsNull(BDATE)).Where(BDATE == Date(2011, 12, 9))); + +#ifdef GENERATE_QTF + qtf << "}}"; + + RichEditWithToolBar edit; + edit.SetQTF(qtf); + TopWindow win; + win.Add(edit.SizePos()); + win.Run(); +#endif +} diff --git a/reference/SqlExp/SqlExp.upp b/reference/SqlExp/SqlExp.upp index 6493c4828..e8ce7b226 100644 --- a/reference/SqlExp/SqlExp.upp +++ b/reference/SqlExp/SqlExp.upp @@ -4,7 +4,8 @@ uses Core, Sql, RichText, - CtrlLib; + CtrlLib, + RichEdit; file SqlExp.sch, diff --git a/reference/SqlExp/init b/reference/SqlExp/init index 431f09df1..f090f4cb3 100644 --- a/reference/SqlExp/init +++ b/reference/SqlExp/init @@ -4,4 +4,5 @@ #include "Sql/init" #include "RichText/init" #include "CtrlLib/init" +#include "RichEdit/init" #endif