Skip to content

Commit 0575b75

Browse files
committed
Adicionado função de Filter no SimpleDAO.pas.
Adicionado Result da função antes das verificações no SimpleDAO.DataSetToJSON.pas.
1 parent 5b32769 commit 0575b75

File tree

4 files changed

+80
-69
lines changed

4 files changed

+80
-69
lines changed

SimpleDAO.DataSetToJSON.pas

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,9 @@ function TDataSetToJSON<T>.DataSetToJSONArray(DataSet : TDataSet) : TJSONArray;
7171
var
7272
bookMark: TBookmark;
7373
begin
74-
Result := nil;
74+
Result := TJSONArray.Create;
7575
if Assigned(dataSet) and (not dataSet.IsEmpty) then
7676
try
77-
Result := TJSONArray.Create;
7877
bookMark := dataSet.Bookmark;
7978
dataSet.First;
8079
while not dataSet.Eof do

SimpleDAO.pas

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ TSimpleDAO<T: class, constructor> = class(TInterfacedObject, iSimpleDAO<T>)
3737
function Update(aValue : T) : iSimpleDAO<T>; overload;
3838
function Delete(aValue : T) : iSimpleDAO<T>; overload;
3939
function Delete(aField : String; aValue : String) : iSimpleDAO<T>; overload;
40+
function Filter(aField : String; aValue : String) : iSimpleDAO<T>;
4041
function LastID : iSimpleDAO<T>;
4142
function LastRecord : iSimpleDAO<T>;
4243
{$IFNDEF CONSOLE}
@@ -338,6 +339,19 @@ function TSimpleDAO<T>.FillParameter(aInstance: T;
338339
FreeAndNil(ListFields);
339340
end;
340341
end;
342+
343+
function TSimpleDAO<T>.Filter(aField, aValue: String): iSimpleDAO<T>;
344+
var
345+
aSQL : String;
346+
begin
347+
Result := Self;
348+
TSimpleSQL<T>.New(nil).Where('upper('+aField+') like ' + QuotedStr('%') + '||' + 'upper(:'+aField+')||'+QuotedStr('%')).Select(aSQL);
349+
FQuery.SQL.Clear;
350+
FQuery.SQL.Add(aSQL);
351+
FQuery.Params.ParamByName(aField).Value := aValue;
352+
FQuery.Open;
353+
end;
354+
341355
function TSimpleDAO<T>.Find(aKey: String; aValue: Variant): iSimpleDAO<T>;
342356
var
343357
aSQL : String;

SimpleInterface.pas

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ interface
2929
function Insert(aValue : T) : iSimpleDAO<T>; overload;
3030
function Update(aValue : T) : iSimpleDAO<T>; overload;
3131
function Delete(aValue : T) : iSimpleDAO<T>; overload;
32+
function Filter(aField : String; aValue : String) : iSimpleDAO<T>;
3233
function LastID : iSimpleDAO<T>;
3334
function LastRecord : iSimpleDAO<T>;
3435
function Delete(aField : String; aValue : String) : iSimpleDAO<T>; overload;

SimpleORM.dpk

Lines changed: 64 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,66 @@
11
package SimpleORM;
2-
3-
{$R *.res}
4-
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
5-
{$ALIGN 8}
6-
{$ASSERTIONS ON}
7-
{$BOOLEVAL OFF}
8-
{$DEBUGINFO OFF}
9-
{$EXTENDEDSYNTAX ON}
10-
{$IMPORTEDDATA ON}
11-
{$IOCHECKS ON}
12-
{$LOCALSYMBOLS ON}
13-
{$LONGSTRINGS ON}
14-
{$OPENSTRINGS ON}
15-
{$OPTIMIZATION OFF}
16-
{$OVERFLOWCHECKS OFF}
17-
{$RANGECHECKS OFF}
18-
{$REFERENCEINFO ON}
19-
{$SAFEDIVIDE OFF}
20-
{$STACKFRAMES ON}
21-
{$TYPEDADDRESS OFF}
22-
{$VARSTRINGCHECKS ON}
23-
{$WRITEABLECONST OFF}
24-
{$MINENUMSIZE 1}
25-
{$IMAGEBASE $400000}
26-
{$DEFINE DEBUG}
27-
{$ENDIF IMPLICITBUILDING}
28-
{$IMPLICITBUILD ON}
29-
30-
requires
31-
rtl,
32-
vcl,
33-
soaprtl,
34-
dbrtl,
35-
inet,
36-
IndySystem,
37-
IndyProtocols,
38-
IndyCore,
39-
FireDAC,
40-
FireDACCommonDriver,
41-
FireDACCommon,
42-
RestDatawareCORE,
43-
DbxCommonDriver,
44-
bindengine,
45-
bindcomp,
46-
RESTComponents,
47-
dac260,
48-
unidac260;
49-
50-
contains
51-
SimpleAttributes in 'SimpleAttributes.pas',
52-
SimpleDAO in 'SimpleDAO.pas',
53-
SimpleInterface in 'SimpleInterface.pas',
54-
SimpleQueryFiredac in 'SimpleQueryFiredac.pas',
55-
SimpleQueryRestDW in 'SimpleQueryRestDW.pas',
56-
SimpleRTTI in 'SimpleRTTI.pas',
57-
SimpleSQL in 'SimpleSQL.pas',
58-
SimpleDAOSQLAttribute in 'SimpleDAOSQLAttribute.pas',
59-
SimpleRTTIHelper in 'SimpleRTTIHelper.pas',
60-
SimpleValidator in 'SimpleValidator.pas',
61-
SimpleUtil in 'SimpleUtil.pas',
62-
SimpleEntity in 'SimpleEntity.pas',
63-
SimpleJSONUtil in 'SimpleJSONUtil.pas',
64-
SimpleJSON in 'SimpleJSON.pas',
65-
SimpleQueryUnidac in 'SimpleQueryUnidac.pas',
66-
SimpleDAO.DataSetToJSON in 'SimpleDAO.DataSetToJSON',
67-
SimpleTypes in 'SimpleTypes';
68-
2+
3+
{$R *.res}
4+
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
5+
{$ALIGN 8}
6+
{$ASSERTIONS ON}
7+
{$BOOLEVAL OFF}
8+
{$DEBUGINFO OFF}
9+
{$EXTENDEDSYNTAX ON}
10+
{$IMPORTEDDATA ON}
11+
{$IOCHECKS ON}
12+
{$LOCALSYMBOLS ON}
13+
{$LONGSTRINGS ON}
14+
{$OPENSTRINGS ON}
15+
{$OPTIMIZATION OFF}
16+
{$OVERFLOWCHECKS OFF}
17+
{$RANGECHECKS OFF}
18+
{$REFERENCEINFO ON}
19+
{$SAFEDIVIDE OFF}
20+
{$STACKFRAMES ON}
21+
{$TYPEDADDRESS OFF}
22+
{$VARSTRINGCHECKS ON}
23+
{$WRITEABLECONST OFF}
24+
{$MINENUMSIZE 1}
25+
{$IMAGEBASE $400000}
26+
{$DEFINE DEBUG}
27+
{$ENDIF IMPLICITBUILDING}
28+
{$IMPLICITBUILD ON}
29+
requires
30+
rtl,
31+
vcl,
32+
soaprtl,
33+
dbrtl,
34+
inet,
35+
IndySystem,
36+
IndyProtocols,
37+
IndyCore,
38+
FireDAC,
39+
FireDACCommonDriver,
40+
FireDACCommon,
41+
RestDatawareCORE,
42+
DbxCommonDriver,
43+
bindengine,
44+
bindcomp,
45+
RESTComponents,
46+
dac260,
47+
unidac260;
48+
contains
49+
SimpleAttributes in 'SimpleAttributes.pas',
50+
SimpleDAO in 'SimpleDAO.pas',
51+
SimpleInterface in 'SimpleInterface.pas',
52+
SimpleQueryFiredac in 'SimpleQueryFiredac.pas',
53+
SimpleQueryRestDW in 'SimpleQueryRestDW.pas',
54+
SimpleRTTI in 'SimpleRTTI.pas',
55+
SimpleSQL in 'SimpleSQL.pas',
56+
SimpleDAOSQLAttribute in 'SimpleDAOSQLAttribute.pas',
57+
SimpleRTTIHelper in 'SimpleRTTIHelper.pas',
58+
SimpleValidator in 'SimpleValidator.pas',
59+
SimpleUtil in 'SimpleUtil.pas',
60+
SimpleEntity in 'SimpleEntity.pas',
61+
SimpleJSONUtil in 'SimpleJSONUtil.pas',
62+
SimpleJSON in 'SimpleJSON.pas',
63+
SimpleQueryUnidac in 'SimpleQueryUnidac.pas',
64+
SimpleDAO.DataSetToJSON in 'SimpleDAO.DataSetToJSON',
65+
SimpleTypes in 'SimpleTypes';
6966
end.

0 commit comments

Comments
 (0)