├── .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 | [![License](https://img.shields.io/badge/Licence-LGPL--3.0-blue.svg)](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 | [![Issues](https://img.shields.io/badge/Issues-channel-orange)](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 | [![Telegram](https://img.shields.io/badge/Telegram-channel-blue)](https://t.me/hashload) 155 | 156 | ## 💲 Donation 157 | [![Doação](https://img.shields.io/badge/PagSeguro-contribua-green)](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 | <ResourceType Value="res"/> 11 | <UseXPManifest Value="True"/> 12 | <Icon Value="0"/> 13 | </General> 14 | <BuildModes Count="1"> 15 | <Item1 Name="Default" Default="True"/> 16 | </BuildModes> 17 | <PublishOptions> 18 | <Version Value="2"/> 19 | <UseFileFilters Value="True"/> 20 | </PublishOptions> 21 | <RunParams> 22 | <FormatVersion Value="2"/> 23 | <Modes Count="0"/> 24 | </RunParams> 25 | <RequiredPackages Count="4"> 26 | <Item1> 27 | <PackageName Value="sparta_generics"/> 28 | </Item1> 29 | <Item2> 30 | <PackageName Value="fpcunittestrunner"/> 31 | </Item2> 32 | <Item3> 33 | <PackageName Value="LCL"/> 34 | </Item3> 35 | <Item4> 36 | <PackageName Value="FCL"/> 37 | </Item4> 38 | </RequiredPackages> 39 | <Units Count="45"> 40 | <Unit0> 41 | <Filename Value="TestCQLBr.lpr"/> 42 | <IsPartOfProject Value="True"/> 43 | </Unit0> 44 | <Unit1> 45 | <Filename Value="test.select.pas"/> 46 | <IsPartOfProject Value="True"/> 47 | </Unit1> 48 | <Unit2> 49 | <Filename Value="..\Source\Core\cql.core.pas"/> 50 | <IsPartOfProject Value="True"/> 51 | </Unit2> 52 | <Unit3> 53 | <Filename Value="..\Source\Core\cql.insert.pas"/> 54 | <IsPartOfProject Value="True"/> 55 | </Unit3> 56 | <Unit4> 57 | <Filename Value="..\Source\Core\cqlbr.ast.pas"/> 58 | <IsPartOfProject Value="True"/> 59 | </Unit4> 60 | <Unit5> 61 | <Filename Value="..\Source\Core\cqlbr.cases.pas"/> 62 | <IsPartOfProject Value="True"/> 63 | </Unit5> 64 | <Unit6> 65 | <Filename Value="..\Source\Core\cqlbr.core.pas"/> 66 | <IsPartOfProject Value="True"/> 67 | </Unit6> 68 | <Unit7> 69 | <Filename Value="..\Source\Core\cqlbr.db.register.pas"/> 70 | <IsPartOfProject Value="True"/> 71 | </Unit7> 72 | <Unit8> 73 | <Filename Value="..\Source\Core\cqlbr.delete.pas"/> 74 | <IsPartOfProject Value="True"/> 75 | </Unit8> 76 | <Unit9> 77 | <Filename Value="..\Source\Core\cqlbr.expression.pas"/> 78 | <IsPartOfProject Value="True"/> 79 | </Unit9> 80 | <Unit10> 81 | <Filename Value="..\Source\Core\cqlbr.functions.pas"/> 82 | <IsPartOfProject Value="True"/> 83 | </Unit10> 84 | <Unit11> 85 | <Filename Value="..\Source\Core\cqlbr.groupby.pas"/> 86 | <IsPartOfProject Value="True"/> 87 | </Unit11> 88 | <Unit12> 89 | <Filename Value="..\Source\Core\cqlbr.having.pas"/> 90 | <IsPartOfProject Value="True"/> 91 | </Unit12> 92 | <Unit13> 93 | <Filename Value="..\Source\Core\cqlbr.insert.pas"/> 94 | <IsPartOfProject Value="True"/> 95 | </Unit13> 96 | <Unit14> 97 | <Filename Value="..\Source\Core\cqlbr.interfaces.pas"/> 98 | <IsPartOfProject Value="True"/> 99 | </Unit14> 100 | <Unit15> 101 | <Filename Value="..\Source\Core\cqlbr.joins.pas"/> 102 | <IsPartOfProject Value="True"/> 103 | </Unit15> 104 | <Unit16> 105 | <Filename Value="..\Source\Core\cqlbr.orderby.pas"/> 106 | <IsPartOfProject Value="True"/> 107 | </Unit16> 108 | <Unit17> 109 | <Filename Value="..\Source\Core\cqlbr.qualifier.pas"/> 110 | <IsPartOfProject Value="True"/> 111 | </Unit17> 112 | <Unit18> 113 | <Filename Value="..\Source\Core\cqlbr.select.pas"/> 114 | <IsPartOfProject Value="True"/> 115 | </Unit18> 116 | <Unit19> 117 | <Filename Value="..\Source\Core\cqlbr.serialize.pas"/> 118 | <IsPartOfProject Value="True"/> 119 | </Unit19> 120 | <Unit20> 121 | <Filename Value="..\Source\Core\cqlbr.update.pas"/> 122 | <IsPartOfProject Value="True"/> 123 | </Unit20> 124 | <Unit21> 125 | <Filename Value="..\Source\Core\cqlbr.utils.pas"/> 126 | <IsPartOfProject Value="True"/> 127 | </Unit21> 128 | <Unit22> 129 | <Filename Value="..\Source\Core\cqlbr.where.pas"/> 130 | <IsPartOfProject Value="True"/> 131 | </Unit22> 132 | <Unit23> 133 | <Filename Value="..\Source\Core\criteria.query.language.pas"/> 134 | <IsPartOfProject Value="True"/> 135 | </Unit23> 136 | <Unit24> 137 | <Filename Value="..\Source\Database\cqlbr.qualifier.firebird.pas"/> 138 | <IsPartOfProject Value="True"/> 139 | </Unit24> 140 | <Unit25> 141 | <Filename Value="..\Source\Database\cqlbr.qualifier.mysql.pas"/> 142 | <IsPartOfProject Value="True"/> 143 | </Unit25> 144 | <Unit26> 145 | <Filename Value="..\Source\Database\cqlbr.qualifier.oracle.pas"/> 146 | <IsPartOfProject Value="True"/> 147 | </Unit26> 148 | <Unit27> 149 | <Filename Value="..\Source\Database\cqlbr.select.firebird.pas"/> 150 | <IsPartOfProject Value="True"/> 151 | </Unit27> 152 | <Unit28> 153 | <Filename Value="..\Source\Database\cqlbr.select.mysql.pas"/> 154 | <IsPartOfProject Value="True"/> 155 | </Unit28> 156 | <Unit29> 157 | <Filename Value="..\Source\Database\cqlbr.select.oracle.pas"/> 158 | <IsPartOfProject Value="True"/> 159 | </Unit29> 160 | <Unit30> 161 | <Filename Value="..\Source\Database\cqlbr.serialize.firebird.pas"/> 162 | <IsPartOfProject Value="True"/> 163 | </Unit30> 164 | <Unit31> 165 | <Filename Value="..\Source\Database\cqlbr.serialize.mysql.pas"/> 166 | <IsPartOfProject Value="True"/> 167 | </Unit31> 168 | <Unit32> 169 | <Filename Value="..\Source\Database\cqlbr.serialize.oracle.pas"/> 170 | <IsPartOfProject Value="True"/> 171 | </Unit32> 172 | <Unit33> 173 | <Filename Value="..\Source\Core\cqlbr.operators.pas"/> 174 | <IsPartOfProject Value="True"/> 175 | </Unit33> 176 | <Unit34> 177 | <Filename Value="..\Source\Database\cqlbr.qualifier.mongodb.pas"/> 178 | <IsPartOfProject Value="True"/> 179 | </Unit34> 180 | <Unit35> 181 | <Filename Value="..\Source\Database\cqlbr.qualifier.mssql.pas"/> 182 | <IsPartOfProject Value="True"/> 183 | </Unit35> 184 | <Unit36> 185 | <Filename Value="..\Source\Database\cqlbr.select.mongodb.pas"/> 186 | <IsPartOfProject Value="True"/> 187 | </Unit36> 188 | <Unit37> 189 | <Filename Value="..\Source\Database\cqlbr.select.mssql.pas"/> 190 | <IsPartOfProject Value="True"/> 191 | </Unit37> 192 | <Unit38> 193 | <Filename Value="..\Source\Database\cqlbr.serialize.mongodb.pas"/> 194 | <IsPartOfProject Value="True"/> 195 | </Unit38> 196 | <Unit39> 197 | <Filename Value="..\Source\Database\cqlbr.serialize.mssql.pas"/> 198 | <IsPartOfProject Value="True"/> 199 | </Unit39> 200 | <Unit40> 201 | <Filename Value="test.insert.pas"/> 202 | <IsPartOfProject Value="True"/> 203 | </Unit40> 204 | <Unit41> 205 | <Filename Value="test.update.pas"/> 206 | <IsPartOfProject Value="True"/> 207 | </Unit41> 208 | <Unit42> 209 | <Filename Value="test.delete.pas"/> 210 | <IsPartOfProject Value="True"/> 211 | </Unit42> 212 | <Unit43> 213 | <Filename Value="test.operators.pas"/> 214 | <IsPartOfProject Value="True"/> 215 | </Unit43> 216 | <Unit44> 217 | <Filename Value="test.operators.like.pas"/> 218 | <IsPartOfProject Value="True"/> 219 | </Unit44> 220 | </Units> 221 | </ProjectOptions> 222 | <CompilerOptions> 223 | <Version Value="11"/> 224 | <PathDelim Value="\"/> 225 | <Target> 226 | <Filename Value="TestCQLBr"/> 227 | </Target> 228 | <SearchPaths> 229 | <IncludeFiles Value="$(ProjOutDir)"/> 230 | <OtherUnitFiles Value="D:\CQLBr\Source\Core\;D:\CQLBr\Source\Database\"/> 231 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 232 | </SearchPaths> 233 | <Linking> 234 | <Options> 235 | <Win32> 236 | <GraphicApplication Value="True"/> 237 | </Win32> 238 | </Options> 239 | </Linking> 240 | </CompilerOptions> 241 | <Debugging> 242 | <Exceptions Count="3"> 243 | <Item1> 244 | <Name Value="EAbort"/> 245 | </Item1> 246 | <Item2> 247 | <Name Value="ECodetoolError"/> 248 | </Item2> 249 | <Item3> 250 | <Name Value="EFOpenError"/> 251 | </Item3> 252 | </Exceptions> 253 | </Debugging> 254 | </CONFIG> 255 | -------------------------------------------------------------------------------- /Test Lazarus/lib/x86_64-win64/TestCQLBr.compiled: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <Compiler Value="D:\lazarus\fpc\3.2.2\bin\x86_64-win64\fpc.exe" Date="1420791944"/> 4 | <Params Value=" -MObjFPC -Scghi -O1 -gw2 -godwarfsets -gl -WG -l -vewnhibq "-FiD:\PROJETOS-Brasil\ORMBr\Source\CQLBr\Test Lazarus\lib\x86_64-win64" -FuD:\CQLBr\Source\Core -FuD:\CQLBr\Source\Database -FuD:\lazarus\components\fpcunit\lib\x86_64-win64\win32 -FuD:\lazarus\components\synedit\units\x86_64-win64\win32 -FuD:\lazarus\lcl\units\x86_64-win64\win32 -FuD:\lazarus\lcl\units\x86_64-win64 -FuD:\lazarus\components\freetype\lib\x86_64-win64 -FuD:\lazarus\components\sparta\generics\lib\x86_64-win64 -FuD:\lazarus\components\lazutils\lib\x86_64-win64 -FuD:\lazarus\packager\units\x86_64-win64 "-FuD:\PROJETOS-Brasil\ORMBr\Source\CQLBr\Test Lazarus\" "-FUD:\PROJETOS-Brasil\ORMBr\Source\CQLBr\Test Lazarus\lib\x86_64-win64\" "-FED:\PROJETOS-Brasil\ORMBr\Source\CQLBr\Test Lazarus\" "-oD:\PROJETOS-Brasil\ORMBr\Source\CQLBr\Test Lazarus\TestCQLBr.exe" -dLCL -dLCLwin32 TestCQLBr.lpr"/> 5 | <Complete Value="False"/> 6 | </CONFIG> 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 --------------------------------------------------------------------------------