├── .gitignore
├── CQLBrInstall.exe
├── Images
├── cqlbr_bitucket.png
├── cqlbr_framework.png
└── cqlbr_install.png
├── Projects
├── CQLBr Install
│ ├── CQLBrInstall.dpr
│ ├── CQLBrInstall.dproj
│ ├── CQLBrInstall.dproj.local
│ ├── CQLBrInstall.identcache
│ ├── CQLBrInstall.ini
│ ├── CQLBrInstall.res
│ ├── CQLBrInstall.stat
│ ├── CQLBr_Icon.ico
│ ├── CopyEXE.bat
│ ├── SVN_Class.pas
│ ├── uFrameLista.dfm
│ ├── uFrameLista.pas
│ ├── uPrincipal.dfm
│ └── uPrincipal.pas
└── Wizard
│ ├── CQLBrLibrary.dpk
│ ├── CQLBrLibrary.dproj
│ ├── CQLBrLibrary.dproj.local
│ ├── CQLBrLibrary.dres
│ ├── CQLBrLibrary.identcache
│ ├── CQLBrLibrary.res
│ ├── CQLBrLibrary.stat
│ ├── CQLBrLibraryResource.rc
│ ├── Images
│ ├── icon.bmp
│ └── icon.ico
│ └── cqlbr.reg.pas
├── README.md
├── Source
├── Core
│ ├── cqlbr.ast.pas
│ ├── cqlbr.cases.pas
│ ├── cqlbr.core.pas
│ ├── cqlbr.db.register.pas
│ ├── cqlbr.delete.pas
│ ├── cqlbr.expression.pas
│ ├── cqlbr.functions.abstract.pas
│ ├── cqlbr.functions.pas
│ ├── cqlbr.groupby.pas
│ ├── cqlbr.having.pas
│ ├── cqlbr.insert.pas
│ ├── cqlbr.interfaces.pas
│ ├── cqlbr.joins.pas
│ ├── cqlbr.name.pas
│ ├── cqlbr.namevalue.pas
│ ├── cqlbr.operators.pas
│ ├── cqlbr.orderby.pas
│ ├── cqlbr.qualifier.pas
│ ├── cqlbr.register.pas
│ ├── cqlbr.section.pas
│ ├── cqlbr.select.pas
│ ├── cqlbr.serialize.pas
│ ├── cqlbr.update.pas
│ ├── cqlbr.utils.pas
│ ├── cqlbr.where.pas
│ └── criteria.query.language.pas
├── Drivers
│ ├── cqlbr.functions.db2.pas
│ ├── cqlbr.functions.firebird.pas
│ ├── cqlbr.functions.interbase.pas
│ ├── cqlbr.functions.mssql.pas
│ ├── cqlbr.functions.mysql.pas
│ ├── cqlbr.functions.oracle.pas
│ ├── cqlbr.functions.postgresql.pas
│ ├── cqlbr.functions.sqlite.pas
│ ├── cqlbr.qualifier.db2.pas
│ ├── cqlbr.qualifier.firebird.pas
│ ├── cqlbr.qualifier.interbase.pas
│ ├── cqlbr.qualifier.mongodb.pas
│ ├── cqlbr.qualifier.mssql.pas
│ ├── cqlbr.qualifier.mysql.pas
│ ├── cqlbr.qualifier.oracle.pas
│ ├── cqlbr.qualifier.sqlite.pas
│ ├── cqlbr.select.db2.pas
│ ├── cqlbr.select.firebird.pas
│ ├── cqlbr.select.interbase.pas
│ ├── cqlbr.select.mongodb.pas
│ ├── cqlbr.select.mssql.pas
│ ├── cqlbr.select.mysql.pas
│ ├── cqlbr.select.oracle.pas
│ ├── cqlbr.select.sqlite.pas
│ ├── cqlbr.serialize.db2.pas
│ ├── cqlbr.serialize.firebird.pas
│ ├── cqlbr.serialize.interbase.pas
│ ├── cqlbr.serialize.mongodb.pas
│ ├── cqlbr.serialize.mssql.pas
│ ├── cqlbr.serialize.mysql.pas
│ ├── cqlbr.serialize.oracle.pas
│ └── cqlbr.serialize.sqlite.pas
└── cqlbr.inc
├── Test Delphi
├── DB2_tests
│ ├── TestCQLBr_DB2.dpr
│ ├── TestCQLBr_DB2.dproj
│ ├── TestCQLBr_DB2.res
│ ├── Win32
│ │ └── Debug
│ │ │ └── dunitx-results.xml
│ ├── test.functions.db2.pas
│ └── test.select.firebird.pas
├── Firebird_tests
│ ├── TestCQLBr_Firebird.dpr
│ ├── TestCQLBr_Firebird.dproj
│ ├── TestCQLBr_Firebird.res
│ ├── Win32
│ │ └── Debug
│ │ │ └── dunitx-results.xml
│ ├── test.delete.firebird.pas
│ ├── test.functions.firebird.pas
│ ├── test.insert.firebird.pas
│ ├── test.operators.equal.firebird.pas
│ ├── test.operators.exists.firebird.pas
│ ├── test.operators.firebird.pas
│ ├── test.operators.greater.firebird.pas
│ ├── test.operators.isin.firebird.pas
│ ├── test.operators.less.firebird.pas
│ ├── test.operators.like.firebird.pas
│ ├── test.select.firebird.pas
│ └── test.update.firebird.pas
├── Interbase_tests
│ ├── TestCQLBr_Interbase.dpr
│ ├── TestCQLBr_Interbase.dproj
│ ├── TestCQLBr_Interbase.res
│ ├── Win32
│ │ └── Debug
│ │ │ └── dunitx-results.xml
│ └── test.functions.interbase.pas
├── MSSQL_tests
│ ├── TestCQLBr_MSSQL.dpr
│ ├── TestCQLBr_MSSQL.dproj
│ ├── TestCQLBr_MSSQL.res
│ ├── Win32
│ │ └── Debug
│ │ │ └── dunitx-results.xml
│ ├── test.functions.mssql.pas
│ └── test.select.mssql.pas
├── MySQL_tests
│ ├── TestCQLBr_MySQL.dpr
│ ├── TestCQLBr_MySQL.dproj
│ ├── TestCQLBr_MySQL.res
│ ├── Win32
│ │ └── Debug
│ │ │ └── dunitx-results.xml
│ ├── test.functions.mysql.pas
│ └── test.select.mysql.pas
├── Oracle_tests
│ ├── TestCQLBr_Oracle.dpr
│ ├── TestCQLBr_Oracle.dproj
│ ├── TestCQLBr_Oracle.res
│ ├── Win32
│ │ └── Debug
│ │ │ └── dunitx-results.xml
│ ├── test.functions.oracle.pas
│ └── test.select.Oracle.pas
└── Win32
│ └── Debug
│ └── dunitx-results.xml
├── Test Lazarus
├── TestCQLBr.fpcunit.ini
├── TestCQLBr.ico
├── TestCQLBr.lpi
├── TestCQLBr.lpr
├── TestCQLBr.lps
├── TestCQLBr.res
├── backup
│ ├── TestCQLBr.lpi.bak
│ └── TestCQLBr.lps.bak
├── lib
│ └── x86_64-win64
│ │ └── TestCQLBr.compiled
├── test.delete.pas
├── test.insert.pas
├── test.operators.like.pas
├── test.operators.pas
├── test.select.pas
└── test.update.pas
├── boss-lock.json
├── boss.json
└── readme.txt
/.gitignore:
--------------------------------------------------------------------------------
1 | # Add any directories, files, or patterns you don't want to be tracked by version control
2 | *.dcu
3 | *.bpl
4 | *.map
5 | *.exe
6 | *.tvsconfig
7 | *.txaPackage
8 | *.local
9 | *.identcache
10 | *.stat
11 | __history/
12 | __recovery/
13 |
--------------------------------------------------------------------------------
/CQLBrInstall.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/CQLBrInstall.exe
--------------------------------------------------------------------------------
/Images/cqlbr_bitucket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Images/cqlbr_bitucket.png
--------------------------------------------------------------------------------
/Images/cqlbr_framework.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Images/cqlbr_framework.png
--------------------------------------------------------------------------------
/Images/cqlbr_install.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Images/cqlbr_install.png
--------------------------------------------------------------------------------
/Projects/CQLBr Install/CQLBrInstall.dpr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Projects/CQLBr Install/CQLBrInstall.dpr
--------------------------------------------------------------------------------
/Projects/CQLBr Install/CQLBrInstall.dproj.local:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 2015/08/07 12:44:54.000.403,D:\ACBr2\Projetos\ACBrInstall Trunk2\ACBrInstall_Trunk2.dproj=D:\ACBr2\Projetos\ACBrInstall Trunk2\ACBrInstall.dproj
5 | 2018/07/16 13:44:59.000.896,D:\ORMBr\Projects\RESTful Install\ACBrInstall_Trunk2.dproj=D:\ORMBr\Projects\RESTful Install\ORMBrInstall.dproj
6 | 2018/07/16 16:22:06.000.026,=D:\ORMBr\Projects\RESTful Install\RESTResources.rc
7 | 2018/07/16 16:24:20.000.072,=D:\ORMBr\Projects\RESTful Install\WizardRESTResource.rc
8 | 2018/07/16 16:24:35.000.438,D:\ORMBr\Projects\RESTful Install\WizardRESTResource.rc=D:\ORMBr\Projects\RESTful Install\RESTResource.rc
9 | 2018/07/16 16:43:33.000.024,D:\ORMBr\Projects\RESTful Install\RESTResource.rc=
10 | 2018/07/16 17:51:59.000.371,D:\ORMBr\Projects\RESTful Install\SVN_Class.pas=
11 | 2018/07/16 17:58:08.000.531,=D:\ORMBr\Projects\RESTful Install\RESTResource.rc
12 | 2018/07/16 17:59:40.000.358,D:\ORMBr\Projects\RESTful Install\RESTResource.rc=D:\ORMBr\Projects\RESTful Install\ServerResource.rc
13 | 2018/07/16 18:01:58.000.368,=D:\ORMBr\Projects\RESTful Install\ClientResource .rc
14 | 2018/07/16 19:12:37.000.974,D:\ORMBr\Projects\RESTful Install\ClientResource .rc=
15 | 2018/07/16 19:12:38.000.025,D:\ORMBr\Projects\RESTful Install\ServerResource.rc=
16 | 2019/07/23 11:25:38.000.410,D:\CQLBr\Projects\CQLBr Install\ORMBrInstall.dproj=D:\CQLBr\Projects\CQLBr Install\CQLBrInstall.dproj
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Projects/CQLBr Install/CQLBrInstall.identcache:
--------------------------------------------------------------------------------
1 | 0D:\CQLBr\Projects\CQLBr Install\CQLBrInstall.dpr .D:\CQLBr\Projects\CQLBr Install\uPrincipal.pas /D:\CQLBr\Projects\CQLBr Install\uFrameLista.pas
--------------------------------------------------------------------------------
/Projects/CQLBr Install/CQLBrInstall.ini:
--------------------------------------------------------------------------------
1 | [CONFIG]
2 | DiretorioInstalacao=D:\CQLBr\
3 | Plataforma=Win32
4 | DexarSomenteLib=0
5 | [PACOTES]
6 | CQLBrDriversLinks.dpk=1
7 |
--------------------------------------------------------------------------------
/Projects/CQLBr Install/CQLBrInstall.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Projects/CQLBr Install/CQLBrInstall.res
--------------------------------------------------------------------------------
/Projects/CQLBr Install/CQLBrInstall.stat:
--------------------------------------------------------------------------------
1 | [Stats]
2 | EditorSecs=1467
3 | DesignerSecs=549
4 | InspectorSecs=430
5 | CompileSecs=137333
6 | OtherSecs=683
7 | StartTime=23/07/2019 11:40:50
8 | RealKeys=0
9 | EffectiveKeys=0
10 | DebugSecs=757
11 |
--------------------------------------------------------------------------------
/Projects/CQLBr Install/CQLBr_Icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Projects/CQLBr Install/CQLBr_Icon.ico
--------------------------------------------------------------------------------
/Projects/CQLBr Install/CopyEXE.bat:
--------------------------------------------------------------------------------
1 | @Copy CQLBrInstall.exe ..\..\
--------------------------------------------------------------------------------
/Projects/CQLBr Install/SVN_Class.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Projects/CQLBr Install/SVN_Class.pas
--------------------------------------------------------------------------------
/Projects/CQLBr Install/uFrameLista.dfm:
--------------------------------------------------------------------------------
1 | object framePacotes: TframePacotes
2 | Left = 0
3 | Top = 0
4 | Width = 727
5 | Height = 630
6 | HorzScrollBar.Visible = False
7 | VertScrollBar.Visible = False
8 | Color = 3417897
9 | ParentBackground = False
10 | ParentColor = False
11 | TabOrder = 0
12 | object pnlBotoesMarcar: TPanel
13 | Left = 0
14 | Top = 589
15 | Width = 727
16 | Height = 41
17 | Align = alBottom
18 | BevelOuter = bvNone
19 | TabOrder = 1
20 | object btnPacotesDesmarcarTodos: TSpeedButton
21 | AlignWithMargins = True
22 | Left = 677
23 | Top = 3
24 | Width = 47
25 | Height = 35
26 | Hint = 'Desmarcar todos os pacotes'
27 | Margins.Left = 0
28 | Align = alRight
29 | Glyph.Data = {
30 | 36030000424D3603000000000000360000002800000010000000100000000100
31 | 18000000000000030000C40E0000C40E00000000000000000000FFFFFFFFFFFF
32 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
33 | FFFFFFFFFFFFFFFFFFFFFFFFFFD4D6E6262E83262E83D4D6E6FFFFFFFFFFFFFF
34 | FFFFFFFFFFFFFFFFD4D6E6262F82252D7FD4D6E6FFFFFFFFFFFFD4D6E6293284
35 | 4F57C5313BBC262E83D4D6E6FFFFFFFFFFFFFFFFFFD4D6E6262F82343CAE343C
36 | AE262F82D4D6E6FFFFFF2A33855B63CC696BDE5A5DDA2B35BB262E83D4D6E6FF
37 | FFFFD4D6E6262F83323AB1393FD8393FD7343CAE262F82FFFFFF252D7F535CC1
38 | 6D70E06A69DF4B4ED72A34BC262E83E3E4EE262F832F38B5373DD9383DE8383E
39 | D82D35A1252D7FFFFFFFD4D6E62A33855D66CF6B6FE06968DF3F42D52934BD19
40 | 22802C36BA363BD7383BE4373DD92B33A4252D7FD4D6E6FFFFFFFFFFFFD4D6E6
41 | 2932855C64CF6A6DE06261DD3639D42D38CF3439D63739DF353BD82832A8252D
42 | 7FD4D6E6FFFFFFFFFFFFFFFFFFFFFFFFD4D6E62932855A63D0686CE05857DB35
43 | 36D63737D93338D72630AB252D7FD4D6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
44 | FFFFFFA8ACCC212A846972E6676ADF4C4BD83536D62A35CC17207BA8ACCCFFFF
45 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4D6E62A3386636CD66875E3656EDE62
46 | 65DE3F3ED63236D52732C2262E84D4D6E6FFFFFFFFFFFFFFFFFFFFFFFFD4D6E6
47 | 2B34866E76DA7081E66578DF6773E3646DE35A5EDE3938D43235D52631C3262E
48 | 84D4D6E6FFFFFFFFFFFFD4D6E62C35867981DE7F8FEA7186E26E7FE65F68CA28
49 | 31855C65D74C50DC3635D43135D62531C4262E84D4D6E6FFFFFF2D3586848CE1
50 | 909DEE8295E67E8DEA6A72CF2A3381C5C8DD464E96515BD33E43D93635D43135
51 | D62430C5262E84FFFFFF2D35868990E297A4F08E9CEE767DCC2B3482D4D6E6FF
52 | FFFFE3E4EE2932854C56D32F35D82F34D7232FC7262E84FFFFFFD4D6E62D3586
53 | 878FE38288CA2C3582D4D6E6FFFFFFFFFFFFFFFFFFD4D6E6283285404BD21F2D
54 | CC252E84D4D6E6FFFFFFFFFFFFD4D6E62D35832D3583D4D6E6FFFFFFFFFFFFFF
55 | FFFFFFFFFFFFFFFFD4D6E6283185283185D4D6E6FFFFFFFFFFFF}
56 | ParentShowHint = False
57 | ShowHint = True
58 | OnClick = btnPacotesDesmarcarTodosClick
59 | end
60 | object btnPacotesMarcarTodos: TSpeedButton
61 | AlignWithMargins = True
62 | Left = 627
63 | Top = 3
64 | Width = 47
65 | Height = 35
66 | Hint = 'Marcar todos os pacotes'
67 | Align = alRight
68 | Glyph.Data = {
69 | 36030000424D3603000000000000360000002800000010000000100000000100
70 | 18000000000000030000C40E0000C40E00000000000000000000FFFFFFFFFFFF
71 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
72 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
73 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
74 | FFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
75 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6ECE644915F7E
76 | A384FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
77 | FFFFFFFFFFFFE9EEE9418D5517DA5E1EC05A82A686FFFFFFFFFFFFFFFFFFFFFF
78 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECF0EC448D5314BD4F10C64D0F
79 | C54C1CA94E88AE8BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
80 | EDF2ED4D945738B55D35BD5D35BE6133BE5E2DB5572F9E518EB590FFFFFFFFFF
81 | FFFFFFFFFFFFFFFFFFFFFFFFFFF0F4F05096564EB06450B96750BA6958965F48
82 | 9F5A51BD6A52B8695DAC6B93BA94FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9EC29E
83 | 59AC6664B87163BA7263A167F4F7F4C3D6C454A66065BC7464B6705DA86697BE
84 | 97FFFFFFFFFFFFFFFFFFFFFFFFFBFCFB6AAA6C74BD7A64A865F2F6F2FFFFFFFF
85 | FFFFC0D7C05DAD627AC18079BD7E5FAA6299C299FFFFFFFFFFFFFFFFFFFFFFFF
86 | FAFBFAB1D1B1F1F5F1FFFFFFFFFFFFFFFFFFFFFFFFBAD5BA66B56790CF918FCC
87 | 9066B566B8D6B8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
88 | FFFFFFFFFFFFFFFFB4D4B470C170A8E5A858B258D6E7D6FFFFFFFFFFFFFFFFFF
89 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAED1AE81C4
90 | 81C9E0C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
91 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
92 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
93 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
94 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
95 | ParentShowHint = False
96 | ShowHint = True
97 | OnClick = btnPacotesMarcarTodosClick
98 | end
99 | end
100 | object ScrollBox1: TScrollBox
101 | AlignWithMargins = True
102 | Left = 3
103 | Top = 3
104 | Width = 721
105 | Height = 583
106 | Align = alClient
107 | BevelOuter = bvNone
108 | BorderStyle = bsNone
109 | TabOrder = 0
110 | object Label6: TLabel
111 | Left = 12
112 | Top = 10
113 | Width = 110
114 | Height = 13
115 | Caption = 'CQLBr Components '
116 | Font.Charset = DEFAULT_CHARSET
117 | Font.Color = clWhite
118 | Font.Height = -11
119 | Font.Name = 'Tahoma'
120 | Font.Style = [fsBold]
121 | ParentFont = False
122 | end
123 | object Bevel2: TBevel
124 | Left = 161
125 | Top = 16
126 | Width = 366
127 | Height = 14
128 | Shape = bsTopLine
129 | end
130 | object Label13: TLabel
131 | Left = 161
132 | Top = 67
133 | Width = 311
134 | Height = 26
135 | Margins.Left = 5
136 | Caption =
137 | 'Componentes n'#227'o visuais para adicionar todas units necess'#225'rias d' +
138 | 'o link escolhido ao seu projeto.'
139 | Font.Charset = DEFAULT_CHARSET
140 | Font.Color = 33023
141 | Font.Height = -11
142 | Font.Name = 'Tahoma'
143 | Font.Style = []
144 | ParentFont = False
145 | WordWrap = True
146 | end
147 | object Label1: TLabel
148 | Left = 34
149 | Top = 67
150 | Width = 57
151 | Height = 13
152 | Caption = 'DriversLinks'
153 | Font.Charset = DEFAULT_CHARSET
154 | Font.Color = clWhite
155 | Font.Height = -11
156 | Font.Name = 'Tahoma'
157 | Font.Style = []
158 | ParentFont = False
159 | OnClick = Label1Click
160 | end
161 | object Label2: TLabel
162 | Left = 34
163 | Top = 43
164 | Width = 73
165 | Height = 13
166 | Caption = 'Register CQLBr'
167 | Font.Charset = DEFAULT_CHARSET
168 | Font.Color = clWhite
169 | Font.Height = -11
170 | Font.Name = 'Tahoma'
171 | Font.Style = []
172 | ParentFont = False
173 | OnClick = Label1Click
174 | end
175 | object Label3: TLabel
176 | Left = 161
177 | Top = 43
178 | Width = 314
179 | Height = 13
180 | Margins.Left = 5
181 | Caption = 'Registrar o CQLBr Framework for Delphi/Lazarus na IDE do Delphi'
182 | Font.Charset = DEFAULT_CHARSET
183 | Font.Color = 33023
184 | Font.Height = -11
185 | Font.Name = 'Tahoma'
186 | Font.Style = []
187 | ParentFont = False
188 | end
189 | object CQLBrDriversLinks_dpk: TCheckBox
190 | Left = 12
191 | Top = 66
192 | Width = 16
193 | Height = 17
194 | Hint = 'CQLBrDriversLinks.dpk'
195 | Checked = True
196 | State = cbChecked
197 | TabOrder = 1
198 | end
199 | object CQLBrLibrary_dpk: TCheckBox
200 | Left = 12
201 | Top = 42
202 | Width = 16
203 | Height = 17
204 | Hint = 'CQLBrLibrary.dpk'
205 | Checked = True
206 | Enabled = False
207 | State = cbChecked
208 | TabOrder = 0
209 | end
210 | end
211 | end
212 |
--------------------------------------------------------------------------------
/Projects/CQLBr Install/uFrameLista.pas:
--------------------------------------------------------------------------------
1 | unit uFrameLista;
2 |
3 | interface
4 |
5 | uses
6 | Generics.Collections,
7 | Generics.Defaults,
8 |
9 | Windows,
10 | Messages,
11 | SysUtils,
12 | Variants,
13 | Classes,
14 | Graphics,
15 | Controls,
16 | Forms,
17 | Dialogs,
18 | Buttons,
19 | ExtCtrls,
20 | StdCtrls,
21 | ComCtrls;
22 |
23 | type
24 | TPacotes = TList;
25 |
26 | TframePacotes = class(TFrame)
27 | pnlBotoesMarcar: TPanel;
28 | btnPacotesDesmarcarTodos: TSpeedButton;
29 | btnPacotesMarcarTodos: TSpeedButton;
30 | ScrollBox1: TScrollBox;
31 | Label6: TLabel;
32 | Bevel2: TBevel;
33 | CQLBrDriversLinks_dpk: TCheckBox;
34 | Label13: TLabel;
35 | Label1: TLabel;
36 | CQLBrLibrary_dpk: TCheckBox;
37 | Label2: TLabel;
38 | Label3: TLabel;
39 | procedure btnPacotesMarcarTodosClick(Sender: TObject);
40 | procedure btnPacotesDesmarcarTodosClick(Sender: TObject);
41 | procedure VerificarCheckboxes(Sender: TObject);
42 | procedure Label1Click(Sender: TObject);
43 | private
44 | FPacotes: TPacotes;
45 | FUtilizarBotoesMarcar: Boolean;
46 | public
47 | constructor Create(AOwner: TComponent); override;
48 | destructor Destroy; override;
49 |
50 | property Pacotes: TPacotes read FPacotes write FPacotes;
51 | end;
52 |
53 | implementation
54 |
55 | uses
56 | StrUtils;
57 |
58 | {$R *.dfm}
59 |
60 | constructor TframePacotes.Create(AOwner: TComponent);
61 | var
62 | I: Integer;
63 | begin
64 | inherited;
65 |
66 | // variavel para controle do verificar checkboxes
67 | // utilizada para evitar estouro de pilha por conta da redundância
68 | // e também para que pacotes dependentes não atrapalhem a rotina
69 | FUtilizarBotoesMarcar := False;
70 |
71 | // lista de pacotes (checkboxes) disponiveis
72 | FPacotes := TPacotes.Create;
73 |
74 | // popular a lista de pacotes com os pacotes disponíveis
75 | // colocar todos os checkboxes disponíveis na lista
76 | FPacotes.Clear;
77 | for I := 0 to Self.ComponentCount - 1 do
78 | begin
79 | if Self.Components[I] is TCheckBox then
80 | if TCheckBox(Self.Components[I]).Tag = 0 then
81 | FPacotes.Add(TCheckBox(Self.Components[I]));
82 | end;
83 | FPacotes.Sort(TComparer.Construct(
84 | function(const Dpk1, Dpk2: TCheckBox): Integer
85 | begin
86 | Result := CompareStr( FormatFloat('0000', Dpk1.TabOrder), FormatFloat('0000', Dpk2.TabOrder) );
87 | end));
88 | end;
89 |
90 | destructor TframePacotes.Destroy;
91 | begin
92 | FreeAndNil(FPacotes);
93 |
94 | inherited;
95 | end;
96 |
97 | procedure TframePacotes.Label1Click(Sender: TObject);
98 | begin
99 |
100 | end;
101 |
102 | // botão para marcar todos os checkboxes
103 | procedure TframePacotes.btnPacotesMarcarTodosClick(Sender: TObject);
104 | var
105 | I: Integer;
106 | begin
107 | FUtilizarBotoesMarcar := True;
108 | try
109 | for I := 0 to Self.ComponentCount -1 do
110 | begin
111 | if Self.Components[I] is TCheckBox then
112 | begin
113 | if TCheckBox(Self.Components[I]).Enabled then
114 | TCheckBox(Self.Components[I]).Checked := True;
115 | end;
116 | end;
117 | finally
118 | FUtilizarBotoesMarcar := False;
119 | VerificarCheckboxes(Sender);
120 | end;
121 | end;
122 |
123 | // botão para desmarcar todos os checkboxes
124 | procedure TframePacotes.btnPacotesDesmarcarTodosClick(Sender: TObject);
125 | var
126 | I: Integer;
127 | begin
128 | FUtilizarBotoesMarcar := True;
129 | try
130 | for I := 0 to Self.ComponentCount -1 do
131 | begin
132 | if Self.Components[I] is TCheckBox then
133 | begin
134 | if TCheckBox(Self.Components[I]).Enabled then
135 | TCheckBox(Self.Components[I]).Checked := False;
136 | end;
137 | end;
138 | finally
139 | FUtilizarBotoesMarcar := False;
140 | VerificarCheckboxes(Sender);
141 | end;
142 | end;
143 |
144 | // rotina de verificação de dependência e marcação dos pacotes base
145 | procedure TframePacotes.VerificarCheckboxes(Sender: TObject);
146 | begin
147 | if not FUtilizarBotoesMarcar then
148 | begin
149 | FUtilizarBotoesMarcar := True;
150 | try
151 | finally
152 | FUtilizarBotoesMarcar := False;
153 | end;
154 | end;
155 | end;
156 |
157 | end.
158 |
--------------------------------------------------------------------------------
/Projects/CQLBr Install/uPrincipal.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Projects/CQLBr Install/uPrincipal.pas
--------------------------------------------------------------------------------
/Projects/Wizard/CQLBrLibrary.dpk:
--------------------------------------------------------------------------------
1 | package CQLBrLibrary;
2 |
3 | {$R *.res}
4 | {$R *.dres}
5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
6 | {$ALIGN 8}
7 | {$ASSERTIONS ON}
8 | {$BOOLEVAL OFF}
9 | {$DEBUGINFO OFF}
10 | {$EXTENDEDSYNTAX ON}
11 | {$IMPORTEDDATA ON}
12 | {$IOCHECKS ON}
13 | {$LOCALSYMBOLS OFF}
14 | {$LONGSTRINGS ON}
15 | {$OPENSTRINGS ON}
16 | {$OPTIMIZATION ON}
17 | {$OVERFLOWCHECKS OFF}
18 | {$RANGECHECKS OFF}
19 | {$REFERENCEINFO OFF}
20 | {$SAFEDIVIDE OFF}
21 | {$STACKFRAMES OFF}
22 | {$TYPEDADDRESS OFF}
23 | {$VARSTRINGCHECKS ON}
24 | {$WRITEABLECONST OFF}
25 | {$MINENUMSIZE 1}
26 | {$IMAGEBASE $400000}
27 | {$DEFINE RELEASE}
28 | {$ENDIF IMPLICITBUILDING}
29 | {$DESCRIPTION 'CQLBr - Library'}
30 | {$IMPLICITBUILD OFF}
31 |
32 | requires
33 | rtl,
34 | dbrtl,
35 | fmx,
36 | designide;
37 |
38 | contains
39 | cqlbr.reg in 'cqlbr.reg.pas';
40 |
41 | end.
42 |
--------------------------------------------------------------------------------
/Projects/Wizard/CQLBrLibrary.dres:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Projects/Wizard/CQLBrLibrary.dres
--------------------------------------------------------------------------------
/Projects/Wizard/CQLBrLibrary.identcache:
--------------------------------------------------------------------------------
1 | &D:\CQLBr\Projects\Wizard\cqlbr.reg.pas
--------------------------------------------------------------------------------
/Projects/Wizard/CQLBrLibrary.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Projects/Wizard/CQLBrLibrary.res
--------------------------------------------------------------------------------
/Projects/Wizard/CQLBrLibrary.stat:
--------------------------------------------------------------------------------
1 | [Stats]
2 | EditorSecs=14
3 | DesignerSecs=1
4 | InspectorSecs=1
5 | CompileSecs=2124
6 | OtherSecs=120
7 | StartTime=23/07/2019 11:30:09
8 | RealKeys=0
9 | EffectiveKeys=0
10 | DebugSecs=1
11 |
--------------------------------------------------------------------------------
/Projects/Wizard/CQLBrLibraryResource.rc:
--------------------------------------------------------------------------------
1 | CQLBr BITMAP "Images\\icon.bmp"
2 |
--------------------------------------------------------------------------------
/Projects/Wizard/Images/icon.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Projects/Wizard/Images/icon.bmp
--------------------------------------------------------------------------------
/Projects/Wizard/Images/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Projects/Wizard/Images/icon.ico
--------------------------------------------------------------------------------
/Projects/Wizard/cqlbr.reg.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Projects/Wizard/cqlbr.reg.pas
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CQLBr Library for Delphi/Lazarus
2 |
3 | Criteria Query Language is a library that provides writing through an interface, allowing the mapping of object-oriented syntax for performing database query, insert, update, and delete operations.
4 |
5 | During software development, there is a clear concern about increasing productivity and maintaining compatibility. Regarding databases, in most cases, there is a compatibility break due to the need to write syntax that becomes specific to a particular database. This is where CQLBr comes in. It is designed so that query writing is unique for all databases. When generating a query with CQLBr, it allows you to switch between databases in a system without having to rewrite queries with specific details of the replaced database.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | ## 🏛 Delphi versions
14 | Embarcadero Delphi XE and above.
15 |
16 | ## ⚙️ Install
17 | Installation using [`boss install`]
18 | ```sh
19 | boss install cqlbr
20 | ```
21 |
22 | ## ⚡️ How to use
23 |
24 | ### SELECT
25 |
26 | ```Delphi
27 | ///
28 | /// SELECT * FROM CLIENTES WHERE (ID_CLIENTE = 1) AND (ID >= 10) AND (ID <= 20)
29 | ///
30 | TCQL.New(dbnFirebird)
31 | .Select
32 | .All
33 | .From('CLIENTES')
34 | .Where('ID_CLIENTE = 1')
35 | .&And('ID').GreaterEqThan(10)
36 | .&And('ID').LessEqThan(20)
37 | .AsString;
38 |
39 |
40 | ///
41 | /// SELECT ID_CLIENTE, NOME_CLIENTE, (CASE TIPO_CLIENTE WHEN 0 THEN ''FISICA'' WHEN 1 THEN ''JURIDICA'' ELSE ''PRODUTOR'' END) AS TIPO_PESSOA FROM CLIENTES;
42 | ///
43 | TCQL.New(dbnFirebird)
44 | .Select
45 | .Column('ID_CLIENTE')
46 | .Column('NOME_CLIENTE')
47 | .Column('TIPO_CLIENTE')
48 | .&Case
49 | .When('0').&Then(CQL.Q('FISICA'))
50 | .When('1').&Then(CQL.Q('JURIDICA'))
51 | .&Else('''PRODUTOR''')
52 | .&End
53 | .&As('TIPO_PESSOA')
54 | .From('CLIENTES')
55 | .AsString);
56 |
57 | ///
58 | /// 'SELECT * FROM CLIENTES WHERE (NOME LIKE ''%VALUE%'')';
59 | ///
60 | TCQL.New(dbnFirebird)
61 | .Select
62 | .All
63 | .From('CLIENTES')
64 | .Where('NOME').LikeFull('VALUE')
65 | .AsString);
66 |
67 | ///
68 | /// 'SELECT * FROM CLIENTES WHERE (VALOR IN (1, 2, 3))';
69 | ///
70 | TCQL.New(dbnFirebird)
71 | .Select
72 | .All
73 | .From('CLIENTES')
74 | .Where('VALOR').&In([1, 2, 3])
75 | .AsString);
76 |
77 | ///
78 | /// 'SELECT * FROM CLIENTES WHERE (NOT EXISTS (SELECT IDCLIENTE FROM PEDIDOS WHERE (PEDIDOS.IDCLIENTE = CLIENTES.IDCLIENTE)))';
79 | ///
80 | TCQL.New(dbnFirebird)
81 | .Select
82 | .All
83 | .From('CLIENTES')
84 | .Where.NotExists( TCQL.New(dbnFirebird)
85 | .Select
86 | .Column('IDCLIENTE')
87 | .From('PEDIDOS')
88 | .Where('PEDIDOS.IDCLIENTE').Equal('CLIENTES.IDCLIENTE')
89 | .AsString)
90 | .AsString);
91 |
92 |
93 | ```
94 |
95 | ### INSERT
96 |
97 | ```Delphi
98 | ///
99 | /// 'INSERT INTO CLIENTES (ID_CLIENTE, NOME_CLIENTE) VALUES (''1'', ''MyName'')';
100 | ///
101 | TCQL.New(dbnFirebird)
102 | .Insert
103 | .Into('CLIENTES')
104 | .&Set('ID_CLIENTE', '1')
105 | .&Set('NOME_CLIENTE', 'MyName')
106 | .AsString);
107 | ```
108 |
109 | ### UPDATE
110 |
111 | ```Delphi
112 | ///
113 | /// 'UPDATE CLIENTES SET ID_CLIENTE = ''1'', NOME_CLIENTE = ''MyName'' WHERE ID_CLIENTE = 1';
114 | ///
115 | TCQL.New(dbnFirebird)
116 | .Update('CLIENTES')
117 | .&Set('ID_CLIENTE', '1')
118 | .&Set('NOME_CLIENTE', 'MyName')
119 | .Where('ID_CLIENTE = 1')
120 | .AsString);
121 | ```
122 |
123 | ### DELETE
124 |
125 | ```Delphi
126 | ///
127 | /// 'DELETE FROM CLIENTES WHERE ID_CLIENTE = 1';
128 | ///
129 | TCQL.New(dbnFirebird)
130 | .Delete
131 | .From('CLIENTES')
132 | .Where('ID_CLIENTE = 1')
133 | .AsString);
134 | ```
135 |
136 | ## ✍️ License
137 | [](https://opensource.org/licenses/LGPL-3.0)
138 |
139 | ## ⛏️ Contribution
140 |
141 | Our team would love to receive contributions to this open-source project. If you have any ideas or bug fixes, feel free to open an issue or submit a pull request..
142 |
143 | [](https://github.com/HashLoad/ormbr/issues)
144 |
145 | To submit a pull request, follow these steps:
146 |
147 | 1. Fork the project
148 | 2. Create a new branch (`git checkout -b my-new-feature`)
149 | 3. Make your changes and commit (`git commit -am 'Adding new feature'`)
150 | 4. Push the branch (`git push origin my-new-feature`)
151 | 5. Open a pull request.
152 |
153 | ## 📬 Contact
154 | [](https://t.me/hashload)
155 |
156 | ## 💲 Donation
157 | [](https://pag.ae/bglQrWD)
158 |
--------------------------------------------------------------------------------
/Source/Core/cqlbr.ast.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.ast.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.cases.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.cases.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.core.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.core.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.db.register.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.db.register.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.delete.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.delete.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.expression.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.expression.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.functions.abstract.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.functions.abstract.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.functions.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.functions.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.groupby.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.groupby.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.having.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.having.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.insert.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.insert.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.interfaces.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.interfaces.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.joins.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.joins.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.name.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.name.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.namevalue.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.namevalue.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.operators.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.operators.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.orderby.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.orderby.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.qualifier.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.qualifier.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.register.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.register.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.section.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.section.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.select.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.select.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.serialize.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.serialize.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.update.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.update.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.utils.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.utils.pas
--------------------------------------------------------------------------------
/Source/Core/cqlbr.where.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/cqlbr.where.pas
--------------------------------------------------------------------------------
/Source/Core/criteria.query.language.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Core/criteria.query.language.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.functions.db2.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.functions.db2.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.functions.firebird.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.functions.firebird.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.functions.interbase.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.functions.interbase.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.functions.mssql.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.functions.mssql.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.functions.mysql.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.functions.mysql.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.functions.oracle.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.functions.oracle.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.functions.postgresql.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.functions.postgresql.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.functions.sqlite.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.functions.sqlite.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.qualifier.db2.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.qualifier.db2.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.qualifier.firebird.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.qualifier.firebird.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.qualifier.interbase.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.qualifier.interbase.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.qualifier.mongodb.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.qualifier.mongodb.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.qualifier.mssql.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.qualifier.mssql.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.qualifier.mysql.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.qualifier.mysql.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.qualifier.oracle.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.qualifier.oracle.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.qualifier.sqlite.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.qualifier.sqlite.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.select.db2.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.select.db2.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.select.firebird.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.select.firebird.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.select.interbase.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.select.interbase.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.select.mongodb.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.select.mongodb.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.select.mssql.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.select.mssql.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.select.mysql.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.select.mysql.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.select.oracle.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.select.oracle.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.select.sqlite.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.select.sqlite.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.serialize.db2.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.serialize.db2.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.serialize.firebird.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.serialize.firebird.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.serialize.interbase.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.serialize.interbase.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.serialize.mongodb.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.serialize.mongodb.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.serialize.mssql.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.serialize.mssql.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.serialize.mysql.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.serialize.mysql.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.serialize.oracle.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.serialize.oracle.pas
--------------------------------------------------------------------------------
/Source/Drivers/cqlbr.serialize.sqlite.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/Drivers/cqlbr.serialize.sqlite.pas
--------------------------------------------------------------------------------
/Source/cqlbr.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Source/cqlbr.inc
--------------------------------------------------------------------------------
/Test Delphi/DB2_tests/TestCQLBr_DB2.dpr:
--------------------------------------------------------------------------------
1 | program TestCQLBr_DB2;
2 |
3 | {$IFNDEF TESTINSIGHT}
4 | {$APPTYPE CONSOLE}
5 | {$ENDIF}{$STRONGLINKTYPES ON}
6 | uses
7 | System.SysUtils,
8 | {$IFDEF TESTINSIGHT}
9 | TestInsight.DUnitX,
10 | {$ENDIF }
11 | DUnitX.Loggers.Console,
12 | DUnitX.Loggers.Xml.NUnit,
13 | DUnitX.TestFramework,
14 | cqlbr.ast in '..\..\Source\Core\cqlbr.ast.pas',
15 | cqlbr.cases in '..\..\Source\Core\cqlbr.cases.pas',
16 | cqlbr.delete in '..\..\Source\Core\cqlbr.delete.pas',
17 | cqlbr.expression in '..\..\Source\Core\cqlbr.expression.pas',
18 | cqlbr.functions.abstract in '..\..\Source\Core\cqlbr.functions.abstract.pas',
19 | cqlbr.groupby in '..\..\Source\Core\cqlbr.groupby.pas',
20 | cqlbr.having in '..\..\Source\Core\cqlbr.having.pas',
21 | cqlbr.insert in '..\..\Source\Core\cqlbr.insert.pas',
22 | cqlbr.interfaces in '..\..\Source\Core\cqlbr.interfaces.pas',
23 | cqlbr.joins in '..\..\Source\Core\cqlbr.joins.pas',
24 | cqlbr.orderby in '..\..\Source\Core\cqlbr.orderby.pas',
25 | criteria.query.language in '..\..\Source\Core\criteria.query.language.pas',
26 | cqlbr.qualifier in '..\..\Source\Core\cqlbr.qualifier.pas',
27 | cqlbr.select in '..\..\Source\Core\cqlbr.select.pas',
28 | cqlbr.serialize in '..\..\Source\Core\cqlbr.serialize.pas',
29 | cqlbr.update in '..\..\Source\Core\cqlbr.update.pas',
30 | cqlbr.where in '..\..\Source\Core\cqlbr.where.pas',
31 | cqlbr.utils in '..\..\Source\Core\cqlbr.utils.pas',
32 | cqlbr.register in '..\..\Source\Core\cqlbr.register.pas',
33 | cqlbr.operators in '..\..\Source\Core\cqlbr.operators.pas',
34 | cqlbr.qualifier.firebird in '..\..\Source\Drivers\cqlbr.qualifier.firebird.pas',
35 | cqlbr.qualifier.mongodb in '..\..\Source\Drivers\cqlbr.qualifier.mongodb.pas',
36 | cqlbr.qualifier.mssql in '..\..\Source\Drivers\cqlbr.qualifier.mssql.pas',
37 | cqlbr.qualifier.mysql in '..\..\Source\Drivers\cqlbr.qualifier.mysql.pas',
38 | cqlbr.qualifier.oracle in '..\..\Source\Drivers\cqlbr.qualifier.oracle.pas',
39 | cqlbr.qualifier.sqlite in '..\..\Source\Drivers\cqlbr.qualifier.sqlite.pas',
40 | cqlbr.select.mongodb in '..\..\Source\Drivers\cqlbr.select.mongodb.pas',
41 | cqlbr.select.mssql in '..\..\Source\Drivers\cqlbr.select.mssql.pas',
42 | cqlbr.select.mysql in '..\..\Source\Drivers\cqlbr.select.mysql.pas',
43 | cqlbr.select.oracle in '..\..\Source\Drivers\cqlbr.select.oracle.pas',
44 | cqlbr.select.sqlite in '..\..\Source\Drivers\cqlbr.select.sqlite.pas',
45 | cqlbr.serialize.mongodb in '..\..\Source\Drivers\cqlbr.serialize.mongodb.pas',
46 | cqlbr.serialize.mssql in '..\..\Source\Drivers\cqlbr.serialize.mssql.pas',
47 | cqlbr.serialize.mysql in '..\..\Source\Drivers\cqlbr.serialize.mysql.pas',
48 | cqlbr.serialize.oracle in '..\..\Source\Drivers\cqlbr.serialize.oracle.pas',
49 | cqlbr.serialize.sqlite in '..\..\Source\Drivers\cqlbr.serialize.sqlite.pas',
50 | cqlbr.serialize.firebird in '..\..\Source\Drivers\cqlbr.serialize.firebird.pas',
51 | cqlbr.select.firebird in '..\..\Source\Drivers\cqlbr.select.firebird.pas',
52 | cqlbr.functions.firebird in '..\..\Source\Drivers\cqlbr.functions.firebird.pas',
53 | cqlbr.functions in '..\..\Source\Core\cqlbr.functions.pas',
54 | cqlbr.functions.interbase in '..\..\Source\Drivers\cqlbr.functions.interbase.pas',
55 | cqlbr.functions.mysql in '..\..\Source\Drivers\cqlbr.functions.mysql.pas',
56 | cqlbr.functions.mssql in '..\..\Source\Drivers\cqlbr.functions.mssql.pas',
57 | cqlbr.functions.sqlite in '..\..\Source\Drivers\cqlbr.functions.sqlite.pas',
58 | cqlbr.functions.oracle in '..\..\Source\Drivers\cqlbr.functions.oracle.pas',
59 | cqlbr.functions.db2 in '..\..\Source\Drivers\cqlbr.functions.db2.pas',
60 | cqlbr.functions.postgresql in '..\..\Source\Drivers\cqlbr.functions.postgresql.pas',
61 | cqlbr.select.interbase in '..\..\Source\Drivers\cqlbr.select.interbase.pas',
62 | cqlbr.qualifier.interbase in '..\..\Source\Drivers\cqlbr.qualifier.interbase.pas',
63 | cqlbr.serialize.interbase in '..\..\Source\Drivers\cqlbr.serialize.interbase.pas',
64 | test.functions.db2 in 'test.functions.db2.pas',
65 | cqlbr.select.db2 in '..\..\Source\Drivers\cqlbr.select.db2.pas',
66 | cqlbr.qualifier.db2 in '..\..\Source\Drivers\cqlbr.qualifier.db2.pas',
67 | cqlbr.serialize.db2 in '..\..\Source\Drivers\cqlbr.serialize.db2.pas',
68 | cqlbr.section in '..\..\Source\Core\cqlbr.section.pas',
69 | cqlbr.name in '..\..\Source\Core\cqlbr.name.pas',
70 | cqlbr.namevalue in '..\..\Source\Core\cqlbr.namevalue.pas',
71 | test.select.firebird in 'test.select.firebird.pas';
72 |
73 | {$IFNDEF TESTINSIGHT}
74 | var
75 | runner : ITestRunner;
76 | results : IRunResults;
77 | logger : ITestLogger;
78 | nunitLogger : ITestLogger;
79 | {$ENDIF}
80 | begin
81 | ReportMemoryLeaksOnShutdown := DebugHook <> 0;
82 | {$IFDEF TESTINSIGHT}
83 | TestInsight.DUnitX.RunRegisteredTests;
84 | {$ELSE}
85 | try
86 | //Check command line options, will exit if invalid
87 | TDUnitX.CheckCommandLine;
88 | //Create the test runner
89 | runner := TDUnitX.CreateRunner;
90 | //Tell the runner to use RTTI to find Fixtures
91 | runner.UseRTTI := True;
92 | //tell the runner how we will log things
93 | //Log to the console window
94 | logger := TDUnitXConsoleLogger.Create(true);
95 | runner.AddLogger(logger);
96 | //Generate an NUnit compatible XML File
97 | nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
98 | runner.AddLogger(nunitLogger);
99 | runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
100 |
101 | //Run tests
102 | results := runner.Execute;
103 | if not results.AllPassed then
104 | System.ExitCode := EXIT_ERRORS;
105 |
106 | {$IFNDEF CI}
107 | //We don't want this happening when running under CI.
108 | if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
109 | begin
110 | System.Write('Done.. press key to quit.');
111 | System.Readln;
112 | end;
113 | {$ENDIF}
114 | except
115 | on E: Exception do
116 | System.Writeln(E.ClassName, ': ', E.Message);
117 | end;
118 | {$ENDIF}
119 |
120 | end.
121 |
--------------------------------------------------------------------------------
/Test Delphi/DB2_tests/TestCQLBr_DB2.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Test Delphi/DB2_tests/TestCQLBr_DB2.res
--------------------------------------------------------------------------------
/Test Delphi/DB2_tests/Win32/Debug/dunitx-results.xml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/Test Delphi/DB2_tests/test.functions.db2.pas:
--------------------------------------------------------------------------------
1 | unit test.functions.db2;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLFunctionsDB2 = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestCount;
19 | [Test]
20 | procedure TestLower;
21 | [Test]
22 | procedure TestUpper;
23 | [Test]
24 | procedure TestMax;
25 | [Test]
26 | procedure TestMin;
27 | [Test]
28 | procedure TestSubstring;
29 | [Test]
30 | procedure TestMonthWhere;
31 | [Test]
32 | procedure TestMonthSelect;
33 | [Test]
34 | procedure TestDayWhere;
35 | [Test]
36 | procedure TestDaySelect;
37 | [Test]
38 | procedure TestYearWhere;
39 | [Test]
40 | procedure TestYearSelect;
41 | [Test]
42 | procedure TestDate;
43 | [Test]
44 | procedure TestConcatSelect;
45 | [Test]
46 | procedure TestConcatWhere;
47 | end;
48 |
49 | implementation
50 |
51 | uses
52 | SysUtils,
53 | cqlbr.interfaces,
54 | criteria.query.language;
55 |
56 | procedure TTestCQLFunctionsDB2.Setup;
57 | begin
58 |
59 | end;
60 |
61 | procedure TTestCQLFunctionsDB2.TearDown;
62 | begin
63 |
64 | end;
65 |
66 | procedure TTestCQLFunctionsDB2.TestUpper;
67 | var
68 | LAsString: String;
69 | begin
70 | LAsString := 'SELECT UPPER(NOME_CLIENTE) AS NOME FROM CLIENTES';
71 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
72 | .Select
73 | .Column('NOME_CLIENTE').Upper
74 | .&As('NOME')
75 | .From('CLIENTES')
76 | .AsString);
77 | end;
78 |
79 | procedure TTestCQLFunctionsDB2.TestYearSelect;
80 | var
81 | LAsString: String;
82 | begin
83 | LAsString := 'SELECT EXTRACT(YEAR FROM NASCTO) FROM CLIENTES';
84 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
85 | .Select
86 | .Column.Year('NASCTO')
87 | .From('CLIENTES')
88 | .AsString);
89 | end;
90 |
91 | procedure TTestCQLFunctionsDB2.TestYearWhere;
92 | var
93 | LAsString: String;
94 | begin
95 | LAsString := 'SELECT * FROM CLIENTES WHERE (EXTRACT(YEAR FROM NASCTO) = 9)';
96 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
97 | .Select
98 | .All
99 | .From('CLIENTES')
100 | .Where.Year('NASCTO').Equal('9')
101 | .AsString);
102 | end;
103 |
104 | procedure TTestCQLFunctionsDB2.TestMin;
105 | var
106 | LAsString: String;
107 | begin
108 | LAsString := 'SELECT MIN(ID_CLIENTE) AS IDCOUNT FROM CLIENTES';
109 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
110 | .Select
111 | .Column('ID_CLIENTE').Min
112 | .&As('IDCOUNT')
113 | .From('CLIENTES')
114 | .AsString);
115 | end;
116 |
117 | procedure TTestCQLFunctionsDB2.TestMonthWhere;
118 | var
119 | LAsString: String;
120 | begin
121 | LAsString := 'SELECT * FROM CLIENTES WHERE (EXTRACT(MONTH FROM NASCTO) = 9)';
122 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
123 | .Select
124 | .All
125 | .From('CLIENTES')
126 | .Where.Month('NASCTO').Equal('9')
127 | .AsString);
128 | end;
129 |
130 | procedure TTestCQLFunctionsDB2.TestMonthSelect;
131 | var
132 | LAsString: String;
133 | begin
134 | LAsString := 'SELECT EXTRACT(MONTH FROM NASCTO) FROM CLIENTES';
135 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
136 | .Select
137 | .Column.Month('NASCTO')
138 | .From('CLIENTES')
139 | .AsString);
140 | end;
141 |
142 | procedure TTestCQLFunctionsDB2.TestSubstring;
143 | var
144 | LAsString: String;
145 | begin
146 | LAsString := 'SELECT SUBSTRING(NOME_CLIENTE FROM 1 FOR 2) AS NOME FROM CLIENTES';
147 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
148 | .Select
149 | .Column('NOME_CLIENTE').Substring(1, 2)
150 | .&As('NOME')
151 | .From('CLIENTES')
152 | .AsString);
153 | end;
154 |
155 | procedure TTestCQLFunctionsDB2.TestLower;
156 | var
157 | LAsString: String;
158 | begin
159 | LAsString := 'SELECT LOWER(NOME_CLIENTE) AS NOME FROM CLIENTES';
160 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
161 | .Select
162 | .Column('NOME_CLIENTE').Lower
163 | .&As('NOME')
164 | .From('CLIENTES')
165 | .AsString);
166 | end;
167 |
168 | procedure TTestCQLFunctionsDB2.TestMax;
169 | var
170 | LAsString: String;
171 | begin
172 | LAsString := 'SELECT MAX(ID_CLIENTE) AS IDCOUNT FROM CLIENTES';
173 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
174 | .Select
175 | .Column('ID_CLIENTE').Max
176 | .&As('IDCOUNT')
177 | .From('CLIENTES')
178 | .AsString);
179 | end;
180 |
181 | procedure TTestCQLFunctionsDB2.TestConcatSelect;
182 | var
183 | LAsString: String;
184 | begin
185 | LAsString := 'SELECT ''-'' || NOME FROM CLIENTES';
186 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
187 | .Select
188 | .Column.Concat(['''-''', 'NOME'])
189 | .From('CLIENTES')
190 | .AsString);
191 | end;
192 |
193 | procedure TTestCQLFunctionsDB2.TestConcatWhere;
194 | var
195 | LAsString: String;
196 | begin
197 | LAsString := 'SELECT ''-'' || NOME FROM CLIENTES WHERE (''-'' || NOME = ''-NOME'')';
198 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
199 | .Select
200 | .Column.Concat(['''-''', 'NOME'])
201 | .From('CLIENTES')
202 | .Where.Concat(['''-''', 'NOME']).Equal('''-NOME''')
203 | .AsString);
204 | end;
205 |
206 | procedure TTestCQLFunctionsDB2.TestCount;
207 | var
208 | LAsString: String;
209 | begin
210 | LAsString := 'SELECT COUNT(ID_CLIENTE) AS IDCOUNT FROM CLIENTES';
211 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
212 | .Select
213 | .Column('ID_CLIENTE').Count
214 | .&As('IDCOUNT')
215 | .From('CLIENTES')
216 | .AsString);
217 | end;
218 |
219 | procedure TTestCQLFunctionsDB2.TestDate;
220 | var
221 | LAsString: String;
222 | begin
223 | LAsString := 'SELECT * FROM CLIENTES WHERE TO_DATE(NASCTO, ''dd/MM/yyyy'') = TO_DATE(''02/11/2020'', ''dd/MM/yyyy'')';
224 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
225 | .Select
226 | .All
227 | .From('CLIENTES')
228 | .Where.Date('NASCTO').Equal.Date('''02/11/2020''')
229 | .AsString);
230 | end;
231 |
232 | procedure TTestCQLFunctionsDB2.TestDaySelect;
233 | var
234 | LAsString: String;
235 | begin
236 | LAsString := 'SELECT EXTRACT(DAY FROM NASCTO) FROM CLIENTES';
237 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
238 | .Select
239 | .Column.Day('NASCTO')
240 | .From('CLIENTES')
241 | .AsString);
242 | end;
243 |
244 | procedure TTestCQLFunctionsDB2.TestDayWhere;
245 | var
246 | LAsString: String;
247 | begin
248 | LAsString := 'SELECT * FROM CLIENTES WHERE (EXTRACT(DAY FROM NASCTO) = 9)';
249 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
250 | .Select
251 | .All
252 | .From('CLIENTES')
253 | .Where.Day('NASCTO').Equal('9')
254 | .AsString);
255 | end;
256 |
257 | initialization
258 | TDUnitX.RegisterTestFixture(TTestCQLFunctionsDB2);
259 |
260 | end.
261 |
--------------------------------------------------------------------------------
/Test Delphi/DB2_tests/test.select.firebird.pas:
--------------------------------------------------------------------------------
1 | unit test.select.firebird;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLSelectDB2 = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestSelectAll;
19 | [Test]
20 | procedure TestSelectAllWhere;
21 | [Test]
22 | procedure TestSelectAllWhereAndOr;
23 | [Test]
24 | procedure TestSelectAllWhereAndAnd;
25 | [Test]
26 | procedure TestSelectAllOrderBy;
27 | [Test]
28 | procedure TestSelectColumns;
29 | [Test]
30 | procedure TestSelectColumnsCase;
31 | [Test]
32 | procedure TestSelectPagingDB2;
33 | end;
34 |
35 | implementation
36 |
37 | uses
38 | SysUtils,
39 | cqlbr.interfaces,
40 | criteria.query.language;
41 |
42 | procedure TTestCQLSelectDB2.Setup;
43 | begin
44 | end;
45 |
46 | procedure TTestCQLSelectDB2.TearDown;
47 | begin
48 | end;
49 |
50 | procedure TTestCQLSelectDB2.TestSelectAll;
51 | var
52 | LAsString: String;
53 | begin
54 | LAsString := 'SELECT * FROM CLIENTES AS CLI';
55 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
56 | .Select
57 | .All
58 | .From('CLIENTES').&As('CLI')
59 | .AsString);
60 | end;
61 |
62 | procedure TTestCQLSelectDB2.TestSelectAllOrderBy;
63 | var
64 | LAsString: String;
65 | begin
66 | LAsString := 'SELECT * FROM CLIENTES ORDER BY ID_CLIENTE';
67 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
68 | .Select
69 | .All
70 | .From('CLIENTES')
71 | .OrderBy('ID_CLIENTE')
72 | .AsString);
73 | end;
74 |
75 | procedure TTestCQLSelectDB2.TestSelectAllWhere;
76 | var
77 | LAsString: String;
78 | begin
79 | LAsString := 'SELECT * FROM CLIENTES WHERE ID_CLIENTE = 1';
80 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
81 | .Select
82 | .All
83 | .From('CLIENTES')
84 | .Where('ID_CLIENTE = 1')
85 | .AsString);
86 | end;
87 |
88 | procedure TTestCQLSelectDB2.TestSelectAllWhereAndAnd;
89 | var
90 | LAsString: String;
91 | begin
92 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID_CLIENTE = 1) AND (ID >= 10) AND (ID <= 20)';
93 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
94 | .Select
95 | .All
96 | .From('CLIENTES')
97 | .Where('ID_CLIENTE = 1')
98 | .&And('ID').GreaterEqThan(10)
99 | .&And('ID').LessEqThan(20)
100 | .AsString);
101 | end;
102 |
103 | procedure TTestCQLSelectDB2.TestSelectAllWhereAndOr;
104 | var
105 | LAsString: String;
106 | begin
107 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID_CLIENTE = 1) AND ((ID >= 10) OR (ID <= 20))';
108 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
109 | .Select
110 | .All
111 | .From('CLIENTES')
112 | .Where('ID_CLIENTE = 1')
113 | .&And('ID').GreaterEqThan(10)
114 | .&Or('ID').LessEqThan(20)
115 | .AsString);
116 | end;
117 |
118 | procedure TTestCQLSelectDB2.TestSelectColumns;
119 | var
120 | LAsString: String;
121 | begin
122 | LAsString := 'SELECT ID_CLIENTE, NOME_CLIENTE FROM CLIENTES';
123 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
124 | .Select
125 | .Column('ID_CLIENTE')
126 | .Column('NOME_CLIENTE')
127 | .From('CLIENTES')
128 | .AsString);
129 | end;
130 |
131 | procedure TTestCQLSelectDB2.TestSelectColumnsCase;
132 | var
133 | LAsString: String;
134 | begin
135 | LAsString := 'SELECT ID_CLIENTE, NOME_CLIENTE, (CASE TIPO_CLIENTE WHEN 0 THEN ''FISICA'' WHEN 1 THEN ''JURIDICA'' ELSE ''PRODUTOR'' END) AS TIPO_PESSOA FROM CLIENTES';
136 | Assert.AreEqual(LAsString, TCQL.New(dbnDB2)
137 | .Select
138 | .Column('ID_CLIENTE')
139 | .Column('NOME_CLIENTE')
140 | .Column('TIPO_CLIENTE')
141 | .&Case
142 | .When('0').&Then(CQL.Q('FISICA'))
143 | .When('1').&Then(CQL.Q('JURIDICA'))
144 | .&Else('''PRODUTOR''')
145 | .&End
146 | .&As('TIPO_PESSOA')
147 | .From('CLIENTES')
148 | .AsString);
149 | end;
150 |
151 | procedure TTestCQLSelectDB2.TestSelectPagingDB2;
152 | var
153 | LAsString: String;
154 | begin
155 | LAsString := 'SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY CURRENT_TIMESTAMP) AS ROWNUMBER FROM CLIENTES) AS CLIENTES WHERE (ROWNUMBER > 3 AND ROWNUMBER <= 6) ORDER BY ID_CLIENTE';
156 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
157 | .Select
158 | .All
159 | .Limit(3).Offset(3)
160 | .From('CLIENTES')
161 | .OrderBy('ID_CLIENTE')
162 | .AsString);
163 | end;
164 |
165 | initialization
166 | TDUnitX.RegisterTestFixture(TTestCQLSelectDB2);
167 |
168 | end.
169 |
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/TestCQLBr_Firebird.dpr:
--------------------------------------------------------------------------------
1 | program TestCQLBr_Firebird;
2 |
3 | {$IFNDEF TESTINSIGHT}
4 | {$APPTYPE CONSOLE}
5 | {$ENDIF}{$STRONGLINKTYPES ON}
6 | uses
7 | System.SysUtils,
8 | {$IFDEF TESTINSIGHT}
9 | TestInsight.DUnitX,
10 | {$ENDIF }
11 | DUnitX.Loggers.Console,
12 | DUnitX.Loggers.Xml.NUnit,
13 | DUnitX.TestFramework,
14 | test.select.firebird in 'test.select.firebird.pas',
15 | cqlbr.ast in '..\..\Source\Core\cqlbr.ast.pas',
16 | cqlbr.cases in '..\..\Source\Core\cqlbr.cases.pas',
17 | cqlbr.delete in '..\..\Source\Core\cqlbr.delete.pas',
18 | cqlbr.expression in '..\..\Source\Core\cqlbr.expression.pas',
19 | cqlbr.functions.abstract in '..\..\Source\Core\cqlbr.functions.abstract.pas',
20 | cqlbr.groupby in '..\..\Source\Core\cqlbr.groupby.pas',
21 | cqlbr.having in '..\..\Source\Core\cqlbr.having.pas',
22 | cqlbr.insert in '..\..\Source\Core\cqlbr.insert.pas',
23 | cqlbr.interfaces in '..\..\Source\Core\cqlbr.interfaces.pas',
24 | cqlbr.joins in '..\..\Source\Core\cqlbr.joins.pas',
25 | cqlbr.orderby in '..\..\Source\Core\cqlbr.orderby.pas',
26 | criteria.query.language in '..\..\Source\Core\criteria.query.language.pas',
27 | cqlbr.qualifier in '..\..\Source\Core\cqlbr.qualifier.pas',
28 | cqlbr.select in '..\..\Source\Core\cqlbr.select.pas',
29 | cqlbr.serialize in '..\..\Source\Core\cqlbr.serialize.pas',
30 | cqlbr.update in '..\..\Source\Core\cqlbr.update.pas',
31 | cqlbr.where in '..\..\Source\Core\cqlbr.where.pas',
32 | cqlbr.utils in '..\..\Source\Core\cqlbr.utils.pas',
33 | cqlbr.register in '..\..\Source\Core\cqlbr.register.pas',
34 | test.insert.firebird in 'test.insert.firebird.pas',
35 | test.update.firebird in 'test.update.firebird.pas',
36 | test.delete.firebird in 'test.delete.firebird.pas',
37 | cqlbr.operators in '..\..\Source\Core\cqlbr.operators.pas',
38 | test.operators.firebird in 'test.operators.firebird.pas',
39 | test.operators.like.firebird in 'test.operators.like.firebird.pas',
40 | test.operators.less.firebird in 'test.operators.less.firebird.pas',
41 | test.operators.greater.firebird in 'test.operators.greater.firebird.pas',
42 | test.operators.equal.firebird in 'test.operators.equal.firebird.pas',
43 | test.operators.isin.firebird in 'test.operators.isin.firebird.pas',
44 | test.operators.exists.firebird in 'test.operators.exists.firebird.pas',
45 | cqlbr.qualifier.firebird in '..\..\Source\Drivers\cqlbr.qualifier.firebird.pas',
46 | cqlbr.qualifier.mongodb in '..\..\Source\Drivers\cqlbr.qualifier.mongodb.pas',
47 | cqlbr.qualifier.mssql in '..\..\Source\Drivers\cqlbr.qualifier.mssql.pas',
48 | cqlbr.qualifier.mysql in '..\..\Source\Drivers\cqlbr.qualifier.mysql.pas',
49 | cqlbr.qualifier.oracle in '..\..\Source\Drivers\cqlbr.qualifier.oracle.pas',
50 | cqlbr.qualifier.sqlite in '..\..\Source\Drivers\cqlbr.qualifier.sqlite.pas',
51 | cqlbr.select.mongodb in '..\..\Source\Drivers\cqlbr.select.mongodb.pas',
52 | cqlbr.select.mssql in '..\..\Source\Drivers\cqlbr.select.mssql.pas',
53 | cqlbr.select.mysql in '..\..\Source\Drivers\cqlbr.select.mysql.pas',
54 | cqlbr.select.oracle in '..\..\Source\Drivers\cqlbr.select.oracle.pas',
55 | cqlbr.select.sqlite in '..\..\Source\Drivers\cqlbr.select.sqlite.pas',
56 | cqlbr.serialize.mongodb in '..\..\Source\Drivers\cqlbr.serialize.mongodb.pas',
57 | cqlbr.serialize.mssql in '..\..\Source\Drivers\cqlbr.serialize.mssql.pas',
58 | cqlbr.serialize.mysql in '..\..\Source\Drivers\cqlbr.serialize.mysql.pas',
59 | cqlbr.serialize.oracle in '..\..\Source\Drivers\cqlbr.serialize.oracle.pas',
60 | cqlbr.serialize.sqlite in '..\..\Source\Drivers\cqlbr.serialize.sqlite.pas',
61 | cqlbr.serialize.firebird in '..\..\Source\Drivers\cqlbr.serialize.firebird.pas',
62 | cqlbr.select.firebird in '..\..\Source\Drivers\cqlbr.select.firebird.pas',
63 | cqlbr.functions.firebird in '..\..\Source\Drivers\cqlbr.functions.firebird.pas',
64 | cqlbr.functions in '..\..\Source\Core\cqlbr.functions.pas',
65 | cqlbr.functions.interbase in '..\..\Source\Drivers\cqlbr.functions.interbase.pas',
66 | cqlbr.functions.mysql in '..\..\Source\Drivers\cqlbr.functions.mysql.pas',
67 | cqlbr.functions.mssql in '..\..\Source\Drivers\cqlbr.functions.mssql.pas',
68 | cqlbr.functions.sqlite in '..\..\Source\Drivers\cqlbr.functions.sqlite.pas',
69 | cqlbr.functions.oracle in '..\..\Source\Drivers\cqlbr.functions.oracle.pas',
70 | cqlbr.functions.db2 in '..\..\Source\Drivers\cqlbr.functions.db2.pas',
71 | cqlbr.functions.postgresql in '..\..\Source\Drivers\cqlbr.functions.postgresql.pas',
72 | test.functions.firebird in 'test.functions.firebird.pas',
73 | cqlbr.select.interbase in '..\..\Source\Drivers\cqlbr.select.interbase.pas',
74 | cqlbr.qualifier.interbase in '..\..\Source\Drivers\cqlbr.qualifier.interbase.pas',
75 | cqlbr.serialize.interbase in '..\..\Source\Drivers\cqlbr.serialize.interbase.pas',
76 | cqlbr.select.db2 in '..\..\Source\Drivers\cqlbr.select.db2.pas',
77 | cqlbr.qualifier.db2 in '..\..\Source\Drivers\cqlbr.qualifier.db2.pas',
78 | cqlbr.serialize.db2 in '..\..\Source\Drivers\cqlbr.serialize.db2.pas',
79 | cqlbr.section in '..\..\Source\Core\cqlbr.section.pas',
80 | cqlbr.name in '..\..\Source\Core\cqlbr.name.pas',
81 | cqlbr.namevalue in '..\..\Source\Core\cqlbr.namevalue.pas';
82 |
83 | {$IFNDEF TESTINSIGHT}
84 | var
85 | runner : ITestRunner;
86 | results : IRunResults;
87 | logger : ITestLogger;
88 | nunitLogger : ITestLogger;
89 | {$ENDIF}
90 | begin
91 | ReportMemoryLeaksOnShutdown := DebugHook <> 0;
92 | {$IFDEF TESTINSIGHT}
93 | TestInsight.DUnitX.RunRegisteredTests;
94 | {$ELSE}
95 | try
96 | //Check command line options, will exit if invalid
97 | TDUnitX.CheckCommandLine;
98 | //Create the test runner
99 | runner := TDUnitX.CreateRunner;
100 | //Tell the runner to use RTTI to find Fixtures
101 | runner.UseRTTI := True;
102 | //tell the runner how we will log things
103 | //Log to the console window
104 | logger := TDUnitXConsoleLogger.Create(true);
105 | runner.AddLogger(logger);
106 | //Generate an NUnit compatible XML File
107 | nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
108 | runner.AddLogger(nunitLogger);
109 | runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
110 |
111 | //Run tests
112 | results := runner.Execute;
113 | if not results.AllPassed then
114 | System.ExitCode := EXIT_ERRORS;
115 |
116 | {$IFNDEF CI}
117 | //We don't want this happening when running under CI.
118 | TDUnitX.Options.ExitBehavior := TDUnitXExitBehavior.Pause;
119 | if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
120 | begin
121 | System.Write('Done.. press key to quit.');
122 | System.Readln;
123 | end;
124 | {$ENDIF}
125 | except
126 | on E: Exception do
127 | System.Writeln(E.ClassName, ': ', E.Message);
128 | end;
129 | {$ENDIF}
130 |
131 | end.
132 |
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/TestCQLBr_Firebird.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Test Delphi/Firebird_tests/TestCQLBr_Firebird.res
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/test.delete.firebird.pas:
--------------------------------------------------------------------------------
1 | unit test.delete.firebird;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLDelete = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestDeleteFirebird;
19 | [Test]
20 | procedure TestDeleteWhereFirebird;
21 | end;
22 |
23 | implementation
24 |
25 | uses
26 | SysUtils,
27 | cqlbr.interfaces,
28 | criteria.query.language;
29 |
30 | procedure TTestCQLDelete.Setup;
31 | begin
32 |
33 | end;
34 |
35 | procedure TTestCQLDelete.TearDown;
36 | begin
37 |
38 | end;
39 |
40 | procedure TTestCQLDelete.TestDeleteFirebird;
41 | var
42 | LAsString: string;
43 | begin
44 | LAsString := 'DELETE FROM CLIENTES';
45 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
46 | .Delete
47 | .From('CLIENTES')
48 | .AsString);
49 | end;
50 |
51 | procedure TTestCQLDelete.TestDeleteWhereFirebird;
52 | var
53 | LAsString: string;
54 | begin
55 | LAsString := 'DELETE FROM CLIENTES WHERE ID_CLIENTE = 1';
56 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
57 | .Delete
58 | .From('CLIENTES')
59 | .Where('ID_CLIENTE = 1')
60 | .AsString);
61 | end;
62 |
63 | initialization
64 | TDUnitX.RegisterTestFixture(TTestCQLDelete);
65 |
66 | end.
67 |
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/test.insert.firebird.pas:
--------------------------------------------------------------------------------
1 | unit test.insert.firebird;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLInsert = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestInsertFirebird;
19 | end;
20 |
21 | implementation
22 |
23 | uses
24 | SysUtils,
25 | cqlbr.interfaces,
26 | criteria.query.language;
27 |
28 | procedure TTestCQLInsert.Setup;
29 | begin
30 |
31 | end;
32 |
33 | procedure TTestCQLInsert.TearDown;
34 | begin
35 |
36 | end;
37 |
38 | procedure TTestCQLInsert.TestInsertFirebird;
39 | var
40 | LAsString: string;
41 | begin
42 | LAsString := 'INSERT INTO CLIENTES (ID_CLIENTE, NOME_CLIENTE) VALUES (1, ''MyName'')';
43 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
44 | .Insert
45 | .Into('CLIENTES')
46 | .&Set('ID_CLIENTE', 1)
47 | .&Set('NOME_CLIENTE', 'MyName')
48 | .AsString);
49 | end;
50 |
51 | initialization
52 | TDUnitX.RegisterTestFixture(TTestCQLInsert);
53 |
54 | end.
55 |
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/test.operators.equal.firebird.pas:
--------------------------------------------------------------------------------
1 | unit test.operators.equal.firebird;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLOperatorsEqual = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestEqualIntegerField;
19 | [Test]
20 | procedure TestEqualFloatField;
21 | [Test]
22 | procedure TestEqualStringField;
23 | [Test]
24 | procedure TestEqualDateField;
25 | [Test]
26 | procedure TestEqualDateTimeField;
27 | [Test]
28 | procedure TestNotEqualIntegerField;
29 | [Test]
30 | procedure TestNotEqualFloatField;
31 | [Test]
32 | procedure TestNotEqualStringField;
33 | [Test]
34 | procedure TestNotEqualDateField;
35 | [Test]
36 | procedure TestNotEqualDateTimeField;
37 | end;
38 |
39 | implementation
40 |
41 | uses
42 | SysUtils,
43 | cqlbr.interfaces,
44 | criteria.query.language;
45 |
46 | procedure TTestCQLOperatorsEqual.Setup;
47 | begin
48 |
49 | end;
50 |
51 | procedure TTestCQLOperatorsEqual.TearDown;
52 | begin
53 |
54 | end;
55 |
56 |
57 | procedure TTestCQLOperatorsEqual.TestEqualDateField;
58 | var
59 | LAsString : string;
60 | LDate: TDate;
61 | begin
62 | LAsString := 'SELECT * FROM CLIENTES WHERE (DATA_CADASTRO = ''12/31/2021'')';
63 | LDate := EncodeDate(2021, 12, 31);
64 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
65 | .Select
66 | .All
67 | .From('CLIENTES')
68 | .Where('DATA_CADASTRO').Equal(LDate)
69 | .AsString);
70 | end;
71 |
72 | procedure TTestCQLOperatorsEqual.TestEqualDateTimeField;
73 | var
74 | LAsString : string;
75 | LDateTime: TDateTime;
76 | begin
77 | LAsString := 'SELECT * FROM CLIENTES WHERE (DATA_CADASTRO = ''12/31/2021 23:59:59'')';
78 | LDateTime := EncodeDate(2021, 12, 31)+EncodeTime(23, 59, 59, 0);
79 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
80 | .Select
81 | .All
82 | .From('CLIENTES')
83 | .Where('DATA_CADASTRO').Equal(LDateTime)
84 | .AsString);
85 | end;
86 |
87 | procedure TTestCQLOperatorsEqual.TestEqualFloatField;
88 | var
89 | LAsString : string;
90 | begin
91 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR = 10.9)';
92 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
93 | .Select
94 | .All
95 | .From('CLIENTES')
96 | .Where('VALOR').Equal(10.9)
97 | .AsString);
98 | end;
99 |
100 | procedure TTestCQLOperatorsEqual.TestEqualIntegerField;
101 | var
102 | LAsString : string;
103 | begin
104 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR = 10)';
105 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
106 | .Select
107 | .All
108 | .From('CLIENTES')
109 | .Where('VALOR').Equal(10)
110 | .AsString);
111 | end;
112 |
113 | procedure TTestCQLOperatorsEqual.TestEqualStringField;
114 | var
115 | LAsString : string;
116 | begin
117 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME = ''VALUE'')';
118 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
119 | .Select
120 | .All
121 | .From('CLIENTES')
122 | .Where('NOME').Equal('''VALUE''')
123 | .AsString);
124 | end;
125 |
126 | procedure TTestCQLOperatorsEqual.TestNotEqualDateField;
127 | var
128 | LAsString : string;
129 | LDate: TDate;
130 | begin
131 | LAsString := 'SELECT * FROM CLIENTES WHERE (DATA_CADASTRO <> ''12/31/2021'')';
132 | LDate := EncodeDate(2021, 12, 31);
133 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
134 | .Select
135 | .All
136 | .From('CLIENTES')
137 | .Where('DATA_CADASTRO').NotEqual(LDate)
138 | .AsString);
139 | end;
140 |
141 | procedure TTestCQLOperatorsEqual.TestNotEqualDateTimeField;
142 | var
143 | LAsString : string;
144 | LDateTime: TDateTime;
145 | begin
146 | LAsString := 'SELECT * FROM CLIENTES WHERE (DATA_CADASTRO <> ''12/31/2021 23:59:59'')';
147 | LDateTime := EncodeDate(2021, 12, 31)+EncodeTime(23, 59, 59, 0);
148 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
149 | .Select
150 | .All
151 | .From('CLIENTES')
152 | .Where('DATA_CADASTRO').NotEqual(LDateTime)
153 | .AsString);
154 | end;
155 |
156 | procedure TTestCQLOperatorsEqual.TestNotEqualFloatField;
157 | var
158 | LAsString : string;
159 | begin
160 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR <> 10.9)';
161 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
162 | .Select
163 | .All
164 | .From('CLIENTES')
165 | .Where('VALOR').NotEqual(10.9)
166 | .AsString);
167 | end;
168 |
169 | procedure TTestCQLOperatorsEqual.TestNotEqualIntegerField;
170 | var
171 | LAsString : string;
172 | begin
173 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR <> 10)';
174 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
175 | .Select
176 | .All
177 | .From('CLIENTES')
178 | .Where('VALOR').NotEqual(10)
179 | .AsString);
180 | end;
181 |
182 | procedure TTestCQLOperatorsEqual.TestNotEqualStringField;
183 | var
184 | LAsString : string;
185 | begin
186 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME <> ''VALUE'')';
187 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
188 | .Select
189 | .All
190 | .From('CLIENTES')
191 | .Where('NOME').NotEqual('''VALUE''')
192 | .AsString);
193 | end;
194 |
195 | initialization
196 | TDUnitX.RegisterTestFixture(TTestCQLOperatorsEqual);
197 |
198 | end.
199 |
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/test.operators.exists.firebird.pas:
--------------------------------------------------------------------------------
1 | unit test.operators.exists.firebird;
2 |
3 | interface
4 | uses
5 | DUnitX.TestFramework;
6 |
7 | type
8 |
9 | [TestFixture]
10 | TTestCQLExists = class(TObject)
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestExistsSubQuery;
19 | [Test]
20 | procedure TestNotExistsSubQuery;
21 | end;
22 |
23 | implementation
24 |
25 | uses
26 | SysUtils,
27 | cqlbr.interfaces,
28 | criteria.query.language;
29 |
30 | procedure TTestCQLExists.Setup;
31 | begin
32 | end;
33 |
34 | procedure TTestCQLExists.TearDown;
35 | begin
36 | end;
37 |
38 | procedure TTestCQLExists.TestExistsSubQuery;
39 | var
40 | LAsString : string;
41 | begin
42 | LAsString := 'SELECT * FROM CLIENTES WHERE (EXISTS (SELECT IDCLIENTE FROM PEDIDOS WHERE (PEDIDOS.IDCLIENTE = CLIENTES.IDCLIENTE)))';
43 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
44 | .Select
45 | .All
46 | .From('CLIENTES')
47 | .Where.Exists( TCQL.New(dbnFirebird)
48 | .Select
49 | .Column('IDCLIENTE')
50 | .From('PEDIDOS')
51 | .Where('PEDIDOS.IDCLIENTE').Equal('CLIENTES.IDCLIENTE')
52 | .AsString)
53 | .AsString);
54 | end;
55 |
56 | procedure TTestCQLExists.TestNotExistsSubQuery;
57 | var
58 | LAsString : string;
59 | begin
60 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOT EXISTS (SELECT IDCLIENTE FROM PEDIDOS WHERE (PEDIDOS.IDCLIENTE = CLIENTES.IDCLIENTE)))';
61 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
62 | .Select
63 | .All
64 | .From('CLIENTES')
65 | .Where.NotExists( TCQL.New(dbnFirebird)
66 | .Select
67 | .Column('IDCLIENTE')
68 | .From('PEDIDOS')
69 | .Where('PEDIDOS.IDCLIENTE').Equal('CLIENTES.IDCLIENTE')
70 | .AsString)
71 | .AsString);
72 | end;
73 |
74 | initialization
75 | TDUnitX.RegisterTestFixture(TTestCQLExists);
76 |
77 | end.
78 |
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/test.operators.firebird.pas:
--------------------------------------------------------------------------------
1 | unit test.operators.firebird;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLOperators = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestWhereIsNull;
19 | [Test]
20 | procedure TestOrIsNull;
21 | [Test]
22 | procedure TestAndIsNull;
23 |
24 | [Test]
25 | procedure TestWhereIsNotNull;
26 | [Test]
27 | procedure TestOrIsNotNull;
28 | [Test]
29 | procedure TestAndIsNotNull;
30 | end;
31 |
32 | implementation
33 |
34 | uses
35 | SysUtils,
36 | cqlbr.interfaces,
37 | criteria.query.language;
38 |
39 | procedure TTestCQLOperators.Setup;
40 | begin
41 |
42 | end;
43 |
44 | procedure TTestCQLOperators.TearDown;
45 | begin
46 |
47 | end;
48 |
49 | procedure TTestCQLOperators.TestAndIsNotNull;
50 | var
51 | LAsString : string;
52 | begin
53 | LAsString := 'SELECT * FROM CLIENTES WHERE (1 = 1) AND (NOME IS NOT NULL)';
54 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
55 | .Select
56 | .All
57 | .From('CLIENTES')
58 | .Where('1 = 1')
59 | .&And('NOME').IsNotNull
60 | .AsString);
61 | end;
62 |
63 | procedure TTestCQLOperators.TestAndIsNull;
64 | var
65 | LAsString : string;
66 | begin
67 | LAsString := 'SELECT * FROM CLIENTES WHERE (1 = 1) AND (NOME IS NULL)';
68 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
69 | .Select
70 | .All
71 | .From('CLIENTES')
72 | .Where('1 = 1')
73 | .&And('NOME').IsNull
74 | .AsString);
75 | end;
76 |
77 | procedure TTestCQLOperators.TestOrIsNotNull;
78 | var
79 | LAsString : string;
80 | begin
81 | LAsString := 'SELECT * FROM CLIENTES WHERE ((1 = 1) OR (NOME IS NOT NULL))';
82 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
83 | .Select
84 | .All
85 | .From('CLIENTES')
86 | .Where('1 = 1')
87 | .&Or('NOME').IsNotNull
88 | .AsString);
89 | end;
90 |
91 | procedure TTestCQLOperators.TestOrIsNull;
92 | var
93 | LAsString : string;
94 | begin
95 | LAsString := 'SELECT * FROM CLIENTES WHERE ((1 = 1) OR (NOME IS NULL))';
96 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
97 | .Select
98 | .All
99 | .From('CLIENTES')
100 | .Where('1 = 1')
101 | .&Or('NOME').IsNull
102 | .AsString);
103 | end;
104 |
105 | procedure TTestCQLOperators.TestWhereIsNotNull;
106 | var
107 | LAsString : string;
108 | begin
109 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME IS NOT NULL)';
110 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
111 | .Select
112 | .All
113 | .From('CLIENTES')
114 | .Where('NOME').IsNotNull
115 | .AsString);
116 | end;
117 |
118 | procedure TTestCQLOperators.TestWhereIsNull;
119 | var
120 | LAsString : string;
121 | begin
122 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME IS NULL)';
123 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
124 | .Select
125 | .All
126 | .From('CLIENTES')
127 | .Where('NOME').IsNull
128 | .AsString);
129 | end;
130 |
131 | initialization
132 | TDUnitX.RegisterTestFixture(TTestCQLOperators);
133 |
134 | end.
135 |
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/test.operators.greater.firebird.pas:
--------------------------------------------------------------------------------
1 | unit test.operators.greater.firebird;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLOperatorsGreater = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestGreaterThanFloat;
19 | [Test]
20 | procedure TestGreaterThanInteger;
21 | [Test]
22 | procedure TestGreaterEqualThanFloat;
23 | [Test]
24 | procedure TestGreaterEqualThanInteger;
25 | end;
26 |
27 | implementation
28 |
29 | uses
30 | SysUtils,
31 | cqlbr.interfaces,
32 | criteria.query.language;
33 |
34 | procedure TTestCQLOperatorsGreater.Setup;
35 | begin
36 |
37 | end;
38 |
39 | procedure TTestCQLOperatorsGreater.TearDown;
40 | begin
41 |
42 | end;
43 |
44 | procedure TTestCQLOperatorsGreater.TestGreaterEqualThanFloat;
45 | var
46 | LAsString : string;
47 | begin
48 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR >= 10.9)';
49 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
50 | .Select
51 | .All
52 | .From('CLIENTES')
53 | .Where('VALOR').GreaterEqThan(10.9)
54 | .AsString);
55 | end;
56 |
57 | procedure TTestCQLOperatorsGreater.TestGreaterEqualThanInteger;
58 | var
59 | LAsString : string;
60 | begin
61 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR >= 10)';
62 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
63 | .Select
64 | .All
65 | .From('CLIENTES')
66 | .Where('VALOR').GreaterEqThan(10)
67 | .AsString);
68 | end;
69 |
70 | procedure TTestCQLOperatorsGreater.TestGreaterThanFloat;
71 | var
72 | LAsString : string;
73 | begin
74 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR > 10.9)';
75 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
76 | .Select
77 | .All
78 | .From('CLIENTES')
79 | .Where('VALOR').GreaterThan(10.9)
80 | .AsString);
81 | end;
82 |
83 | procedure TTestCQLOperatorsGreater.TestGreaterThanInteger;
84 | var
85 | LAsString : string;
86 | begin
87 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR > 10)';
88 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
89 | .Select
90 | .All
91 | .From('CLIENTES')
92 | .Where('VALOR').GreaterThan(10)
93 | .AsString);
94 | end;
95 |
96 | initialization
97 | TDUnitX.RegisterTestFixture(TTestCQLOperatorsGreater);
98 |
99 | end.
100 |
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/test.operators.isin.firebird.pas:
--------------------------------------------------------------------------------
1 | unit test.operators.isin.firebird;
2 |
3 | interface
4 | uses
5 | DUnitX.TestFramework;
6 |
7 | type
8 |
9 | [TestFixture]
10 | TTestCQLOperatorsIN = class(TObject)
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestInInteger;
19 | [Test]
20 | procedure TestInFloat;
21 | [Test]
22 | procedure TestInString;
23 | [Test]
24 | procedure TestInSubQuery;
25 | [Test]
26 | procedure TestNotInInteger;
27 | [Test]
28 | procedure TestNotInFloat;
29 | [Test]
30 | procedure TestNotInString;
31 | [Test]
32 | procedure TestNotInSubQuery;
33 | end;
34 |
35 | implementation
36 |
37 | uses
38 | SysUtils,
39 | cqlbr.interfaces,
40 | criteria.query.language;
41 |
42 | procedure TTestCQLOperatorsIN.Setup;
43 | begin
44 | end;
45 |
46 | procedure TTestCQLOperatorsIN.TearDown;
47 | begin
48 | end;
49 |
50 |
51 | procedure TTestCQLOperatorsIN.TestInFloat;
52 | var
53 | LAsString : string;
54 | begin
55 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR IN (1.5, 2.7, 3))';
56 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
57 | .Select
58 | .All
59 | .From('CLIENTES')
60 | .Where('VALOR').&In([1.5, 2.7, 3])
61 | .AsString);
62 | end;
63 |
64 | procedure TTestCQLOperatorsIN.TestInInteger;
65 | var
66 | LAsString : string;
67 | begin
68 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR IN (1, 2, 3))';
69 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
70 | .Select
71 | .All
72 | .From('CLIENTES')
73 | .Where('VALOR').&In([1, 2, 3])
74 | .AsString);
75 | end;
76 |
77 | procedure TTestCQLOperatorsIN.TestInString;
78 | var
79 | LAsString : string;
80 | begin
81 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR IN (''VALUE.1'', ''VALUE,2'', ''VALUE3''))';
82 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
83 | .Select
84 | .All
85 | .From('CLIENTES')
86 | .Where('VALOR').&In(['VALUE.1', 'VALUE,2', 'VALUE3'])
87 | .AsString);
88 | end;
89 |
90 | procedure TTestCQLOperatorsIN.TestInSubQuery;
91 | var
92 | LAsString : string;
93 | begin
94 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID IN (SELECT IDCLIENTE FROM PEDIDOS))';
95 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
96 | .Select
97 | .All
98 | .From('CLIENTES')
99 | .Where('ID').&In( TCQL.New(dbnFirebird)
100 | .Select
101 | .Column('IDCLIENTE')
102 | .From('PEDIDOS').AsString)
103 | .AsString);
104 | end;
105 |
106 | procedure TTestCQLOperatorsIN.TestNotInFloat;
107 | var
108 | LAsString : string;
109 | begin
110 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR NOT IN (1.5, 2.7, 3))';
111 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
112 | .Select
113 | .All
114 | .From('CLIENTES')
115 | .Where('VALOR').NotIn([1.5, 2.7, 3])
116 | .AsString);
117 | end;
118 |
119 | procedure TTestCQLOperatorsIN.TestNotInInteger;
120 | var
121 | LAsString : string;
122 | begin
123 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR NOT IN (1, 2, 3))';
124 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
125 | .Select
126 | .All
127 | .From('CLIENTES')
128 | .Where('VALOR').NotIn([1, 2, 3])
129 | .AsString);
130 | end;
131 |
132 | procedure TTestCQLOperatorsIN.TestNotInString;
133 | var
134 | LAsString : string;
135 | begin
136 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR NOT IN (''VALUE.1'', ''VALUE,2'', ''VALUE3''))';
137 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
138 | .Select
139 | .All
140 | .From('CLIENTES')
141 | .Where('VALOR').NotIn(['VALUE.1', 'VALUE,2', 'VALUE3'])
142 | .AsString);
143 | end;
144 |
145 | procedure TTestCQLOperatorsIN.TestNotInSubQuery;
146 | var
147 | LAsString : string;
148 | begin
149 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID NOT IN (SELECT IDCLIENTE FROM PEDIDOS))';
150 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
151 | .Select
152 | .All
153 | .From('CLIENTES')
154 | .Where('ID').NotIn( TCQL.New(dbnFirebird)
155 | .Select
156 | .Column('IDCLIENTE')
157 | .From('PEDIDOS').AsString)
158 | .AsString);
159 | end;
160 |
161 | initialization
162 | TDUnitX.RegisterTestFixture(TTestCQLOperatorsIN);
163 | end.
164 |
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/test.operators.less.firebird.pas:
--------------------------------------------------------------------------------
1 | unit test.operators.less.firebird;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLOperatorsLess = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestLessThanFloat;
19 | [Test]
20 | procedure TestLessThanInteger;
21 | [Test]
22 | procedure TestLessEqualThanFloat;
23 | [Test]
24 | procedure TestLessEqualThanInteger;
25 | end;
26 |
27 | implementation
28 |
29 | uses
30 | SysUtils,
31 | cqlbr.interfaces,
32 | criteria.query.language;
33 |
34 | procedure TTestCQLOperatorsLess.Setup;
35 | begin
36 |
37 | end;
38 |
39 | procedure TTestCQLOperatorsLess.TearDown;
40 | begin
41 |
42 | end;
43 |
44 | procedure TTestCQLOperatorsLess.TestLessEqualThanFloat;
45 | var
46 | LAsString : string;
47 | begin
48 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR <= 10.9)';
49 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
50 | .Select
51 | .All
52 | .From('CLIENTES')
53 | .Where('VALOR').LessEqThan(10.9)
54 | .AsString);
55 | end;
56 |
57 | procedure TTestCQLOperatorsLess.TestLessEqualThanInteger;
58 | var
59 | LAsString : string;
60 | begin
61 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR <= 10)';
62 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
63 | .Select
64 | .All
65 | .From('CLIENTES')
66 | .Where('VALOR').LessEqThan(10)
67 | .AsString);
68 | end;
69 |
70 | procedure TTestCQLOperatorsLess.TestLessThanFloat;
71 | var
72 | LAsString : string;
73 | begin
74 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR < 10.9)';
75 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
76 | .Select
77 | .All
78 | .From('CLIENTES')
79 | .Where('VALOR').LessThan(10.9)
80 | .AsString);
81 | end;
82 |
83 | procedure TTestCQLOperatorsLess.TestLessThanInteger;
84 | var
85 | LAsString : string;
86 | begin
87 | LAsString := 'SELECT * FROM CLIENTES WHERE (VALOR < 10)';
88 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
89 | .Select
90 | .All
91 | .From('CLIENTES')
92 | .Where('VALOR').LessThan(10)
93 | .AsString);
94 | end;
95 |
96 | initialization
97 | TDUnitX.RegisterTestFixture(TTestCQLOperatorsLess);
98 |
99 | end.
100 |
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/test.operators.like.firebird.pas:
--------------------------------------------------------------------------------
1 | unit test.operators.like.firebird;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLOperatorsLike = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestLikeFull;
19 | [Test]
20 | procedure TestLikeRight;
21 | [Test]
22 | procedure TestLikeLeft;
23 | [Test]
24 | procedure TestNotLikeFull;
25 | [Test]
26 | procedure TestNotLikeRight;
27 | [Test]
28 | procedure TestNotLikeLeft;
29 |
30 | end;
31 |
32 | implementation
33 |
34 | uses
35 | SysUtils,
36 | cqlbr.interfaces,
37 | criteria.query.language;
38 |
39 | procedure TTestCQLOperatorsLike.Setup;
40 | begin
41 |
42 | end;
43 |
44 | procedure TTestCQLOperatorsLike.TearDown;
45 | begin
46 |
47 | end;
48 |
49 | procedure TTestCQLOperatorsLike.TestLikeFull;
50 | var
51 | LAsString : string;
52 | begin
53 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME LIKE ''%VALUE%'')';
54 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
55 | .Select
56 | .All
57 | .From('CLIENTES')
58 | .Where('NOME').LikeFull('VALUE')
59 | .AsString);
60 | end;
61 |
62 | procedure TTestCQLOperatorsLike.TestLikeLeft;
63 | var
64 | LAsString : string;
65 | begin
66 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME LIKE ''%VALUE'')';
67 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
68 | .Select
69 | .All
70 | .From('CLIENTES')
71 | .Where('NOME').LikeLeft('VALUE')
72 | .AsString);
73 | end;
74 |
75 | procedure TTestCQLOperatorsLike.TestLikeRight;
76 | var
77 | LAsString : string;
78 | begin
79 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME LIKE ''VALUE%'')';
80 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
81 | .Select
82 | .All
83 | .From('CLIENTES')
84 | .Where('NOME').LikeRight('VALUE')
85 | .AsString);
86 | end;
87 |
88 | procedure TTestCQLOperatorsLike.TestNotLikeFull;
89 | var
90 | LAsString : string;
91 | begin
92 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME NOT LIKE ''%VALUE%'')';
93 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
94 | .Select
95 | .All
96 | .From('CLIENTES')
97 | .Where('NOME').NotLikeFull('VALUE')
98 | .AsString);
99 | end;
100 |
101 | procedure TTestCQLOperatorsLike.TestNotLikeLeft;
102 | var
103 | LAsString : string;
104 | begin
105 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME NOT LIKE ''%VALUE'')';
106 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
107 | .Select
108 | .All
109 | .From('CLIENTES')
110 | .Where('NOME').NotLikeLeft('VALUE')
111 | .AsString);
112 | end;
113 |
114 | procedure TTestCQLOperatorsLike.TestNotLikeRight;
115 | var
116 | LAsString : string;
117 | begin
118 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME NOT LIKE ''VALUE%'')';
119 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
120 | .Select
121 | .All
122 | .From('CLIENTES')
123 | .Where('NOME').NotLikeRight('VALUE')
124 | .AsString);
125 | end;
126 |
127 | initialization
128 | TDUnitX.RegisterTestFixture(TTestCQLOperatorsLike);
129 |
130 | end.
131 |
--------------------------------------------------------------------------------
/Test Delphi/Firebird_tests/test.update.firebird.pas:
--------------------------------------------------------------------------------
1 | unit test.update.firebird;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLUpdate = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestUpdateFirebird;
19 | [Test]
20 | procedure TestUpdateWhereFirebird;
21 | end;
22 |
23 | implementation
24 |
25 | uses
26 | SysUtils,
27 | cqlbr.interfaces,
28 | criteria.query.language;
29 |
30 | procedure TTestCQLUpdate.Setup;
31 | begin
32 |
33 | end;
34 |
35 | procedure TTestCQLUpdate.TearDown;
36 | begin
37 |
38 | end;
39 |
40 | procedure TTestCQLUpdate.TestUpdateFirebird;
41 | var
42 | LAsString: string;
43 | LDate: TDate;
44 | LDateTime: TDateTime;
45 | begin
46 | LAsString := 'UPDATE CLIENTES SET ID_CLIENTE = ''1'', NOME_CLIENTE = ''MyName'', DATA_CADASTRO = ''12/31/2021'', DATA_ALTERACAO = ''12/31/2021 23:59:59''';
47 | LDate := EncodeDate(2021, 12, 31);
48 | LDateTime := EncodeDate(2021, 12, 31)+EncodeTime(23, 59, 59, 0);
49 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
50 | .Update('CLIENTES')
51 | .&Set('ID_CLIENTE', '1')
52 | .&Set('NOME_CLIENTE', 'MyName')
53 | .&Set('DATA_CADASTRO', LDate)
54 | .&Set('DATA_ALTERACAO', LDateTime)
55 | .AsString);
56 | end;
57 |
58 | procedure TTestCQLUpdate.TestUpdateWhereFirebird;
59 | var
60 | LAsString: string;
61 | begin
62 | LAsString := 'UPDATE CLIENTES SET ID_CLIENTE = 1, NOME_CLIENTE = ''MyName'' WHERE ID_CLIENTE = 1';
63 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
64 | .Update('CLIENTES')
65 | .&Set('ID_CLIENTE', 1)
66 | .&Set('NOME_CLIENTE', 'MyName')
67 | .Where('ID_CLIENTE = 1')
68 | .AsString);
69 | end;
70 |
71 | initialization
72 | TDUnitX.RegisterTestFixture(TTestCQLUpdate);
73 |
74 | end.
75 |
--------------------------------------------------------------------------------
/Test Delphi/Interbase_tests/TestCQLBr_Interbase.dpr:
--------------------------------------------------------------------------------
1 | program TestCQLBr_Interbase;
2 |
3 | {$IFNDEF TESTINSIGHT}
4 | {$APPTYPE CONSOLE}
5 | {$ENDIF}{$STRONGLINKTYPES ON}
6 | uses
7 | System.SysUtils,
8 | {$IFDEF TESTINSIGHT}
9 | TestInsight.DUnitX,
10 | {$ENDIF }
11 | DUnitX.Loggers.Console,
12 | DUnitX.Loggers.Xml.NUnit,
13 | DUnitX.TestFramework,
14 | cqlbr.ast in '..\..\Source\Core\cqlbr.ast.pas',
15 | cqlbr.cases in '..\..\Source\Core\cqlbr.cases.pas',
16 | cqlbr.delete in '..\..\Source\Core\cqlbr.delete.pas',
17 | cqlbr.expression in '..\..\Source\Core\cqlbr.expression.pas',
18 | cqlbr.functions.abstract in '..\..\Source\Core\cqlbr.functions.abstract.pas',
19 | cqlbr.groupby in '..\..\Source\Core\cqlbr.groupby.pas',
20 | cqlbr.having in '..\..\Source\Core\cqlbr.having.pas',
21 | cqlbr.insert in '..\..\Source\Core\cqlbr.insert.pas',
22 | cqlbr.interfaces in '..\..\Source\Core\cqlbr.interfaces.pas',
23 | cqlbr.joins in '..\..\Source\Core\cqlbr.joins.pas',
24 | cqlbr.orderby in '..\..\Source\Core\cqlbr.orderby.pas',
25 | criteria.query.language in '..\..\Source\Core\criteria.query.language.pas',
26 | cqlbr.qualifier in '..\..\Source\Core\cqlbr.qualifier.pas',
27 | cqlbr.select in '..\..\Source\Core\cqlbr.select.pas',
28 | cqlbr.serialize in '..\..\Source\Core\cqlbr.serialize.pas',
29 | cqlbr.update in '..\..\Source\Core\cqlbr.update.pas',
30 | cqlbr.where in '..\..\Source\Core\cqlbr.where.pas',
31 | cqlbr.utils in '..\..\Source\Core\cqlbr.utils.pas',
32 | cqlbr.register in '..\..\Source\Core\cqlbr.register.pas',
33 | cqlbr.operators in '..\..\Source\Core\cqlbr.operators.pas',
34 | cqlbr.qualifier.firebird in '..\..\Source\Drivers\cqlbr.qualifier.firebird.pas',
35 | cqlbr.qualifier.mongodb in '..\..\Source\Drivers\cqlbr.qualifier.mongodb.pas',
36 | cqlbr.qualifier.mssql in '..\..\Source\Drivers\cqlbr.qualifier.mssql.pas',
37 | cqlbr.qualifier.mysql in '..\..\Source\Drivers\cqlbr.qualifier.mysql.pas',
38 | cqlbr.qualifier.oracle in '..\..\Source\Drivers\cqlbr.qualifier.oracle.pas',
39 | cqlbr.qualifier.sqlite in '..\..\Source\Drivers\cqlbr.qualifier.sqlite.pas',
40 | cqlbr.select.mongodb in '..\..\Source\Drivers\cqlbr.select.mongodb.pas',
41 | cqlbr.select.mssql in '..\..\Source\Drivers\cqlbr.select.mssql.pas',
42 | cqlbr.select.mysql in '..\..\Source\Drivers\cqlbr.select.mysql.pas',
43 | cqlbr.select.oracle in '..\..\Source\Drivers\cqlbr.select.oracle.pas',
44 | cqlbr.select.sqlite in '..\..\Source\Drivers\cqlbr.select.sqlite.pas',
45 | cqlbr.serialize.mongodb in '..\..\Source\Drivers\cqlbr.serialize.mongodb.pas',
46 | cqlbr.serialize.mssql in '..\..\Source\Drivers\cqlbr.serialize.mssql.pas',
47 | cqlbr.serialize.mysql in '..\..\Source\Drivers\cqlbr.serialize.mysql.pas',
48 | cqlbr.serialize.oracle in '..\..\Source\Drivers\cqlbr.serialize.oracle.pas',
49 | cqlbr.serialize.sqlite in '..\..\Source\Drivers\cqlbr.serialize.sqlite.pas',
50 | cqlbr.serialize.firebird in '..\..\Source\Drivers\cqlbr.serialize.firebird.pas',
51 | cqlbr.select.firebird in '..\..\Source\Drivers\cqlbr.select.firebird.pas',
52 | cqlbr.functions.firebird in '..\..\Source\Drivers\cqlbr.functions.firebird.pas',
53 | cqlbr.functions in '..\..\Source\Core\cqlbr.functions.pas',
54 | cqlbr.functions.interbase in '..\..\Source\Drivers\cqlbr.functions.interbase.pas',
55 | cqlbr.functions.mysql in '..\..\Source\Drivers\cqlbr.functions.mysql.pas',
56 | cqlbr.functions.mssql in '..\..\Source\Drivers\cqlbr.functions.mssql.pas',
57 | cqlbr.functions.sqlite in '..\..\Source\Drivers\cqlbr.functions.sqlite.pas',
58 | cqlbr.functions.oracle in '..\..\Source\Drivers\cqlbr.functions.oracle.pas',
59 | cqlbr.functions.db2 in '..\..\Source\Drivers\cqlbr.functions.db2.pas',
60 | cqlbr.functions.postgresql in '..\..\Source\Drivers\cqlbr.functions.postgresql.pas',
61 | test.functions.interbase in 'test.functions.interbase.pas',
62 | cqlbr.select.interbase in '..\..\Source\Drivers\cqlbr.select.interbase.pas',
63 | cqlbr.qualifier.interbase in '..\..\Source\Drivers\cqlbr.qualifier.interbase.pas',
64 | cqlbr.serialize.interbase in '..\..\Source\Drivers\cqlbr.serialize.interbase.pas',
65 | cqlbr.select.db2 in '..\..\Source\Drivers\cqlbr.select.db2.pas',
66 | cqlbr.qualifier.db2 in '..\..\Source\Drivers\cqlbr.qualifier.db2.pas',
67 | cqlbr.serialize.db2 in '..\..\Source\Drivers\cqlbr.serialize.db2.pas',
68 | cqlbr.section in '..\..\Source\Core\cqlbr.section.pas',
69 | cqlbr.name in '..\..\Source\Core\cqlbr.name.pas',
70 | cqlbr.namevalue in '..\..\Source\Core\cqlbr.namevalue.pas';
71 |
72 | {$IFNDEF TESTINSIGHT}
73 | var
74 | runner : ITestRunner;
75 | results : IRunResults;
76 | logger : ITestLogger;
77 | nunitLogger : ITestLogger;
78 | {$ENDIF}
79 | begin
80 | ReportMemoryLeaksOnShutdown := DebugHook <> 0;
81 | {$IFDEF TESTINSIGHT}
82 | TestInsight.DUnitX.RunRegisteredTests;
83 | {$ELSE}
84 | try
85 | //Check command line options, will exit if invalid
86 | TDUnitX.CheckCommandLine;
87 | //Create the test runner
88 | runner := TDUnitX.CreateRunner;
89 | //Tell the runner to use RTTI to find Fixtures
90 | runner.UseRTTI := True;
91 | //tell the runner how we will log things
92 | //Log to the console window
93 | logger := TDUnitXConsoleLogger.Create(true);
94 | runner.AddLogger(logger);
95 | //Generate an NUnit compatible XML File
96 | nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
97 | runner.AddLogger(nunitLogger);
98 | runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
99 |
100 | //Run tests
101 | results := runner.Execute;
102 | if not results.AllPassed then
103 | System.ExitCode := EXIT_ERRORS;
104 |
105 | {$IFNDEF CI}
106 | //We don't want this happening when running under CI.
107 | if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
108 | begin
109 | System.Write('Done.. press key to quit.');
110 | System.Readln;
111 | end;
112 | {$ENDIF}
113 | except
114 | on E: Exception do
115 | System.Writeln(E.ClassName, ': ', E.Message);
116 | end;
117 | {$ENDIF}
118 |
119 | end.
120 |
--------------------------------------------------------------------------------
/Test Delphi/Interbase_tests/TestCQLBr_Interbase.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Test Delphi/Interbase_tests/TestCQLBr_Interbase.res
--------------------------------------------------------------------------------
/Test Delphi/Interbase_tests/Win32/Debug/dunitx-results.xml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/Test Delphi/MSSQL_tests/TestCQLBr_MSSQL.dpr:
--------------------------------------------------------------------------------
1 | program TestCQLBr_MSSQL;
2 |
3 | {$IFNDEF TESTINSIGHT}
4 | {$APPTYPE CONSOLE}
5 | {$ENDIF}{$STRONGLINKTYPES ON}
6 | uses
7 | System.SysUtils,
8 | {$IFDEF TESTINSIGHT}
9 | TestInsight.DUnitX,
10 | {$ENDIF }
11 | DUnitX.Loggers.Console,
12 | DUnitX.Loggers.Xml.NUnit,
13 | DUnitX.TestFramework,
14 | cqlbr.ast in '..\..\Source\Core\cqlbr.ast.pas',
15 | cqlbr.cases in '..\..\Source\Core\cqlbr.cases.pas',
16 | cqlbr.delete in '..\..\Source\Core\cqlbr.delete.pas',
17 | cqlbr.expression in '..\..\Source\Core\cqlbr.expression.pas',
18 | cqlbr.functions.abstract in '..\..\Source\Core\cqlbr.functions.abstract.pas',
19 | cqlbr.groupby in '..\..\Source\Core\cqlbr.groupby.pas',
20 | cqlbr.having in '..\..\Source\Core\cqlbr.having.pas',
21 | cqlbr.insert in '..\..\Source\Core\cqlbr.insert.pas',
22 | cqlbr.interfaces in '..\..\Source\Core\cqlbr.interfaces.pas',
23 | cqlbr.joins in '..\..\Source\Core\cqlbr.joins.pas',
24 | cqlbr.orderby in '..\..\Source\Core\cqlbr.orderby.pas',
25 | criteria.query.language in '..\..\Source\Core\criteria.query.language.pas',
26 | cqlbr.qualifier in '..\..\Source\Core\cqlbr.qualifier.pas',
27 | cqlbr.select in '..\..\Source\Core\cqlbr.select.pas',
28 | cqlbr.serialize in '..\..\Source\Core\cqlbr.serialize.pas',
29 | cqlbr.update in '..\..\Source\Core\cqlbr.update.pas',
30 | cqlbr.where in '..\..\Source\Core\cqlbr.where.pas',
31 | cqlbr.utils in '..\..\Source\Core\cqlbr.utils.pas',
32 | cqlbr.register in '..\..\Source\Core\cqlbr.register.pas',
33 | cqlbr.operators in '..\..\Source\Core\cqlbr.operators.pas',
34 | cqlbr.qualifier.firebird in '..\..\Source\Drivers\cqlbr.qualifier.firebird.pas',
35 | cqlbr.qualifier.mongodb in '..\..\Source\Drivers\cqlbr.qualifier.mongodb.pas',
36 | cqlbr.qualifier.mssql in '..\..\Source\Drivers\cqlbr.qualifier.mssql.pas',
37 | cqlbr.qualifier.mysql in '..\..\Source\Drivers\cqlbr.qualifier.mysql.pas',
38 | cqlbr.qualifier.oracle in '..\..\Source\Drivers\cqlbr.qualifier.oracle.pas',
39 | cqlbr.qualifier.sqlite in '..\..\Source\Drivers\cqlbr.qualifier.sqlite.pas',
40 | cqlbr.select.mongodb in '..\..\Source\Drivers\cqlbr.select.mongodb.pas',
41 | cqlbr.select.mssql in '..\..\Source\Drivers\cqlbr.select.mssql.pas',
42 | cqlbr.select.mysql in '..\..\Source\Drivers\cqlbr.select.mysql.pas',
43 | cqlbr.select.oracle in '..\..\Source\Drivers\cqlbr.select.oracle.pas',
44 | cqlbr.select.sqlite in '..\..\Source\Drivers\cqlbr.select.sqlite.pas',
45 | cqlbr.serialize.mongodb in '..\..\Source\Drivers\cqlbr.serialize.mongodb.pas',
46 | cqlbr.serialize.mssql in '..\..\Source\Drivers\cqlbr.serialize.mssql.pas',
47 | cqlbr.serialize.mysql in '..\..\Source\Drivers\cqlbr.serialize.mysql.pas',
48 | cqlbr.serialize.oracle in '..\..\Source\Drivers\cqlbr.serialize.oracle.pas',
49 | cqlbr.serialize.sqlite in '..\..\Source\Drivers\cqlbr.serialize.sqlite.pas',
50 | cqlbr.serialize.firebird in '..\..\Source\Drivers\cqlbr.serialize.firebird.pas',
51 | cqlbr.select.firebird in '..\..\Source\Drivers\cqlbr.select.firebird.pas',
52 | cqlbr.functions.firebird in '..\..\Source\Drivers\cqlbr.functions.firebird.pas',
53 | cqlbr.functions in '..\..\Source\Core\cqlbr.functions.pas',
54 | cqlbr.functions.interbase in '..\..\Source\Drivers\cqlbr.functions.interbase.pas',
55 | cqlbr.functions.mysql in '..\..\Source\Drivers\cqlbr.functions.mysql.pas',
56 | cqlbr.functions.mssql in '..\..\Source\Drivers\cqlbr.functions.mssql.pas',
57 | cqlbr.functions.sqlite in '..\..\Source\Drivers\cqlbr.functions.sqlite.pas',
58 | cqlbr.functions.oracle in '..\..\Source\Drivers\cqlbr.functions.oracle.pas',
59 | cqlbr.functions.db2 in '..\..\Source\Drivers\cqlbr.functions.db2.pas',
60 | cqlbr.functions.postgresql in '..\..\Source\Drivers\cqlbr.functions.postgresql.pas',
61 | cqlbr.select.interbase in '..\..\Source\Drivers\cqlbr.select.interbase.pas',
62 | cqlbr.qualifier.interbase in '..\..\Source\Drivers\cqlbr.qualifier.interbase.pas',
63 | cqlbr.serialize.interbase in '..\..\Source\Drivers\cqlbr.serialize.interbase.pas',
64 | cqlbr.select.db2 in '..\..\Source\Drivers\cqlbr.select.db2.pas',
65 | cqlbr.qualifier.db2 in '..\..\Source\Drivers\cqlbr.qualifier.db2.pas',
66 | cqlbr.serialize.db2 in '..\..\Source\Drivers\cqlbr.serialize.db2.pas',
67 | test.functions.mssql in 'test.functions.mssql.pas',
68 | cqlbr.section in '..\..\Source\Core\cqlbr.section.pas',
69 | cqlbr.name in '..\..\Source\Core\cqlbr.name.pas',
70 | cqlbr.namevalue in '..\..\Source\Core\cqlbr.namevalue.pas',
71 | test.select.mssql in 'test.select.mssql.pas';
72 |
73 | {$IFNDEF TESTINSIGHT}
74 | var
75 | runner : ITestRunner;
76 | results : IRunResults;
77 | logger : ITestLogger;
78 | nunitLogger : ITestLogger;
79 | {$ENDIF}
80 | begin
81 | ReportMemoryLeaksOnShutdown := DebugHook <> 0;
82 | {$IFDEF TESTINSIGHT}
83 | TestInsight.DUnitX.RunRegisteredTests;
84 | {$ELSE}
85 | try
86 | //Check command line options, will exit if invalid
87 | TDUnitX.CheckCommandLine;
88 | //Create the test runner
89 | runner := TDUnitX.CreateRunner;
90 | //Tell the runner to use RTTI to find Fixtures
91 | runner.UseRTTI := True;
92 | //tell the runner how we will log things
93 | //Log to the console window
94 | logger := TDUnitXConsoleLogger.Create(true);
95 | runner.AddLogger(logger);
96 | //Generate an NUnit compatible XML File
97 | nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
98 | runner.AddLogger(nunitLogger);
99 | runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
100 |
101 | //Run tests
102 | results := runner.Execute;
103 | if not results.AllPassed then
104 | System.ExitCode := EXIT_ERRORS;
105 |
106 | {$IFNDEF CI}
107 | //We don't want this happening when running under CI.
108 | if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
109 | begin
110 | System.Write('Done.. press key to quit.');
111 | System.Readln;
112 | end;
113 | {$ENDIF}
114 | except
115 | on E: Exception do
116 | System.Writeln(E.ClassName, ': ', E.Message);
117 | end;
118 | {$ENDIF}
119 |
120 | end.
121 |
--------------------------------------------------------------------------------
/Test Delphi/MSSQL_tests/TestCQLBr_MSSQL.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Test Delphi/MSSQL_tests/TestCQLBr_MSSQL.res
--------------------------------------------------------------------------------
/Test Delphi/MSSQL_tests/Win32/Debug/dunitx-results.xml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/Test Delphi/MSSQL_tests/test.functions.mssql.pas:
--------------------------------------------------------------------------------
1 | unit test.functions.mssql;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLFunctionsMSSQL = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestCount;
19 | [Test]
20 | procedure TestLower;
21 | [Test]
22 | procedure TestUpper;
23 | [Test]
24 | procedure TestMax;
25 | [Test]
26 | procedure TestMin;
27 | [Test]
28 | procedure TestSubstring;
29 | [Test]
30 | procedure TestMonthWhere;
31 | [Test]
32 | procedure TestMonthSelect;
33 | [Test]
34 | procedure TestDayWhere;
35 | [Test]
36 | procedure TestDaySelect;
37 | [Test]
38 | procedure TestYearWhere;
39 | [Test]
40 | procedure TestYearSelect;
41 | [Test]
42 | procedure TestDate;
43 | [Test]
44 | procedure TestConcatSelect;
45 | [Test]
46 | procedure TestConcatWhere;
47 | end;
48 |
49 | implementation
50 |
51 | uses
52 | SysUtils,
53 | cqlbr.interfaces,
54 | criteria.query.language;
55 |
56 | procedure TTestCQLFunctionsMSSQL.Setup;
57 | begin
58 |
59 | end;
60 |
61 | procedure TTestCQLFunctionsMSSQL.TearDown;
62 | begin
63 |
64 | end;
65 |
66 | procedure TTestCQLFunctionsMSSQL.TestUpper;
67 | var
68 | LAsString: String;
69 | begin
70 | LAsString := 'SELECT UPPER(NOME_CLIENTE) AS NOME FROM CLIENTES';
71 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
72 | .Select
73 | .Column('NOME_CLIENTE').Upper
74 | .&As('NOME')
75 | .From('CLIENTES')
76 | .AsString);
77 | end;
78 |
79 | procedure TTestCQLFunctionsMSSQL.TestYearSelect;
80 | var
81 | LAsString: String;
82 | begin
83 | LAsString := 'SELECT YEAR(NASCTO) FROM CLIENTES';
84 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
85 | .Select
86 | .Column.Year('NASCTO')
87 | .From('CLIENTES')
88 | .AsString);
89 | end;
90 |
91 | procedure TTestCQLFunctionsMSSQL.TestYearWhere;
92 | var
93 | LAsString: String;
94 | begin
95 | LAsString := 'SELECT * FROM CLIENTES WHERE (YEAR(NASCTO) = 9)';
96 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
97 | .Select
98 | .All
99 | .From('CLIENTES')
100 | .Where.Year('NASCTO').Equal('9')
101 | .AsString);
102 | end;
103 |
104 | procedure TTestCQLFunctionsMSSQL.TestMin;
105 | var
106 | LAsString: String;
107 | begin
108 | LAsString := 'SELECT MIN(ID_CLIENTE) AS IDCOUNT FROM CLIENTES';
109 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
110 | .Select
111 | .Column('ID_CLIENTE').Min
112 | .&As('IDCOUNT')
113 | .From('CLIENTES')
114 | .AsString);
115 | end;
116 |
117 | procedure TTestCQLFunctionsMSSQL.TestMonthWhere;
118 | var
119 | LAsString: String;
120 | begin
121 | LAsString := 'SELECT * FROM CLIENTES WHERE (MONTH(NASCTO) = 9)';
122 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
123 | .Select
124 | .All
125 | .From('CLIENTES')
126 | .Where.Month('NASCTO').Equal('9')
127 | .AsString);
128 | end;
129 |
130 | procedure TTestCQLFunctionsMSSQL.TestMonthSelect;
131 | var
132 | LAsString: String;
133 | begin
134 | LAsString := 'SELECT MONTH(NASCTO) FROM CLIENTES';
135 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
136 | .Select
137 | .Column.Month('NASCTO')
138 | .From('CLIENTES')
139 | .AsString);
140 | end;
141 |
142 | procedure TTestCQLFunctionsMSSQL.TestSubstring;
143 | var
144 | LAsString: String;
145 | begin
146 | LAsString := 'SELECT SUBSTRING(NOME_CLIENTE, 1, 2) AS NOME FROM CLIENTES';
147 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
148 | .Select
149 | .Column('NOME_CLIENTE').Substring(1, 2)
150 | .&As('NOME')
151 | .From('CLIENTES')
152 | .AsString);
153 | end;
154 |
155 | procedure TTestCQLFunctionsMSSQL.TestLower;
156 | var
157 | LAsString: String;
158 | begin
159 | LAsString := 'SELECT LOWER(NOME_CLIENTE) AS NOME FROM CLIENTES';
160 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
161 | .Select
162 | .Column('NOME_CLIENTE').Lower
163 | .&As('NOME')
164 | .From('CLIENTES')
165 | .AsString);
166 | end;
167 |
168 | procedure TTestCQLFunctionsMSSQL.TestMax;
169 | var
170 | LAsString: String;
171 | begin
172 | LAsString := 'SELECT MAX(ID_CLIENTE) AS IDCOUNT FROM CLIENTES';
173 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
174 | .Select
175 | .Column('ID_CLIENTE').Max
176 | .&As('IDCOUNT')
177 | .From('CLIENTES')
178 | .AsString);
179 | end;
180 |
181 | procedure TTestCQLFunctionsMSSQL.TestConcatSelect;
182 | var
183 | LAsString: String;
184 | begin
185 | LAsString := 'SELECT CONCAT(''-'', NOME) FROM CLIENTES';
186 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
187 | .Select
188 | .Column.Concat(['''-''', 'NOME'])
189 | .From('CLIENTES')
190 | .AsString);
191 | end;
192 |
193 | procedure TTestCQLFunctionsMSSQL.TestConcatWhere;
194 | var
195 | LAsString: String;
196 | begin
197 | LAsString := 'SELECT CONCAT(''-'', NOME) FROM CLIENTES WHERE (CONCAT(''-'', NOME) = ''-NOME'')';
198 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
199 | .Select
200 | .Column.Concat(['''-''', 'NOME'])
201 | .From('CLIENTES')
202 | .Where.Concat(['''-''', 'NOME']).Equal('''-NOME''')
203 | .AsString);
204 | end;
205 |
206 | procedure TTestCQLFunctionsMSSQL.TestCount;
207 | var
208 | LAsString: String;
209 | begin
210 | LAsString := 'SELECT COUNT(ID_CLIENTE) AS IDCOUNT FROM CLIENTES';
211 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
212 | .Select
213 | .Column('ID_CLIENTE').Count
214 | .&As('IDCOUNT')
215 | .From('CLIENTES')
216 | .AsString);
217 | end;
218 |
219 | procedure TTestCQLFunctionsMSSQL.TestDate;
220 | var
221 | LAsString: String;
222 | begin
223 | LAsString := 'SELECT * FROM CLIENTES WHERE NASCTO = ''02/11/2020''';
224 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
225 | .Select
226 | .All
227 | .From('CLIENTES')
228 | .Where.Date('NASCTO').Equal.Date('''02/11/2020''')
229 | .AsString);
230 | end;
231 |
232 | procedure TTestCQLFunctionsMSSQL.TestDaySelect;
233 | var
234 | LAsString: String;
235 | begin
236 | LAsString := 'SELECT DAY(NASCTO) FROM CLIENTES';
237 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
238 | .Select
239 | .Column.Day('NASCTO')
240 | .From('CLIENTES')
241 | .AsString);
242 | end;
243 |
244 | procedure TTestCQLFunctionsMSSQL.TestDayWhere;
245 | var
246 | LAsString: String;
247 | begin
248 | LAsString := 'SELECT * FROM CLIENTES WHERE (DAY(NASCTO) = 9)';
249 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
250 | .Select
251 | .All
252 | .From('CLIENTES')
253 | .Where.Day('NASCTO').Equal('9')
254 | .AsString);
255 | end;
256 |
257 | initialization
258 | TDUnitX.RegisterTestFixture(TTestCQLFunctionsMSSQL);
259 |
260 | end.
261 |
--------------------------------------------------------------------------------
/Test Delphi/MSSQL_tests/test.select.mssql.pas:
--------------------------------------------------------------------------------
1 | unit test.select.mssql;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLSelectMSSQL = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestSelectAll;
19 | [Test]
20 | procedure TestSelectAllWhere;
21 | [Test]
22 | procedure TestSelectAllWhereAndOr;
23 | [Test]
24 | procedure TestSelectAllWhereAndAnd;
25 | [Test]
26 | procedure TestSelectAllOrderBy;
27 | [Test]
28 | procedure TestSelectColumns;
29 | [Test]
30 | procedure TestSelectColumnsCase;
31 | [Test]
32 | procedure TestSelectPagingMSSQL;
33 | // [Test]
34 | procedure Test2SelectPagingMSSQL;
35 | end;
36 |
37 | implementation
38 |
39 | uses
40 | SysUtils,
41 | cqlbr.interfaces,
42 | criteria.query.language;
43 |
44 | procedure TTestCQLSelectMSSQL.Setup;
45 | begin
46 | end;
47 |
48 | procedure TTestCQLSelectMSSQL.TearDown;
49 | begin
50 | end;
51 |
52 | procedure TTestCQLSelectMSSQL.TestSelectAll;
53 | var
54 | LAsString: String;
55 | begin
56 | LAsString := 'SELECT * FROM CLIENTES AS CLI';
57 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
58 | .Select
59 | .All
60 | .From('CLIENTES').&As('CLI')
61 | .AsString);
62 | end;
63 |
64 | procedure TTestCQLSelectMSSQL.TestSelectAllOrderBy;
65 | var
66 | LAsString: String;
67 | begin
68 | LAsString := 'SELECT * FROM CLIENTES ORDER BY ID_CLIENTE';
69 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
70 | .Select
71 | .All
72 | .From('CLIENTES')
73 | .OrderBy('ID_CLIENTE')
74 | .AsString);
75 | end;
76 |
77 | procedure TTestCQLSelectMSSQL.TestSelectAllWhere;
78 | var
79 | LAsString: String;
80 | begin
81 | LAsString := 'SELECT * FROM CLIENTES WHERE ID_CLIENTE = 1';
82 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
83 | .Select
84 | .All
85 | .From('CLIENTES')
86 | .Where('ID_CLIENTE = 1')
87 | .AsString);
88 | end;
89 |
90 | procedure TTestCQLSelectMSSQL.TestSelectAllWhereAndAnd;
91 | var
92 | LAsString: String;
93 | begin
94 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID_CLIENTE = 1) AND (ID >= 10) AND (ID <= 20)';
95 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
96 | .Select
97 | .All
98 | .From('CLIENTES')
99 | .Where('ID_CLIENTE = 1')
100 | .&And('ID').GreaterEqThan(10)
101 | .&And('ID').LessEqThan(20)
102 | .AsString);
103 | end;
104 |
105 | procedure TTestCQLSelectMSSQL.TestSelectAllWhereAndOr;
106 | var
107 | LAsString: String;
108 | begin
109 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID_CLIENTE = 1) AND ((ID >= 10) OR (ID <= 20))';
110 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
111 | .Select
112 | .All
113 | .From('CLIENTES')
114 | .Where('ID_CLIENTE = 1')
115 | .&And('ID').GreaterEqThan(10)
116 | .&Or('ID').LessEqThan(20)
117 | .AsString);
118 | end;
119 |
120 | procedure TTestCQLSelectMSSQL.TestSelectColumns;
121 | var
122 | LAsString: String;
123 | begin
124 | LAsString := 'SELECT ID_CLIENTE, NOME_CLIENTE FROM CLIENTES';
125 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
126 | .Select
127 | .Column('ID_CLIENTE')
128 | .Column('NOME_CLIENTE')
129 | .From('CLIENTES')
130 | .AsString);
131 | end;
132 |
133 | procedure TTestCQLSelectMSSQL.TestSelectColumnsCase;
134 | var
135 | LAsString: String;
136 | begin
137 | LAsString := 'SELECT ID_CLIENTE, NOME_CLIENTE, (CASE TIPO_CLIENTE WHEN 0 THEN ''FISICA'' WHEN 1 THEN ''JURIDICA'' ELSE ''PRODUTOR'' END) AS TIPO_PESSOA FROM CLIENTES';
138 | Assert.AreEqual(LAsString, TCQL.New(dbnFirebird)
139 | .Select
140 | .Column('ID_CLIENTE')
141 | .Column('NOME_CLIENTE')
142 | .Column('TIPO_CLIENTE')
143 | .&Case
144 | .When('0').&Then(CQL.Q('FISICA'))
145 | .When('1').&Then(CQL.Q('JURIDICA'))
146 | .&Else('''PRODUTOR''')
147 | .&End
148 | .&As('TIPO_PESSOA')
149 | .From('CLIENTES')
150 | .AsString);
151 | end;
152 |
153 | procedure TTestCQLSelectMSSQL.TestSelectPagingMSSQL;
154 | var
155 | LAsString: String;
156 | begin
157 | LAsString := 'SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY CURRENT_TIMESTAMP) AS ROWNUMBER FROM CLIENTES) AS CLIENTES WHERE (ROWNUMBER > 3 AND ROWNUMBER <= 6) ORDER BY ID_CLIENTE';
158 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
159 | .Select
160 | .All
161 | .Limit(3)
162 | .Offset(3)
163 | .From('CLIENTES')
164 | .OrderBy('ID_CLIENTE')
165 | .AsString);
166 | end;
167 |
168 | procedure TTestCQLSelectMSSQL.Test2SelectPagingMSSQL;
169 | var
170 | LAsString: String;
171 | begin
172 | LAsString := 'SELECT * '+
173 | 'FROM (SELECT ID_CLIENTE, '+
174 | 'ROW_NUMBER() OVER(ORDER BY CURRENT_TIMESTAMP) AS ROWNUMBER '+
175 | 'FROM CLIENTES AS C) AS CLIENTES '+
176 | 'WHERE (ROWNUMBER > 0 AND ROWNUMBER <= 3) '+
177 | 'ORDER BY ID_CLIENTE';
178 | Assert.AreEqual(LAsString, TCQL.New(dbnMSSQL)
179 | .Select
180 | .Column('ID_CLIENTE')
181 | .Offset(0)
182 | .Limit(3)
183 | .From('CLIENTES', 'C')
184 | .OrderBy('ID_CLIENTE')
185 | .AsString);
186 | end;
187 |
188 | initialization
189 | TDUnitX.RegisterTestFixture(TTestCQLSelectMSSQL);
190 |
191 | end.
192 |
--------------------------------------------------------------------------------
/Test Delphi/MySQL_tests/TestCQLBr_MySQL.dpr:
--------------------------------------------------------------------------------
1 | program TestCQLBr_MySQL;
2 |
3 | {$IFNDEF TESTINSIGHT}
4 | {$APPTYPE CONSOLE}
5 | {$ENDIF}{$STRONGLINKTYPES ON}
6 | uses
7 | System.SysUtils,
8 | {$IFDEF TESTINSIGHT}
9 | TestInsight.DUnitX,
10 | {$ENDIF }
11 | DUnitX.Loggers.Console,
12 | DUnitX.Loggers.Xml.NUnit,
13 | DUnitX.TestFramework,
14 | cqlbr.ast in '..\..\Source\Core\cqlbr.ast.pas',
15 | cqlbr.cases in '..\..\Source\Core\cqlbr.cases.pas',
16 | cqlbr.delete in '..\..\Source\Core\cqlbr.delete.pas',
17 | cqlbr.expression in '..\..\Source\Core\cqlbr.expression.pas',
18 | cqlbr.functions.abstract in '..\..\Source\Core\cqlbr.functions.abstract.pas',
19 | cqlbr.groupby in '..\..\Source\Core\cqlbr.groupby.pas',
20 | cqlbr.having in '..\..\Source\Core\cqlbr.having.pas',
21 | cqlbr.insert in '..\..\Source\Core\cqlbr.insert.pas',
22 | cqlbr.interfaces in '..\..\Source\Core\cqlbr.interfaces.pas',
23 | cqlbr.joins in '..\..\Source\Core\cqlbr.joins.pas',
24 | cqlbr.orderby in '..\..\Source\Core\cqlbr.orderby.pas',
25 | criteria.query.language in '..\..\Source\Core\criteria.query.language.pas',
26 | cqlbr.qualifier in '..\..\Source\Core\cqlbr.qualifier.pas',
27 | cqlbr.select in '..\..\Source\Core\cqlbr.select.pas',
28 | cqlbr.serialize in '..\..\Source\Core\cqlbr.serialize.pas',
29 | cqlbr.update in '..\..\Source\Core\cqlbr.update.pas',
30 | cqlbr.where in '..\..\Source\Core\cqlbr.where.pas',
31 | cqlbr.utils in '..\..\Source\Core\cqlbr.utils.pas',
32 | cqlbr.register in '..\..\Source\Core\cqlbr.register.pas',
33 | cqlbr.operators in '..\..\Source\Core\cqlbr.operators.pas',
34 | cqlbr.qualifier.firebird in '..\..\Source\Drivers\cqlbr.qualifier.firebird.pas',
35 | cqlbr.qualifier.mongodb in '..\..\Source\Drivers\cqlbr.qualifier.mongodb.pas',
36 | cqlbr.qualifier.mssql in '..\..\Source\Drivers\cqlbr.qualifier.mssql.pas',
37 | cqlbr.qualifier.mysql in '..\..\Source\Drivers\cqlbr.qualifier.mysql.pas',
38 | cqlbr.qualifier.oracle in '..\..\Source\Drivers\cqlbr.qualifier.oracle.pas',
39 | cqlbr.qualifier.sqlite in '..\..\Source\Drivers\cqlbr.qualifier.sqlite.pas',
40 | cqlbr.select.mongodb in '..\..\Source\Drivers\cqlbr.select.mongodb.pas',
41 | cqlbr.select.mssql in '..\..\Source\Drivers\cqlbr.select.mssql.pas',
42 | cqlbr.select.mysql in '..\..\Source\Drivers\cqlbr.select.mysql.pas',
43 | cqlbr.select.oracle in '..\..\Source\Drivers\cqlbr.select.oracle.pas',
44 | cqlbr.select.sqlite in '..\..\Source\Drivers\cqlbr.select.sqlite.pas',
45 | cqlbr.serialize.mongodb in '..\..\Source\Drivers\cqlbr.serialize.mongodb.pas',
46 | cqlbr.serialize.mssql in '..\..\Source\Drivers\cqlbr.serialize.mssql.pas',
47 | cqlbr.serialize.mysql in '..\..\Source\Drivers\cqlbr.serialize.mysql.pas',
48 | cqlbr.serialize.oracle in '..\..\Source\Drivers\cqlbr.serialize.oracle.pas',
49 | cqlbr.serialize.sqlite in '..\..\Source\Drivers\cqlbr.serialize.sqlite.pas',
50 | cqlbr.serialize.firebird in '..\..\Source\Drivers\cqlbr.serialize.firebird.pas',
51 | cqlbr.select.firebird in '..\..\Source\Drivers\cqlbr.select.firebird.pas',
52 | cqlbr.functions.firebird in '..\..\Source\Drivers\cqlbr.functions.firebird.pas',
53 | cqlbr.functions in '..\..\Source\Core\cqlbr.functions.pas',
54 | cqlbr.functions.interbase in '..\..\Source\Drivers\cqlbr.functions.interbase.pas',
55 | cqlbr.functions.mysql in '..\..\Source\Drivers\cqlbr.functions.mysql.pas',
56 | cqlbr.functions.mssql in '..\..\Source\Drivers\cqlbr.functions.mssql.pas',
57 | cqlbr.functions.sqlite in '..\..\Source\Drivers\cqlbr.functions.sqlite.pas',
58 | cqlbr.functions.oracle in '..\..\Source\Drivers\cqlbr.functions.oracle.pas',
59 | cqlbr.functions.db2 in '..\..\Source\Drivers\cqlbr.functions.db2.pas',
60 | cqlbr.functions.postgresql in '..\..\Source\Drivers\cqlbr.functions.postgresql.pas',
61 | cqlbr.select.interbase in '..\..\Source\Drivers\cqlbr.select.interbase.pas',
62 | cqlbr.qualifier.interbase in '..\..\Source\Drivers\cqlbr.qualifier.interbase.pas',
63 | cqlbr.serialize.interbase in '..\..\Source\Drivers\cqlbr.serialize.interbase.pas',
64 | cqlbr.select.db2 in '..\..\Source\Drivers\cqlbr.select.db2.pas',
65 | cqlbr.qualifier.db2 in '..\..\Source\Drivers\cqlbr.qualifier.db2.pas',
66 | cqlbr.serialize.db2 in '..\..\Source\Drivers\cqlbr.serialize.db2.pas',
67 | test.functions.mysql in 'test.functions.mysql.pas',
68 | cqlbr.section in '..\..\Source\Core\cqlbr.section.pas',
69 | cqlbr.name in '..\..\Source\Core\cqlbr.name.pas',
70 | cqlbr.namevalue in '..\..\Source\Core\cqlbr.namevalue.pas',
71 | test.select.mysql in 'test.select.mysql.pas';
72 |
73 | {$IFNDEF TESTINSIGHT}
74 | var
75 | runner : ITestRunner;
76 | results : IRunResults;
77 | logger : ITestLogger;
78 | nunitLogger : ITestLogger;
79 | {$ENDIF}
80 | begin
81 | ReportMemoryLeaksOnShutdown := DebugHook <> 0;
82 | {$IFDEF TESTINSIGHT}
83 | TestInsight.DUnitX.RunRegisteredTests;
84 | {$ELSE}
85 | try
86 | //Check command line options, will exit if invalid
87 | TDUnitX.CheckCommandLine;
88 | //Create the test runner
89 | runner := TDUnitX.CreateRunner;
90 | //Tell the runner to use RTTI to find Fixtures
91 | runner.UseRTTI := True;
92 | //tell the runner how we will log things
93 | //Log to the console window
94 | logger := TDUnitXConsoleLogger.Create(true);
95 | runner.AddLogger(logger);
96 | //Generate an NUnit compatible XML File
97 | nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
98 | runner.AddLogger(nunitLogger);
99 | runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
100 |
101 | //Run tests
102 | results := runner.Execute;
103 | if not results.AllPassed then
104 | System.ExitCode := EXIT_ERRORS;
105 |
106 | {$IFNDEF CI}
107 | //We don't want this happening when running under CI.
108 | if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
109 | begin
110 | System.Write('Done.. press key to quit.');
111 | System.Readln;
112 | end;
113 | {$ENDIF}
114 | except
115 | on E: Exception do
116 | System.Writeln(E.ClassName, ': ', E.Message);
117 | end;
118 | {$ENDIF}
119 |
120 | end.
121 |
--------------------------------------------------------------------------------
/Test Delphi/MySQL_tests/TestCQLBr_MySQL.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Test Delphi/MySQL_tests/TestCQLBr_MySQL.res
--------------------------------------------------------------------------------
/Test Delphi/MySQL_tests/Win32/Debug/dunitx-results.xml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/Test Delphi/MySQL_tests/test.functions.mysql.pas:
--------------------------------------------------------------------------------
1 | unit test.functions.mysql;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLFunctionsMySQL = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestCount;
19 | [Test]
20 | procedure TestLower;
21 | [Test]
22 | procedure TestUpper;
23 | [Test]
24 | procedure TestMax;
25 | [Test]
26 | procedure TestMin;
27 | [Test]
28 | procedure TestSubstring;
29 | [Test]
30 | procedure TestMonthWhere;
31 | [Test]
32 | procedure TestMonthSelect;
33 | [Test]
34 | procedure TestDayWhere;
35 | [Test]
36 | procedure TestDaySelect;
37 | [Test]
38 | procedure TestYearWhere;
39 | [Test]
40 | procedure TestYearSelect;
41 | [Test]
42 | procedure TestDate;
43 | [Test]
44 | procedure TestConcatSelect;
45 | [Test]
46 | procedure TestConcatWhere;
47 | end;
48 |
49 | implementation
50 |
51 | uses
52 | SysUtils,
53 | cqlbr.interfaces,
54 | criteria.query.language;
55 |
56 | procedure TTestCQLFunctionsMySQL.Setup;
57 | begin
58 |
59 | end;
60 |
61 | procedure TTestCQLFunctionsMySQL.TearDown;
62 | begin
63 |
64 | end;
65 |
66 | procedure TTestCQLFunctionsMySQL.TestUpper;
67 | var
68 | LAsString: String;
69 | begin
70 | LAsString := 'SELECT UPPER(NOME_CLIENTE) AS NOME FROM CLIENTES';
71 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
72 | .Select
73 | .Column('NOME_CLIENTE').Upper
74 | .&As('NOME')
75 | .From('CLIENTES')
76 | .AsString);
77 | end;
78 |
79 | procedure TTestCQLFunctionsMySQL.TestYearSelect;
80 | var
81 | LAsString: String;
82 | begin
83 | LAsString := 'SELECT YEAR(NASCTO) FROM CLIENTES';
84 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
85 | .Select
86 | .Column.Year('NASCTO')
87 | .From('CLIENTES')
88 | .AsString);
89 | end;
90 |
91 | procedure TTestCQLFunctionsMySQL.TestYearWhere;
92 | var
93 | LAsString: String;
94 | begin
95 | LAsString := 'SELECT * FROM CLIENTES WHERE (YEAR(NASCTO) = 9)';
96 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
97 | .Select
98 | .All
99 | .From('CLIENTES')
100 | .Where.Year('NASCTO').Equal('9')
101 | .AsString);
102 | end;
103 |
104 | procedure TTestCQLFunctionsMySQL.TestMin;
105 | var
106 | LAsString: String;
107 | begin
108 | LAsString := 'SELECT MIN(ID_CLIENTE) AS IDCOUNT FROM CLIENTES';
109 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
110 | .Select
111 | .Column('ID_CLIENTE').Min
112 | .&As('IDCOUNT')
113 | .From('CLIENTES')
114 | .AsString);
115 | end;
116 |
117 | procedure TTestCQLFunctionsMySQL.TestMonthWhere;
118 | var
119 | LAsString: String;
120 | begin
121 | LAsString := 'SELECT * FROM CLIENTES WHERE (MONTH(NASCTO) = 9)';
122 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
123 | .Select
124 | .All
125 | .From('CLIENTES')
126 | .Where.Month('NASCTO').Equal('9')
127 | .AsString);
128 | end;
129 |
130 | procedure TTestCQLFunctionsMySQL.TestMonthSelect;
131 | var
132 | LAsString: String;
133 | begin
134 | LAsString := 'SELECT MONTH(NASCTO) FROM CLIENTES';
135 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
136 | .Select
137 | .Column.Month('NASCTO')
138 | .From('CLIENTES')
139 | .AsString);
140 | end;
141 |
142 | procedure TTestCQLFunctionsMySQL.TestSubstring;
143 | var
144 | LAsString: String;
145 | begin
146 | LAsString := 'SELECT SUBSTRING(NOME_CLIENTE, 1, 2) AS NOME FROM CLIENTES';
147 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
148 | .Select
149 | .Column('NOME_CLIENTE').Substring(1, 2)
150 | .&As('NOME')
151 | .From('CLIENTES')
152 | .AsString);
153 | end;
154 |
155 | procedure TTestCQLFunctionsMySQL.TestLower;
156 | var
157 | LAsString: String;
158 | begin
159 | LAsString := 'SELECT LOWER(NOME_CLIENTE) AS NOME FROM CLIENTES';
160 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
161 | .Select
162 | .Column('NOME_CLIENTE').Lower
163 | .&As('NOME')
164 | .From('CLIENTES')
165 | .AsString);
166 | end;
167 |
168 | procedure TTestCQLFunctionsMySQL.TestMax;
169 | var
170 | LAsString: String;
171 | begin
172 | LAsString := 'SELECT MAX(ID_CLIENTE) AS IDCOUNT FROM CLIENTES';
173 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
174 | .Select
175 | .Column('ID_CLIENTE').Max
176 | .&As('IDCOUNT')
177 | .From('CLIENTES')
178 | .AsString);
179 | end;
180 |
181 | procedure TTestCQLFunctionsMySQL.TestConcatSelect;
182 | var
183 | LAsString: String;
184 | begin
185 | LAsString := 'SELECT CONCAT(''-'', NOME) FROM CLIENTES';
186 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
187 | .Select
188 | .Column.Concat(['''-''', 'NOME'])
189 | .From('CLIENTES')
190 | .AsString);
191 | end;
192 |
193 | procedure TTestCQLFunctionsMySQL.TestConcatWhere;
194 | var
195 | LAsString: String;
196 | begin
197 | LAsString := 'SELECT CONCAT(''-'', NOME) FROM CLIENTES WHERE (CONCAT(''-'', NOME) = ''-NOME'')';
198 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
199 | .Select
200 | .Column.Concat(['''-''', 'NOME'])
201 | .From('CLIENTES')
202 | .Where.Concat(['''-''', 'NOME']).Equal('''-NOME''')
203 | .AsString);
204 | end;
205 |
206 | procedure TTestCQLFunctionsMySQL.TestCount;
207 | var
208 | LAsString: String;
209 | begin
210 | LAsString := 'SELECT COUNT(ID_CLIENTE) AS IDCOUNT FROM CLIENTES';
211 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
212 | .Select
213 | .Column('ID_CLIENTE').Count
214 | .&As('IDCOUNT')
215 | .From('CLIENTES')
216 | .AsString);
217 | end;
218 |
219 | procedure TTestCQLFunctionsMySQL.TestDate;
220 | var
221 | LAsString: String;
222 | begin
223 | LAsString := 'SELECT * FROM CLIENTES WHERE DATE_FORMAT(NASCTO, ''yyyy-MM-dd'') = DATE_FORMAT(''2020/11/02'', ''yyyy-MM-dd'')';
224 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
225 | .Select
226 | .All
227 | .From('CLIENTES')
228 | .Where.Date('NASCTO')
229 | .Equal.Date('''2020/11/02''')
230 | .AsString);
231 | end;
232 |
233 | procedure TTestCQLFunctionsMySQL.TestDaySelect;
234 | var
235 | LAsString: String;
236 | begin
237 | LAsString := 'SELECT DAY(NASCTO) FROM CLIENTES';
238 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
239 | .Select
240 | .Column.Day('NASCTO')
241 | .From('CLIENTES')
242 | .AsString);
243 | end;
244 |
245 | procedure TTestCQLFunctionsMySQL.TestDayWhere;
246 | var
247 | LAsString: String;
248 | begin
249 | LAsString := 'SELECT * FROM CLIENTES WHERE (DAY(NASCTO) = 9)';
250 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
251 | .Select
252 | .All
253 | .From('CLIENTES')
254 | .Where.Day('NASCTO').Equal('9')
255 | .AsString);
256 | end;
257 |
258 | initialization
259 | TDUnitX.RegisterTestFixture(TTestCQLFunctionsMySQL);
260 |
261 | end.
262 |
--------------------------------------------------------------------------------
/Test Delphi/MySQL_tests/test.select.mysql.pas:
--------------------------------------------------------------------------------
1 | unit test.select.mysql;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLSelectMySQL = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestSelectAll;
19 | [Test]
20 | procedure TestSelectAllWhere;
21 | [Test]
22 | procedure TestSelectAllWhereAndOr;
23 | [Test]
24 | procedure TestSelectAllWhereAndAnd;
25 | [Test]
26 | procedure TestSelectAllOrderBy;
27 | [Test]
28 | procedure TestSelectColumns;
29 | [Test]
30 | procedure TestSelectColumnsCase;
31 | [Test]
32 | procedure TestSelectPagingMySQL;
33 | end;
34 |
35 | implementation
36 |
37 | uses
38 | SysUtils,
39 | cqlbr.interfaces,
40 | criteria.query.language;
41 |
42 | procedure TTestCQLSelectMySQL.Setup;
43 | begin
44 | end;
45 |
46 | procedure TTestCQLSelectMySQL.TearDown;
47 | begin
48 | end;
49 |
50 | procedure TTestCQLSelectMySQL.TestSelectAll;
51 | var
52 | LAsString: String;
53 | begin
54 | LAsString := 'SELECT * FROM CLIENTES AS CLI';
55 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
56 | .Select
57 | .All
58 | .From('CLIENTES').&As('CLI')
59 | .AsString);
60 | end;
61 |
62 | procedure TTestCQLSelectMySQL.TestSelectAllOrderBy;
63 | var
64 | LAsString: String;
65 | begin
66 | LAsString := 'SELECT * FROM CLIENTES ORDER BY ID_CLIENTE';
67 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
68 | .Select
69 | .All
70 | .From('CLIENTES')
71 | .OrderBy('ID_CLIENTE')
72 | .AsString);
73 | end;
74 |
75 | procedure TTestCQLSelectMySQL.TestSelectAllWhere;
76 | var
77 | LAsString: String;
78 | begin
79 | LAsString := 'SELECT * FROM CLIENTES WHERE ID_CLIENTE = 1';
80 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
81 | .Select
82 | .All
83 | .From('CLIENTES')
84 | .Where('ID_CLIENTE = 1')
85 | .AsString);
86 | end;
87 |
88 | procedure TTestCQLSelectMySQL.TestSelectAllWhereAndAnd;
89 | var
90 | LAsString: String;
91 | begin
92 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID_CLIENTE = 1) AND (ID >= 10) AND (ID <= 20)';
93 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
94 | .Select
95 | .All
96 | .From('CLIENTES')
97 | .Where('ID_CLIENTE = 1')
98 | .&And('ID').GreaterEqThan(10)
99 | .&And('ID').LessEqThan(20)
100 | .AsString);
101 | end;
102 |
103 | procedure TTestCQLSelectMySQL.TestSelectAllWhereAndOr;
104 | var
105 | LAsString: String;
106 | begin
107 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID_CLIENTE = 1) AND ((ID >= 10) OR (ID <= 20))';
108 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
109 | .Select
110 | .All
111 | .From('CLIENTES')
112 | .Where('ID_CLIENTE = 1')
113 | .&And('ID').GreaterEqThan(10)
114 | .&Or('ID').LessEqThan(20)
115 | .AsString);
116 | end;
117 |
118 | procedure TTestCQLSelectMySQL.TestSelectColumns;
119 | var
120 | LAsString: String;
121 | begin
122 | LAsString := 'SELECT ID_CLIENTE, NOME_CLIENTE FROM CLIENTES';
123 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
124 | .Select
125 | .Column('ID_CLIENTE')
126 | .Column('NOME_CLIENTE')
127 | .From('CLIENTES')
128 | .AsString);
129 | end;
130 |
131 | procedure TTestCQLSelectMySQL.TestSelectColumnsCase;
132 | var
133 | LAsString: String;
134 | begin
135 | LAsString := 'SELECT ID_CLIENTE, NOME_CLIENTE, (CASE TIPO_CLIENTE WHEN 0 THEN ''FISICA'' WHEN 1 THEN ''JURIDICA'' ELSE ''PRODUTOR'' END) AS TIPO_PESSOA FROM CLIENTES';
136 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
137 | .Select
138 | .Column('ID_CLIENTE')
139 | .Column('NOME_CLIENTE')
140 | .Column('TIPO_CLIENTE')
141 | .&Case
142 | .When('0').&Then(CQL.Q('FISICA'))
143 | .When('1').&Then(CQL.Q('JURIDICA'))
144 | .&Else('''PRODUTOR''')
145 | .&End
146 | .&As('TIPO_PESSOA')
147 | .From('CLIENTES')
148 | .AsString);
149 | end;
150 |
151 | procedure TTestCQLSelectMySQL.TestSelectPagingMySQL;
152 | var
153 | LAsString: String;
154 | begin
155 | LAsString := 'SELECT * FROM CLIENTES ORDER BY ID_CLIENTE LIMIT 3 OFFSET 0';
156 | Assert.AreEqual(LAsString, TCQL.New(dbnMySQL)
157 | .Select
158 | .All
159 | .Limit(3)
160 | .Offset(0)
161 | .From('CLIENTES')
162 | .OrderBy('ID_CLIENTE')
163 | .AsString);
164 | end;
165 |
166 | initialization
167 | TDUnitX.RegisterTestFixture(TTestCQLSelectMySQL);
168 |
169 | end.
170 |
--------------------------------------------------------------------------------
/Test Delphi/Oracle_tests/TestCQLBr_Oracle.dpr:
--------------------------------------------------------------------------------
1 | program TestCQLBr_Oracle;
2 |
3 | {$IFNDEF TESTINSIGHT}
4 | {$APPTYPE CONSOLE}
5 | {$ENDIF}{$STRONGLINKTYPES ON}
6 | uses
7 | System.SysUtils,
8 | {$IFDEF TESTINSIGHT}
9 | TestInsight.DUnitX,
10 | {$ENDIF }
11 | DUnitX.Loggers.Console,
12 | DUnitX.Loggers.Xml.NUnit,
13 | DUnitX.TestFramework,
14 | cqlbr.ast in '..\..\Source\Core\cqlbr.ast.pas',
15 | cqlbr.cases in '..\..\Source\Core\cqlbr.cases.pas',
16 | cqlbr.delete in '..\..\Source\Core\cqlbr.delete.pas',
17 | cqlbr.expression in '..\..\Source\Core\cqlbr.expression.pas',
18 | cqlbr.functions.abstract in '..\..\Source\Core\cqlbr.functions.abstract.pas',
19 | cqlbr.groupby in '..\..\Source\Core\cqlbr.groupby.pas',
20 | cqlbr.having in '..\..\Source\Core\cqlbr.having.pas',
21 | cqlbr.insert in '..\..\Source\Core\cqlbr.insert.pas',
22 | cqlbr.interfaces in '..\..\Source\Core\cqlbr.interfaces.pas',
23 | cqlbr.joins in '..\..\Source\Core\cqlbr.joins.pas',
24 | cqlbr.orderby in '..\..\Source\Core\cqlbr.orderby.pas',
25 | criteria.query.language in '..\..\Source\Core\criteria.query.language.pas',
26 | cqlbr.qualifier in '..\..\Source\Core\cqlbr.qualifier.pas',
27 | cqlbr.select in '..\..\Source\Core\cqlbr.select.pas',
28 | cqlbr.serialize in '..\..\Source\Core\cqlbr.serialize.pas',
29 | cqlbr.update in '..\..\Source\Core\cqlbr.update.pas',
30 | cqlbr.where in '..\..\Source\Core\cqlbr.where.pas',
31 | cqlbr.utils in '..\..\Source\Core\cqlbr.utils.pas',
32 | cqlbr.register in '..\..\Source\Core\cqlbr.register.pas',
33 | cqlbr.operators in '..\..\Source\Core\cqlbr.operators.pas',
34 | test.functions.oracle in 'test.functions.oracle.pas',
35 | cqlbr.qualifier.firebird in '..\..\Source\Drivers\cqlbr.qualifier.firebird.pas',
36 | cqlbr.qualifier.mongodb in '..\..\Source\Drivers\cqlbr.qualifier.mongodb.pas',
37 | cqlbr.qualifier.mssql in '..\..\Source\Drivers\cqlbr.qualifier.mssql.pas',
38 | cqlbr.qualifier.mysql in '..\..\Source\Drivers\cqlbr.qualifier.mysql.pas',
39 | cqlbr.qualifier.oracle in '..\..\Source\Drivers\cqlbr.qualifier.oracle.pas',
40 | cqlbr.qualifier.sqlite in '..\..\Source\Drivers\cqlbr.qualifier.sqlite.pas',
41 | cqlbr.select.mongodb in '..\..\Source\Drivers\cqlbr.select.mongodb.pas',
42 | cqlbr.select.mssql in '..\..\Source\Drivers\cqlbr.select.mssql.pas',
43 | cqlbr.select.mysql in '..\..\Source\Drivers\cqlbr.select.mysql.pas',
44 | cqlbr.select.oracle in '..\..\Source\Drivers\cqlbr.select.oracle.pas',
45 | cqlbr.select.sqlite in '..\..\Source\Drivers\cqlbr.select.sqlite.pas',
46 | cqlbr.serialize.mongodb in '..\..\Source\Drivers\cqlbr.serialize.mongodb.pas',
47 | cqlbr.serialize.mssql in '..\..\Source\Drivers\cqlbr.serialize.mssql.pas',
48 | cqlbr.serialize.mysql in '..\..\Source\Drivers\cqlbr.serialize.mysql.pas',
49 | cqlbr.serialize.oracle in '..\..\Source\Drivers\cqlbr.serialize.oracle.pas',
50 | cqlbr.serialize.sqlite in '..\..\Source\Drivers\cqlbr.serialize.sqlite.pas',
51 | cqlbr.serialize.firebird in '..\..\Source\Drivers\cqlbr.serialize.firebird.pas',
52 | cqlbr.select.firebird in '..\..\Source\Drivers\cqlbr.select.firebird.pas',
53 | cqlbr.functions.firebird in '..\..\Source\Drivers\cqlbr.functions.firebird.pas',
54 | cqlbr.functions in '..\..\Source\Core\cqlbr.functions.pas',
55 | cqlbr.functions.interbase in '..\..\Source\Drivers\cqlbr.functions.interbase.pas',
56 | cqlbr.functions.mysql in '..\..\Source\Drivers\cqlbr.functions.mysql.pas',
57 | cqlbr.functions.mssql in '..\..\Source\Drivers\cqlbr.functions.mssql.pas',
58 | cqlbr.functions.sqlite in '..\..\Source\Drivers\cqlbr.functions.sqlite.pas',
59 | cqlbr.functions.oracle in '..\..\Source\Drivers\cqlbr.functions.oracle.pas',
60 | cqlbr.functions.db2 in '..\..\Source\Drivers\cqlbr.functions.db2.pas',
61 | cqlbr.functions.postgresql in '..\..\Source\Drivers\cqlbr.functions.postgresql.pas',
62 | cqlbr.select.interbase in '..\..\Source\Drivers\cqlbr.select.interbase.pas',
63 | cqlbr.qualifier.interbase in '..\..\Source\Drivers\cqlbr.qualifier.interbase.pas',
64 | cqlbr.serialize.interbase in '..\..\Source\Drivers\cqlbr.serialize.interbase.pas',
65 | cqlbr.select.db2 in '..\..\Source\Drivers\cqlbr.select.db2.pas',
66 | cqlbr.qualifier.db2 in '..\..\Source\Drivers\cqlbr.qualifier.db2.pas',
67 | cqlbr.serialize.db2 in '..\..\Source\Drivers\cqlbr.serialize.db2.pas',
68 | cqlbr.section in '..\..\Source\Core\cqlbr.section.pas',
69 | cqlbr.name in '..\..\Source\Core\cqlbr.name.pas',
70 | cqlbr.namevalue in '..\..\Source\Core\cqlbr.namevalue.pas',
71 | test.select.Oracle in 'test.select.Oracle.pas';
72 |
73 | {$IFNDEF TESTINSIGHT}
74 | var
75 | runner : ITestRunner;
76 | results : IRunResults;
77 | logger : ITestLogger;
78 | nunitLogger : ITestLogger;
79 | {$ENDIF}
80 | begin
81 | ReportMemoryLeaksOnShutdown := DebugHook <> 0;
82 | {$IFDEF TESTINSIGHT}
83 | TestInsight.DUnitX.RunRegisteredTests;
84 | {$ELSE}
85 | try
86 | //Check command line options, will exit if invalid
87 | TDUnitX.CheckCommandLine;
88 | //Create the test runner
89 | runner := TDUnitX.CreateRunner;
90 | //Tell the runner to use RTTI to find Fixtures
91 | runner.UseRTTI := True;
92 | //tell the runner how we will log things
93 | //Log to the console window
94 | logger := TDUnitXConsoleLogger.Create(true);
95 | runner.AddLogger(logger);
96 | //Generate an NUnit compatible XML File
97 | nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
98 | runner.AddLogger(nunitLogger);
99 | runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
100 |
101 | //Run tests
102 | results := runner.Execute;
103 | if not results.AllPassed then
104 | System.ExitCode := EXIT_ERRORS;
105 |
106 | {$IFNDEF CI}
107 | //We don't want this happening when running under CI.
108 | if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
109 | begin
110 | System.Write('Done.. press key to quit.');
111 | System.Readln;
112 | end;
113 | {$ENDIF}
114 | except
115 | on E: Exception do
116 | System.Writeln(E.ClassName, ': ', E.Message);
117 | end;
118 | {$ENDIF}
119 |
120 | end.
121 |
--------------------------------------------------------------------------------
/Test Delphi/Oracle_tests/TestCQLBr_Oracle.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Test Delphi/Oracle_tests/TestCQLBr_Oracle.res
--------------------------------------------------------------------------------
/Test Delphi/Oracle_tests/Win32/Debug/dunitx-results.xml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/Test Delphi/Oracle_tests/test.select.Oracle.pas:
--------------------------------------------------------------------------------
1 | unit test.select.Oracle;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 | [TestFixture]
10 | TTestCQLSelectOracle = class
11 | public
12 | [Setup]
13 | procedure Setup;
14 | [TearDown]
15 | procedure TearDown;
16 |
17 | [Test]
18 | procedure TestSelectAll;
19 | [Test]
20 | procedure TestSelectAllWhere;
21 | [Test]
22 | procedure TestSelectAllWhereAndOr;
23 | [Test]
24 | procedure TestSelectAllWhereAndAnd;
25 | [Test]
26 | procedure TestSelectAllOrderBy;
27 | [Test]
28 | procedure TestSelectColumns;
29 | [Test]
30 | procedure TestSelectColumnsCase;
31 | [Test]
32 | procedure TestSelectPagingOracle;
33 | end;
34 |
35 | implementation
36 |
37 | uses
38 | SysUtils,
39 | cqlbr.interfaces,
40 | criteria.query.language;
41 |
42 | procedure TTestCQLSelectOracle.Setup;
43 | begin
44 | end;
45 |
46 | procedure TTestCQLSelectOracle.TearDown;
47 | begin
48 | end;
49 |
50 | procedure TTestCQLSelectOracle.TestSelectAll;
51 | var
52 | LAsString: String;
53 | begin
54 | LAsString := 'SELECT * FROM CLIENTES AS CLI';
55 | Assert.AreEqual(LAsString, TCQL.New(dbnOracle)
56 | .Select
57 | .All
58 | .From('CLIENTES').&As('CLI')
59 | .AsString);
60 | end;
61 |
62 | procedure TTestCQLSelectOracle.TestSelectAllOrderBy;
63 | var
64 | LAsString: String;
65 | begin
66 | LAsString := 'SELECT * FROM CLIENTES ORDER BY ID_CLIENTE';
67 | Assert.AreEqual(LAsString, TCQL.New(dbnOracle)
68 | .Select
69 | .All
70 | .From('CLIENTES')
71 | .OrderBy('ID_CLIENTE')
72 | .AsString);
73 | end;
74 |
75 | procedure TTestCQLSelectOracle.TestSelectAllWhere;
76 | var
77 | LAsString: String;
78 | begin
79 | LAsString := 'SELECT * FROM CLIENTES WHERE ID_CLIENTE = 1';
80 | Assert.AreEqual(LAsString, TCQL.New(dbnOracle)
81 | .Select
82 | .All
83 | .From('CLIENTES')
84 | .Where('ID_CLIENTE = 1')
85 | .AsString);
86 | end;
87 |
88 | procedure TTestCQLSelectOracle.TestSelectAllWhereAndAnd;
89 | var
90 | LAsString: String;
91 | begin
92 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID_CLIENTE = 1) AND (ID >= 10) AND (ID <= 20)';
93 | Assert.AreEqual(LAsString, TCQL.New(dbnOracle)
94 | .Select
95 | .All
96 | .From('CLIENTES')
97 | .Where('ID_CLIENTE = 1')
98 | .&And('ID').GreaterEqThan(10)
99 | .&And('ID').LessEqThan(20)
100 | .AsString);
101 | end;
102 |
103 | procedure TTestCQLSelectOracle.TestSelectAllWhereAndOr;
104 | var
105 | LAsString: String;
106 | begin
107 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID_CLIENTE = 1) AND ((ID >= 10) OR (ID <= 20))';
108 | Assert.AreEqual(LAsString, TCQL.New(dbnOracle)
109 | .Select
110 | .All
111 | .From('CLIENTES')
112 | .Where('ID_CLIENTE = 1')
113 | .&And('ID').GreaterEqThan(10)
114 | .&Or('ID').LessEqThan(20)
115 | .AsString);
116 | end;
117 |
118 | procedure TTestCQLSelectOracle.TestSelectColumns;
119 | var
120 | LAsString: String;
121 | begin
122 | LAsString := 'SELECT ID_CLIENTE, NOME_CLIENTE FROM CLIENTES';
123 | Assert.AreEqual(LAsString, TCQL.New(dbnOracle)
124 | .Select
125 | .Column('ID_CLIENTE')
126 | .Column('NOME_CLIENTE')
127 | .From('CLIENTES')
128 | .AsString);
129 | end;
130 |
131 | procedure TTestCQLSelectOracle.TestSelectColumnsCase;
132 | var
133 | LAsString: String;
134 | begin
135 | LAsString := 'SELECT ID_CLIENTE, NOME_CLIENTE, (CASE TIPO_CLIENTE WHEN 0 THEN ''FISICA'' WHEN 1 THEN ''JURIDICA'' ELSE ''PRODUTOR'' END) AS TIPO_PESSOA FROM CLIENTES';
136 | Assert.AreEqual(LAsString, TCQL.New(dbnOracle)
137 | .Select
138 | .Column('ID_CLIENTE')
139 | .Column('NOME_CLIENTE')
140 | .Column('TIPO_CLIENTE')
141 | .&Case
142 | .When('0').&Then(CQL.Q('FISICA'))
143 | .When('1').&Then(CQL.Q('JURIDICA'))
144 | .&Else('''PRODUTOR''')
145 | .&End
146 | .&As('TIPO_PESSOA')
147 | .From('CLIENTES')
148 | .AsString);
149 | end;
150 |
151 | procedure TTestCQLSelectOracle.TestSelectPagingOracle;
152 | var
153 | LAsString: String;
154 | begin
155 | LAsString := 'SELECT * FROM (SELECT T.*, ROWNUM AS ROWINI FROM (SELECT * FROM CLIENTES ORDER BY ID_CLIENTE) T) WHERE ROWNUM <= 3 AND ROWINI > 0';
156 | Assert.AreEqual(LAsString, TCQL.New(dbnOracle)
157 | .Select
158 | .All
159 | .Limit(3).Offset(0)
160 | .From('CLIENTES')
161 | .OrderBy('ID_CLIENTE')
162 | .AsString);
163 | end;
164 |
165 | initialization
166 | TDUnitX.RegisterTestFixture(TTestCQLSelectOracle);
167 |
168 | end.
169 |
--------------------------------------------------------------------------------
/Test Lazarus/TestCQLBr.fpcunit.ini:
--------------------------------------------------------------------------------
1 | [WindowState]
2 | Left=606
3 | Top=39
4 | Width=575
5 | Height=965
6 |
7 | [Tests]
8 | All Tests.Checked=1
9 | All Tests.Expanded=1
10 | TTestCQLBrSelect.Checked=1
11 | TTestCQLBrSelect.Expanded=1
12 | TTestCQLBrSelect.TestSelectAll.Checked=1
13 | TTestCQLBrSelect.TestSelectAll.Expanded=0
14 | TTestCQLBrSelect.TestSelectAllWhere.Checked=1
15 | TTestCQLBrSelect.TestSelectAllWhere.Expanded=0
16 | TTestCQLBrSelect.TestSelectAllWhereAndOr.Checked=1
17 | TTestCQLBrSelect.TestSelectAllWhereAndOr.Expanded=0
18 | TTestCQLBrSelect.TestSelectAllWhereAndAnd.Checked=1
19 | TTestCQLBrSelect.TestSelectAllWhereAndAnd.Expanded=0
20 | TTestCQLBrSelect.TestSelectAllOrderBy.Checked=1
21 | TTestCQLBrSelect.TestSelectAllOrderBy.Expanded=0
22 | TTestCQLBrSelect.TestSelectColumns.Checked=1
23 | TTestCQLBrSelect.TestSelectColumns.Expanded=0
24 | TTestCQLBrSelect.TestSelectColumnsCase.Checked=1
25 | TTestCQLBrSelect.TestSelectColumnsCase.Expanded=0
26 | TTestCQLBrSelect.TestSelectPagingFirebird.Checked=1
27 | TTestCQLBrSelect.TestSelectPagingFirebird.Expanded=0
28 | TTestCQLBrSelect.TestSelectPagingOracle.Checked=1
29 | TTestCQLBrSelect.TestSelectPagingOracle.Expanded=0
30 | TTestCQLBrSelect.TestSelectPagingMySQL.Checked=1
31 | TTestCQLBrSelect.TestSelectPagingMySQL.Expanded=0
32 | TTestCQLBrInsert.Checked=1
33 | TTestCQLBrInsert.Expanded=1
34 | TTestCQLBrInsert.TestInsertFirebird.Checked=1
35 | TTestCQLBrInsert.TestInsertFirebird.Expanded=0
36 | TTestCQLBrUpdate.Checked=1
37 | TTestCQLBrUpdate.Expanded=1
38 | TTestCQLBrUpdate.TestUpdateFirebird.Checked=1
39 | TTestCQLBrUpdate.TestUpdateFirebird.Expanded=0
40 | TTestCQLBrUpdate.TestUpdateWhereFirebird.Checked=1
41 | TTestCQLBrUpdate.TestUpdateWhereFirebird.Expanded=0
42 | TTestCQLBrDelete.Checked=1
43 | TTestCQLBrDelete.Expanded=1
44 | TTestCQLBrDelete.TestDeleteFirebird.Checked=1
45 | TTestCQLBrDelete.TestDeleteFirebird.Expanded=0
46 | TTestCQLBrDelete.TestDeleteWhereFirebird.Checked=1
47 | TTestCQLBrDelete.TestDeleteWhereFirebird.Expanded=0
48 | TTestCQLBrOperators.Checked=1
49 | TTestCQLBrOperators.Expanded=1
50 | TTestCQLBrOperators.TestWhereIsNull.Checked=1
51 | TTestCQLBrOperators.TestWhereIsNull.Expanded=0
52 | TTestCQLBrOperators.TestOrIsNull.Checked=1
53 | TTestCQLBrOperators.TestOrIsNull.Expanded=0
54 | TTestCQLBrOperators.TestAndIsNull.Checked=1
55 | TTestCQLBrOperators.TestAndIsNull.Expanded=0
56 | TTestCQLBrOperators.TestWhereIsNotNull.Checked=1
57 | TTestCQLBrOperators.TestWhereIsNotNull.Expanded=0
58 | TTestCQLBrOperators.TestOrIsNotNull.Checked=1
59 | TTestCQLBrOperators.TestOrIsNotNull.Expanded=0
60 | TTestCQLBrOperators.TestAndIsNotNull.Checked=1
61 | TTestCQLBrOperators.TestAndIsNotNull.Expanded=0
62 | TTestCQLBrOperatorsLike.Checked=1
63 | TTestCQLBrOperatorsLike.Expanded=1
64 | TTestCQLBrOperatorsLike.TestLikeFull.Checked=1
65 | TTestCQLBrOperatorsLike.TestLikeFull.Expanded=0
66 | TTestCQLBrOperatorsLike.TestLikeRight.Checked=1
67 | TTestCQLBrOperatorsLike.TestLikeRight.Expanded=0
68 | TTestCQLBrOperatorsLike.TestLikeLeft.Checked=1
69 | TTestCQLBrOperatorsLike.TestLikeLeft.Expanded=0
70 | TTestCQLBrOperatorsLike.TestNotLikeFull.Checked=1
71 | TTestCQLBrOperatorsLike.TestNotLikeFull.Expanded=0
72 | TTestCQLBrOperatorsLike.TestNotLikeRight.Checked=1
73 | TTestCQLBrOperatorsLike.TestNotLikeRight.Expanded=0
74 | TTestCQLBrOperatorsLike.TestNotLikeLeft.Checked=1
75 | TTestCQLBrOperatorsLike.TestNotLikeLeft.Expanded=0
76 |
--------------------------------------------------------------------------------
/Test Lazarus/TestCQLBr.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Test Lazarus/TestCQLBr.ico
--------------------------------------------------------------------------------
/Test Lazarus/TestCQLBr.lpr:
--------------------------------------------------------------------------------
1 | program TestCQLBr;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | uses
6 | Interfaces, Forms, GuiTestRunner, test.select, test.insert, test.update,
7 | test.delete, test.operators, test.operators.like, cqlbr.functions.abstract,
8 | cqlbr.name, cqlbr.namevalue, cqlbr.register, cqlbr.section,
9 | cqlbr.functions.db2, cqlbr.functions.firebird, cqlbr.functions.interbase,
10 | cqlbr.functions.mssql, cqlbr.functions.mysql, cqlbr.functions.oracle,
11 | cqlbr.functions.postgresql, cqlbr.functions.sqlite, cqlbr.qualifier.db2,
12 | cqlbr.qualifier.firebird, cqlbr.qualifier.interbase, cqlbr.qualifier.mongodb,
13 | cqlbr.qualifier.mssql, cqlbr.qualifier.mysql, cqlbr.qualifier.oracle,
14 | cqlbr.qualifier.sqlite, cqlbr.select.db2, cqlbr.select.firebird,
15 | cqlbr.select.interbase, cqlbr.select.mongodb, cqlbr.select.mssql,
16 | cqlbr.select.mysql, cqlbr.select.oracle, cqlbr.select.sqlite,
17 | cqlbr.serialize.db2, cqlbr.serialize.firebird, cqlbr.serialize.interbase,
18 | cqlbr.serialize.mongodb, cqlbr.serialize.mssql, cqlbr.serialize.mysql,
19 | cqlbr.serialize.oracle, cqlbr.serialize.sqlite;
20 |
21 | {$R *.res}
22 |
23 | begin
24 | Application.Initialize;
25 | Application.CreateForm(TGuiTestRunner, TestRunner);
26 | Application.Run;
27 | end.
28 |
29 |
--------------------------------------------------------------------------------
/Test Lazarus/TestCQLBr.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HashLoad/cqlbr/17be41e769b7f152b23d8be9ac3d7e04e74eb752/Test Lazarus/TestCQLBr.res
--------------------------------------------------------------------------------
/Test Lazarus/backup/TestCQLBr.lpi.bak:
--------------------------------------------------------------------------------
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 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
--------------------------------------------------------------------------------
/Test Lazarus/lib/x86_64-win64/TestCQLBr.compiled:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Test Lazarus/test.delete.pas:
--------------------------------------------------------------------------------
1 | unit test.delete;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, fpcunit, testutils, testregistry;
9 |
10 | type
11 |
12 | { TTestCQLBrDelete }
13 |
14 | TTestCQLBrDelete= class(TTestCase)
15 | protected
16 | procedure SetUp; override;
17 | procedure TearDown; override;
18 | published
19 | procedure TestDeleteFirebird;
20 | procedure TestDeleteWhereFirebird;
21 | end;
22 |
23 | implementation
24 |
25 | uses
26 | cqlbr.interfaces,
27 | criteria.query.language;
28 |
29 | procedure TTestCQLBrDelete.SetUp;
30 | begin
31 |
32 | end;
33 |
34 | procedure TTestCQLBrDelete.TearDown;
35 | begin
36 |
37 | end;
38 |
39 | procedure TTestCQLBrDelete.TestDeleteFirebird;
40 | var
41 | LAsString: String;
42 | begin
43 | LAsString := 'DELETE FROM CLIENTES';
44 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
45 | .Delete
46 | .From('CLIENTES')
47 | .AsString);
48 | end;
49 |
50 | procedure TTestCQLBrDelete.TestDeleteWhereFirebird;
51 | var
52 | LAsString: String;
53 | begin
54 | LAsString := 'DELETE FROM CLIENTES WHERE ID_CLIENTE = 1';
55 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
56 | .Delete
57 | .From('CLIENTES')
58 | .Where('ID_CLIENTE = 1')
59 | .AsString);
60 | end;
61 |
62 | initialization
63 |
64 | RegisterTest(TTestCQLBrDelete);
65 | end.
66 |
--------------------------------------------------------------------------------
/Test Lazarus/test.insert.pas:
--------------------------------------------------------------------------------
1 | unit test.insert;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, fpcunit, testutils, testregistry;
9 |
10 | type
11 |
12 | { TTestCQLBrInsert }
13 |
14 | TTestCQLBrInsert= class(TTestCase)
15 | protected
16 | procedure SetUp; override;
17 | procedure TearDown; override;
18 | published
19 | procedure TestInsertFirebird;
20 | end;
21 |
22 | implementation
23 |
24 | uses
25 | cqlbr.interfaces,
26 | criteria.query.language;
27 |
28 | procedure TTestCQLBrInsert.SetUp;
29 | begin
30 |
31 | end;
32 |
33 | procedure TTestCQLBrInsert.TearDown;
34 | begin
35 |
36 | end;
37 |
38 | procedure TTestCQLBrInsert.TestInsertFirebird;
39 | var
40 | LAsString: String;
41 | begin
42 | LAsString := 'INSERT INTO CLIENTES (ID_CLIENTE, NOME_CLIENTE) VALUES (''1'', ''MyName'')';
43 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
44 | .Insert
45 | .Into('CLIENTES')
46 | .&Set('ID_CLIENTE', '1')
47 | .&Set('NOME_CLIENTE', 'MyName')
48 | .AsString);
49 | end;
50 |
51 | initialization
52 |
53 | RegisterTest(TTestCQLBrInsert);
54 | end.
55 |
--------------------------------------------------------------------------------
/Test Lazarus/test.operators.like.pas:
--------------------------------------------------------------------------------
1 | unit test.operators.like;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, fpcunit, testutils, testregistry;
9 |
10 | type
11 |
12 | { TTestCQLBrOperatorsLike }
13 |
14 | TTestCQLBrOperatorsLike= class(TTestCase)
15 | protected
16 | procedure SetUp; override;
17 | procedure TearDown; override;
18 | published
19 | procedure TestLikeFull;
20 | procedure TestLikeRight;
21 | procedure TestLikeLeft;
22 | procedure TestNotLikeFull;
23 | procedure TestNotLikeRight;
24 | procedure TestNotLikeLeft;
25 | end;
26 |
27 | implementation
28 |
29 | uses
30 | cqlbr.interfaces,
31 | criteria.query.language;
32 |
33 | procedure TTestCQLBrOperatorsLike.SetUp;
34 | begin
35 |
36 | end;
37 |
38 | procedure TTestCQLBrOperatorsLike.TearDown;
39 | begin
40 |
41 | end;
42 |
43 | procedure TTestCQLBrOperatorsLike.TestLikeFull;
44 | var
45 | LAsString : string;
46 | begin
47 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME LIKE ''%VALUE%'')';
48 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
49 | .Select
50 | .All
51 | .From('CLIENTES')
52 | .Where('NOME').LikeFull('VALUE')
53 | .AsString));
54 | end;
55 |
56 | procedure TTestCQLBrOperatorsLike.TestLikeRight;
57 | var
58 | LAsString : string;
59 | begin
60 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME LIKE ''VALUE%'')';
61 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
62 | .Select
63 | .All
64 | .From('CLIENTES')
65 | .Where('NOME').LikeRight('VALUE')
66 | .AsString));
67 | end;
68 |
69 | procedure TTestCQLBrOperatorsLike.TestLikeLeft;
70 | var
71 | LAsString : string;
72 | begin
73 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME LIKE ''%VALUE'')';
74 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
75 | .Select
76 | .All
77 | .From('CLIENTES')
78 | .Where('NOME').LikeLeft('VALUE')
79 | .AsString));
80 | end;
81 |
82 | procedure TTestCQLBrOperatorsLike.TestNotLikeFull;
83 | var
84 | LAsString : string;
85 | begin
86 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME NOT LIKE ''%VALUE%'')';
87 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
88 | .Select
89 | .All
90 | .From('CLIENTES')
91 | .Where('NOME').NotLikeFull('VALUE')
92 | .AsString));
93 | end;
94 |
95 | procedure TTestCQLBrOperatorsLike.TestNotLikeRight;
96 | var
97 | LAsString : string;
98 | begin
99 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME NOT LIKE ''VALUE%'')';
100 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
101 | .Select
102 | .All
103 | .From('CLIENTES')
104 | .Where('NOME').NotLikeRight('VALUE')
105 | .AsString));
106 | end;
107 |
108 | procedure TTestCQLBrOperatorsLike.TestNotLikeLeft;
109 | var
110 | LAsString : string;
111 | begin
112 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME NOT LIKE ''%VALUE'')';
113 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
114 | .Select
115 | .All
116 | .From('CLIENTES')
117 | .Where('NOME').NotLikeLeft('VALUE')
118 | .AsString));
119 | end;
120 |
121 | initialization
122 |
123 | RegisterTest(TTestCQLBrOperatorsLike);
124 | end.
125 |
--------------------------------------------------------------------------------
/Test Lazarus/test.operators.pas:
--------------------------------------------------------------------------------
1 | unit test.operators;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, fpcunit, testutils, testregistry;
9 |
10 | type
11 |
12 | { TTestCQLBrInsert }
13 |
14 | { TTestCQLBrOperators }
15 |
16 | TTestCQLBrOperators= class(TTestCase)
17 | protected
18 | procedure SetUp; override;
19 | procedure TearDown; override;
20 | published
21 | procedure TestWhereIsNull;
22 | procedure TestOrIsNull;
23 | procedure TestAndIsNull;
24 |
25 | procedure TestWhereIsNotNull;
26 | procedure TestOrIsNotNull;
27 | procedure TestAndIsNotNull;
28 | end;
29 |
30 | implementation
31 |
32 | uses
33 | cqlbr.interfaces,
34 | criteria.query.language;
35 |
36 | procedure TTestCQLBrOperators.SetUp;
37 | begin
38 |
39 | end;
40 |
41 | procedure TTestCQLBrOperators.TearDown;
42 | begin
43 |
44 | end;
45 |
46 | procedure TTestCQLBrOperators.TestWhereIsNull;
47 | var
48 | LAsString : string;
49 | begin
50 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME IS NULL)';
51 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
52 | .Select
53 | .All
54 | .From('CLIENTES')
55 | .Where('NOME').IsNull
56 | .AsString));
57 | end;
58 |
59 | procedure TTestCQLBrOperators.TestOrIsNull;
60 | var
61 | LAsString : string;
62 | begin
63 | LAsString := 'SELECT * FROM CLIENTES WHERE ((1 = 1) OR (NOME IS NULL))';
64 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
65 | .Select
66 | .All
67 | .From('CLIENTES')
68 | .Where('1 = 1')
69 | .&Or('NOME').IsNull
70 | .AsString));
71 | end;
72 |
73 | procedure TTestCQLBrOperators.TestAndIsNull;
74 | var
75 | LAsString : string;
76 | begin
77 | LAsString := 'SELECT * FROM CLIENTES WHERE (1 = 1) AND (NOME IS NULL)';
78 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
79 | .Select
80 | .All
81 | .From('CLIENTES')
82 | .Where('1 = 1')
83 | .&And('NOME').IsNull
84 | .AsString));
85 | end;
86 |
87 | procedure TTestCQLBrOperators.TestWhereIsNotNull;
88 | var
89 | LAsString : string;
90 | begin
91 | LAsString := 'SELECT * FROM CLIENTES WHERE (NOME IS NOT NULL)';
92 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
93 | .Select
94 | .All
95 | .From('CLIENTES')
96 | .Where('NOME').IsNotNull
97 | .AsString));
98 | end;
99 |
100 | procedure TTestCQLBrOperators.TestOrIsNotNull;
101 | var
102 | LAsString : string;
103 | begin
104 | LAsString := 'SELECT * FROM CLIENTES WHERE ((1 = 1) OR (NOME IS NOT NULL))';
105 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
106 | .Select
107 | .All
108 | .From('CLIENTES')
109 | .Where('1 = 1')
110 | .&Or('NOME').IsNotNull
111 | .AsString));
112 | end;
113 |
114 | procedure TTestCQLBrOperators.TestAndIsNotNull;
115 | var
116 | LAsString : string;
117 | begin
118 | LAsString := 'SELECT * FROM CLIENTES WHERE (1 = 1) AND (NOME IS NOT NULL)';
119 | AssertEquals(LAsString, UpperCase(TCQL.New(dbnFirebird)
120 | .Select
121 | .All
122 | .From('CLIENTES')
123 | .Where('1 = 1')
124 | .&And('NOME').IsNotNull
125 | .AsString));
126 | end;
127 |
128 | initialization
129 |
130 | RegisterTest(TTestCQLBrOperators);
131 | end.
132 |
--------------------------------------------------------------------------------
/Test Lazarus/test.select.pas:
--------------------------------------------------------------------------------
1 | unit test.select;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, fpcunit, testutils, testregistry;
9 |
10 | type
11 |
12 | { TTestCQLBrSelect }
13 |
14 | TTestCQLBrSelect= class(TTestCase)
15 | protected
16 | procedure SetUp; override;
17 | procedure TearDown; override;
18 | published
19 | procedure TestSelectAll;
20 | procedure TestSelectAllWhere;
21 | procedure TestSelectAllWhereAndOr;
22 | procedure TestSelectAllWhereAndAnd;
23 | procedure TestSelectAllOrderBy;
24 | procedure TestSelectColumns;
25 | procedure TestSelectColumnsCase;
26 | procedure TestSelectPagingFirebird;
27 | procedure TestSelectPagingOracle;
28 | procedure TestSelectPagingMySQL;
29 | procedure TestSelectPagingMSSQL;
30 | end;
31 |
32 | implementation
33 |
34 | uses
35 | cqlbr.interfaces,
36 | cqlbr.select.firebird,
37 | cqlbr.select.oracle,
38 | cqlbr.select.mysql,
39 | cqlbr.select.mssql,
40 | cqlbr.serialize.firebird,
41 | cqlbr.serialize.oracle,
42 | cqlbr.serialize.mysql,
43 | cqlbr.serialize.mssql,
44 | criteria.query.language;
45 |
46 | procedure TTestCQLBrSelect.TestSelectAll;
47 | var
48 | LAsString: String;
49 | begin
50 | LAsString := 'SELECT * FROM CLIENTES';
51 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
52 | .Select
53 | .All
54 | .From('CLIENTES')
55 | .AsString);
56 | end;
57 |
58 | procedure TTestCQLBrSelect.TestSelectAllWhere;
59 | var
60 | LAsString: String;
61 | begin
62 | LAsString := 'SELECT * FROM CLIENTES WHERE ID_CLIENTE = 1';
63 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
64 | .Select
65 | .All
66 | .From('CLIENTES')
67 | .Where('ID_CLIENTE = 1')
68 | .AsString);
69 | end;
70 |
71 | procedure TTestCQLBrSelect.TestSelectAllWhereAndOr;
72 | var
73 | LAsString: String;
74 | begin
75 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID_CLIENTE = 1) AND ((ID >= 10) OR (ID <= 20))';
76 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
77 | .Select
78 | .All
79 | .From('CLIENTES')
80 | .Where('ID_CLIENTE = 1')
81 | .&And('ID').GreaterEqThan(10)
82 | .&Or('ID').LessEqThan(20)
83 | .AsString);
84 | end;
85 |
86 | procedure TTestCQLBrSelect.TestSelectAllWhereAndAnd;
87 | var
88 | LAsString: String;
89 | begin
90 | LAsString := 'SELECT * FROM CLIENTES WHERE (ID_CLIENTE = 1) AND (ID >= 10) AND (ID <= 20)';
91 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
92 | .Select
93 | .All
94 | .From('CLIENTES')
95 | .Where('ID_CLIENTE = 1')
96 | .&And('ID').GreaterEqThan(10)
97 | .&And('ID').LessEqThan(20)
98 | .AsString);
99 | end;
100 |
101 | procedure TTestCQLBrSelect.TestSelectAllOrderBy;
102 | var
103 | LAsString: String;
104 | begin
105 | LAsString := 'SELECT * FROM CLIENTES ORDER BY ID_CLIENTE';
106 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
107 | .Select
108 | .All
109 | .From('CLIENTES')
110 | .OrderBy('ID_CLIENTE')
111 | .AsString);
112 | end;
113 |
114 | procedure TTestCQLBrSelect.TestSelectColumns;
115 | var
116 | LAsString: String;
117 | begin
118 | LAsString := 'SELECT ID_CLIENTE, NOME_CLIENTE FROM CLIENTES';
119 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
120 | .Select
121 | .Column('ID_CLIENTE')
122 | .Column('NOME_CLIENTE')
123 | .From('CLIENTES')
124 | .AsString);
125 | end;
126 |
127 | procedure TTestCQLBrSelect.TestSelectColumnsCase;
128 | var
129 | LAsString: String;
130 | begin
131 | LAsString := 'SELECT ID_CLIENTE, NOME_CLIENTE, (CASE TIPO_CLIENTE WHEN 0 THEN ''FISICA'' WHEN 1 THEN ''JURIDICA'' ELSE ''PRODUTOR'' END) AS TIPO_PESSOA FROM CLIENTES';
132 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
133 | .Select
134 | .Column('ID_CLIENTE')
135 | .Column('NOME_CLIENTE')
136 | .Column('TIPO_CLIENTE')
137 | .&Case
138 | .When('0').&Then('''FISICA''')
139 | .When('1').&Then('''JURIDICA''')
140 | .&Else('''PRODUTOR''')
141 | .&End
142 | .&As('TIPO_PESSOA')
143 | .From('CLIENTES')
144 | .AsString);
145 | end;
146 |
147 | procedure TTestCQLBrSelect.TestSelectPagingFirebird;
148 | var
149 | LAsString: String;
150 | begin
151 | LAsString := 'SELECT FIRST 3 SKIP 0 ID_CLIENTE FROM CLIENTES ORDER BY ID_CLIENTE';
152 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
153 | .Select
154 | .Column('ID_CLIENTE')
155 | .First(3).Skip(0)
156 | .From('CLIENTES')
157 | .OrderBy('ID_CLIENTE')
158 | .AsString);
159 | end;
160 |
161 | procedure TTestCQLBrSelect.TestSelectPagingMySQL;
162 | var
163 | LAsString: String;
164 | begin
165 | LAsString := 'SELECT * FROM CLIENTES ORDER BY ID_CLIENTE LIMIT 3 OFFSET 0';
166 | AssertEquals(LAsString, TCQL.New(dbnMySQL)
167 | .Select
168 | .All
169 | .Limit(3).Offset(0)
170 | .From('CLIENTES')
171 | .OrderBy('ID_CLIENTE')
172 | .AsString);
173 | end;
174 |
175 | procedure TTestCQLBrSelect.TestSelectPagingMSSQL;
176 | var
177 | LAsString: String;
178 |
179 | begin
180 | LAsString := 'SELECT * '+
181 | 'FROM (SELECT ID_CLIENTE, '+
182 | 'ROW_NUMBER() OVER(ORDER BY CURRENT_TIMESTAMP) AS ROWNUMBER '+
183 | 'FROM CLIENTES AS C) AS CLIENTES '+
184 | 'WHERE (ROWNUMBER > 0 AND ROWNUMBER <= 3) '+
185 | 'ORDER BY ID_CLIENTE';
186 | AssertEquals(LAsString, TCQL.New(dbnMSSQL)
187 | .Select
188 | .Column('ID_CLIENTE')
189 | .First(3)
190 | .From('CLIENTES', 'C')
191 | .OrderBy('ID_CLIENTE')
192 | .AsString);
193 | end;
194 |
195 | procedure TTestCQLBrSelect.SetUp;
196 | begin
197 |
198 | end;
199 |
200 | procedure TTestCQLBrSelect.TearDown;
201 | begin
202 |
203 | end;
204 |
205 | initialization
206 |
207 | RegisterTest(TTestCQLBrSelect);
208 | end.
209 |
210 |
--------------------------------------------------------------------------------
/Test Lazarus/test.update.pas:
--------------------------------------------------------------------------------
1 | unit test.update;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, fpcunit, testutils, testregistry;
9 |
10 | type
11 |
12 | { TTestCQLBrInsert }
13 |
14 | { TTestCQLBrUpdate }
15 |
16 | TTestCQLBrUpdate= class(TTestCase)
17 | protected
18 | procedure SetUp; override;
19 | procedure TearDown; override;
20 | published
21 | procedure TestUpdateFirebird;
22 | procedure TestUpdateWhereFirebird;
23 | end;
24 |
25 | implementation
26 |
27 | uses
28 | cqlbr.interfaces,
29 | criteria.query.language;
30 |
31 | procedure TTestCQLBrUpdate.SetUp;
32 | begin
33 |
34 | end;
35 |
36 | procedure TTestCQLBrUpdate.TearDown;
37 | begin
38 |
39 | end;
40 |
41 | procedure TTestCQLBrUpdate.TestUpdateFirebird;
42 | var
43 | LAsString: String;
44 | begin
45 | LAsString := 'UPDATE CLIENTES SET ID_CLIENTE = ''1'', NOME_CLIENTE = ''MyName''';
46 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
47 | .Update('CLIENTES')
48 | .&Set('ID_CLIENTE', '1')
49 | .&Set('NOME_CLIENTE', 'MyName')
50 | .AsString);
51 | end;
52 |
53 | procedure TTestCQLBrUpdate.TestUpdateWhereFirebird;
54 | var
55 | LAsString: String;
56 | begin
57 | LAsString := 'UPDATE CLIENTES SET ID_CLIENTE = ''1'', NOME_CLIENTE = ''MyName'' WHERE ID_CLIENTE = 1';
58 | AssertEquals(LAsString, TCQL.New(dbnFirebird)
59 | .Update('CLIENTES')
60 | .&Set('ID_CLIENTE', '1')
61 | .&Set('NOME_CLIENTE', 'MyName')
62 | .Where('ID_CLIENTE = 1')
63 | .AsString);
64 | end;
65 |
66 | initialization
67 |
68 | RegisterTest(TTestCQLBrUpdate);
69 | end.
70 |
--------------------------------------------------------------------------------
/boss-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "d41d8cd98f00b204e9800998ecf8427e",
3 | "updated": "2020-11-14T11:28:04.4779682-03:00",
4 | "installedModules": {}
5 | }
--------------------------------------------------------------------------------
/boss.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "CQLBr",
3 | "description": "Criteria Query Language for Delphi",
4 | "version": "1.1.6",
5 | "homepage": "www.isaquepinheiro.com.br",
6 | "mainsrc": "Source/",
7 | "projects": [],
8 | "dependencies": {}
9 | }
--------------------------------------------------------------------------------
/readme.txt:
--------------------------------------------------------------------------------
1 | Link da dependência
2 | https://github.com/HashLoad/CQLBr/archive/refs/heads/master.zip
--------------------------------------------------------------------------------