mirror of
https://github.com/danieleteti/delphimvcframework.git
synced 2024-11-15 07:45:54 +01:00
Updated sample to show TryGetNamedSQLQuery
This commit is contained in:
parent
7f6c3e2ea2
commit
52a5840bd5
@ -12,13 +12,15 @@ If you use a Delphi version that is not the latest, and you find an issue, check
|
|||||||
|
|
||||||
|Delphi Version | Compatibility Mantainer |
|
|Delphi Version | Compatibility Mantainer |
|
||||||
|---|---|
|
|---|---|
|
||||||
|Delphi 10.4 Sydney | Daniele Teti |
|
|Delphi 11 Alexandria | Daniele Teti |
|
||||||
|Delphi 10.3.1 Rio |Daniele Teti, João Fernandes, Emilio Perez |
|
|Delphi 10.4 Sydney | ... |
|
||||||
|
|Delphi 10.3.1 Rio |João Fernandes, Emilio Perez |
|
||||||
|Delphi 10.2.3 Tokyo |Daniele Barbato, Mohammed Nasman, MJ Wille |
|
|Delphi 10.2.3 Tokyo |Daniele Barbato, Mohammed Nasman, MJ Wille |
|
||||||
|Delphi 10.2 Community Edition|Akrom Obidov|
|
|Delphi 10.2 Community Edition|Akrom Obidov|
|
||||||
|Delphi 10.1.2 Berlin | Emilio Perez, Akrom Obidov, Akbar Khayitov |
|
|Delphi 10.1.2 Berlin | Emilio Perez, Akrom Obidov, Akbar Khayitov |
|
||||||
|Delphi 10.0 Seattle | Davut Eryılmaz |
|
|Delphi 10.0 Seattle | Davut Eryılmaz |
|
||||||
| | |
|
|
||||||
|
|
||||||
|
|
||||||
### What is expected by a compatibility mantainer?
|
### What is expected by a compatibility mantainer?
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# DelphiMVCFramework ![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg) ![GitHub All Releases](https://img.shields.io/github/downloads/danieleteti/delphimvcframework/total?label=Downloads)
|
# DelphiMVCFramework ![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg) ![GitHub All Releases](https://img.shields.io/github/downloads/danieleteti/delphimvcframework/total?label=Downloads)
|
||||||
|
|
||||||
![](https://img.shields.io/badge/Current%20Version-dmvcframework--3.4.0--neon-blue)
|
![](https://img.shields.io/badge/stable-dmvcframework--3.4.0--neon-blue)
|
||||||
![](https://img.shields.io/badge/Beta%20Version-dmvcframework--4.0.0--oxygen--beta-red)
|
![](https://img.shields.io/badge/beta-dmvcframework--3.4.1--sodium--beta-red)
|
||||||
|
|
||||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||||
@ -215,7 +215,7 @@ Congratulations to Daniele Teti and all the staff for the excellent work!" -- Ma
|
|||||||
> "I managed to generate an API for my application thanks to this framework, it is truly useful and efficient!" -- J. Urbani
|
> "I managed to generate an API for my application thanks to this framework, it is truly useful and efficient!" -- J. Urbani
|
||||||
|
|
||||||
|
|
||||||
## What's New in DelphiMVCFramework-3.4.0-neon (current stable version)
|
## What's New in DelphiMVCFramework-3.4.0-neon (stable version)
|
||||||
|
|
||||||
>👉 Deeper analisys of what's new in DelphiMVCFramework-3.4.0-neone is available on [Daniele Teti Blog](http://www.danieleteti.it/post/delphimvcframework-3-4-0-neon/) 👈
|
>👉 Deeper analisys of what's new in DelphiMVCFramework-3.4.0-neone is available on [Daniele Teti Blog](http://www.danieleteti.it/post/delphimvcframework-3-4-0-neon/) 👈
|
||||||
|
|
||||||
@ -336,7 +336,7 @@ Congratulations to Daniele Teti and all the staff for the excellent work!" -- Ma
|
|||||||
- ⚡ Improved `TMVCResponse` type to better suits the new functional actions.
|
- ⚡ Improved `TMVCResponse` type to better suits the new functional actions.
|
||||||
|
|
||||||
`TMVCResponse` can be used with "message based" responses and also with "data based" responses (with single object, with a list of objects or with a dictionary of objects).
|
`TMVCResponse` can be used with "message based" responses and also with "data based" responses (with single object, with a list of objects or with a dictionary of objects).
|
||||||
|
|
||||||
More info [here](http://www.danieleteti.it/post/delphimvcframework-3-4-0-neon/)
|
More info [here](http://www.danieleteti.it/post/delphimvcframework-3-4-0-neon/)
|
||||||
|
|
||||||
- Removed `statuscode`, `reasonstring` and all the field with a default value from exception's JSON rendering. All the high-level rendering methods will emit standard `ReasonString`.
|
- Removed `statuscode`, `reasonstring` and all the field with a default value from exception's JSON rendering. All the high-level rendering methods will emit standard `ReasonString`.
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
<Dependencies/>
|
<Dependencies/>
|
||||||
</Projects>
|
</Projects>
|
||||||
<Projects Include="dmvcframeworkDT.dproj">
|
<Projects Include="dmvcframeworkDT.dproj">
|
||||||
<Dependencies/>
|
<Dependencies>dmvcframeworkRT.dproj</Dependencies>
|
||||||
</Projects>
|
</Projects>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ProjectExtensions>
|
<ProjectExtensions>
|
||||||
@ -50,13 +50,13 @@
|
|||||||
<Target Name="dmvcframeworkRT:Make">
|
<Target Name="dmvcframeworkRT:Make">
|
||||||
<MSBuild Projects="dmvcframeworkRT.dproj" Targets="Make"/>
|
<MSBuild Projects="dmvcframeworkRT.dproj" Targets="Make"/>
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="dmvcframeworkDT">
|
<Target Name="dmvcframeworkDT" DependsOnTargets="dmvcframeworkRT">
|
||||||
<MSBuild Projects="dmvcframeworkDT.dproj"/>
|
<MSBuild Projects="dmvcframeworkDT.dproj"/>
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="dmvcframeworkDT:Clean">
|
<Target Name="dmvcframeworkDT:Clean" DependsOnTargets="dmvcframeworkRT:Clean">
|
||||||
<MSBuild Projects="dmvcframeworkDT.dproj" Targets="Clean"/>
|
<MSBuild Projects="dmvcframeworkDT.dproj" Targets="Clean"/>
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="dmvcframeworkDT:Make">
|
<Target Name="dmvcframeworkDT:Make" DependsOnTargets="dmvcframeworkRT:Make">
|
||||||
<MSBuild Projects="dmvcframeworkDT.dproj" Targets="Make"/>
|
<MSBuild Projects="dmvcframeworkDT.dproj" Targets="Make"/>
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="Build">
|
<Target Name="Build">
|
||||||
|
@ -105,12 +105,15 @@ type
|
|||||||
|
|
||||||
[MVCNameCase(ncLowerCase)]
|
[MVCNameCase(ncLowerCase)]
|
||||||
[MVCTable('customers')]
|
[MVCTable('customers')]
|
||||||
|
[MVCNamedSQLQuery('BestCustomers', 'select * from customers where rating >=4')]
|
||||||
|
[MVCNamedSQLQuery('WithRatingGtOrEqTo', 'select * from customers where rating >=?')]
|
||||||
[MVCNamedSQLQuery('RatingLessThanPar', 'select * from customers where rating < ? order by code, city desc')]
|
[MVCNamedSQLQuery('RatingLessThanPar', 'select * from customers where rating < ? order by code, city desc')]
|
||||||
[MVCNamedSQLQuery('RatingEqualsToPar', 'select /*firebird*/ * from customers where rating = ? order by code, city desc', TMVCActiveRecordBackEnd.FirebirdSQL)]
|
[MVCNamedSQLQuery('RatingEqualsToPar', 'select /*firebird*/ * from customers where rating = ? order by code, city desc', TMVCActiveRecordBackEnd.FirebirdSQL)]
|
||||||
[MVCNamedSQLQuery('RatingEqualsToPar', 'select /*postgres*/ * from customers where rating = ? order by code, city desc', TMVCActiveRecordBackEnd.PostgreSQL)]
|
[MVCNamedSQLQuery('RatingEqualsToPar', 'select /*postgres*/ * from customers where rating = ? order by code, city desc', TMVCActiveRecordBackEnd.PostgreSQL)]
|
||||||
[MVCNamedSQLQuery('RatingEqualsToPar', 'select /*all*/ * from customers where rating = ? order by code, city desc')]
|
[MVCNamedSQLQuery('RatingEqualsToPar', 'select /*all*/ * from customers where rating = ? order by code, city desc')]
|
||||||
[MVCNamedRQLQuery('RatingLessThanPar', 'lt(rating,%d);sort(+code,-city)')]
|
[MVCNamedRQLQuery('RatingLessThanPar', 'lt(rating,%d);sort(+code,-city)')]
|
||||||
[MVCNamedRQLQuery('RatingEqualsToPar', 'eq(rating,%d);sort(+code,-city)')]
|
[MVCNamedRQLQuery('RatingEqualsToPar', 'eq(rating,%d);sort(+code,-city)')]
|
||||||
|
[MVCNamedSQLQuery('GetAllCustomers', 'select * from sp_get_customers()', TMVCActiveRecordBackEnd.PostgreSQL)]
|
||||||
TCustomer = class(TCustomEntity)
|
TCustomer = class(TCustomEntity)
|
||||||
private
|
private
|
||||||
{$IFNDEF USE_SEQUENCES}
|
{$IFNDEF USE_SEQUENCES}
|
||||||
|
@ -94,7 +94,7 @@ type
|
|||||||
procedure btnIntegersAsBoolClick(Sender: TObject);
|
procedure btnIntegersAsBoolClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
procedure Log(const Value: string);
|
procedure Log(const Value: string);
|
||||||
procedure LoadCustomers;
|
procedure LoadCustomers(const HowManyCustomers: Integer = 50);
|
||||||
public
|
public
|
||||||
{ Public declarations }
|
{ Public declarations }
|
||||||
end;
|
end;
|
||||||
@ -712,8 +712,35 @@ end;
|
|||||||
procedure TMainForm.btnNamedQueryClick(Sender: TObject);
|
procedure TMainForm.btnNamedQueryClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Log('** Named SQL Query');
|
Log('** Named SQL Query');
|
||||||
|
|
||||||
|
LoadCustomers(10);
|
||||||
|
|
||||||
|
Log('QuerySQL: BestCustomers');
|
||||||
|
var lCustomers := TMVCActiveRecord.SelectByNamedQuery<TCustomer>('BestCustomers', [], []);
|
||||||
|
try
|
||||||
|
for var lCustomer in lCustomers do
|
||||||
|
begin
|
||||||
|
Log(Format('%4d - %8.5s - %s', [lCustomer.ID.ValueOrDefault, lCustomer.Code.ValueOrDefault,
|
||||||
|
lCustomer.CompanyName.ValueOrDefault]));
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
lCustomers.Free;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Log('QuerySQL: WithRatingGtOrEqTo');
|
||||||
|
lCustomers := TMVCActiveRecord.SelectByNamedQuery<TCustomer>('WithRatingGtOrEqTo', [4], [ftInteger]);
|
||||||
|
try
|
||||||
|
for var lCustomer in lCustomers do
|
||||||
|
begin
|
||||||
|
Log(Format('%4d - %8.5s - %s', [lCustomer.ID.ValueOrDefault, lCustomer.Code.ValueOrDefault,
|
||||||
|
lCustomer.CompanyName.ValueOrDefault]));
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
lCustomers.Free;
|
||||||
|
end;
|
||||||
|
|
||||||
Log('QuerySQL: RatingLessThanPar');
|
Log('QuerySQL: RatingLessThanPar');
|
||||||
var lCustomers := TMVCActiveRecord.SelectByNamedQuery<TCustomer>('RatingLessThanPar', [4], [ftInteger]);
|
lCustomers := TMVCActiveRecord.SelectByNamedQuery<TCustomer>('RatingLessThanPar', [4], [ftInteger]);
|
||||||
try
|
try
|
||||||
for var lCustomer in lCustomers do
|
for var lCustomer in lCustomers do
|
||||||
begin
|
begin
|
||||||
@ -749,6 +776,23 @@ begin
|
|||||||
lCustomers.Free;
|
lCustomers.Free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
var lTmpSQLQueryWithName: TSQLQueryWithName;
|
||||||
|
if TMVCActiveRecord.TryGetSQLQuery<TCustomer>('GetAllCustomers', lTmpSQLQueryWithName) then
|
||||||
|
begin
|
||||||
|
Log('QuerySQL: Stored Procedure "GetAllCustomers"');
|
||||||
|
lCustomers := TMVCActiveRecord.SelectByNamedQuery<TCustomer>('GetAllCustomers', [], [], [loIgnoreNotExistentFields]);
|
||||||
|
try
|
||||||
|
for var lCustomer in lCustomers do
|
||||||
|
begin
|
||||||
|
Log(Format('%4d - %8.5s - %s', [lCustomer.ID.ValueOrDefault, lCustomer.Code.ValueOrDefault,
|
||||||
|
lCustomer.CompanyName.ValueOrDefault]));
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
lCustomers.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
Log('** Named RQL Query');
|
Log('** Named RQL Query');
|
||||||
Log('QueryRQL: RatingLessThanPar');
|
Log('QueryRQL: RatingLessThanPar');
|
||||||
lCustomers := TMVCActiveRecord.SelectRQLByNamedQuery<TCustomer>('RatingLessThanPar', [4], 1000);
|
lCustomers := TMVCActiveRecord.SelectRQLByNamedQuery<TCustomer>('RatingLessThanPar', [4], 1000);
|
||||||
@ -774,7 +818,6 @@ begin
|
|||||||
lCustomersList.Free;
|
lCustomersList.Free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
Log('QueryRQL: RatingEqualsToPar');
|
Log('QueryRQL: RatingEqualsToPar');
|
||||||
lCustomers := TMVCActiveRecord.SelectRQLByNamedQuery<TCustomer>('RatingEqualsToPar', [3], 1000);
|
lCustomers := TMVCActiveRecord.SelectRQLByNamedQuery<TCustomer>('RatingEqualsToPar', [3], 1000);
|
||||||
try
|
try
|
||||||
@ -787,7 +830,16 @@ begin
|
|||||||
lCustomers.Free;
|
lCustomers.Free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
//RatingLessThanPar
|
||||||
|
var lTmpRQLQueryWithName: TRQLQueryWithName;
|
||||||
|
if TMVCActiveRecord.TryGetRQLQuery<TCustomer>('RatingLessThanPar', lTmpRQLQueryWithName) then
|
||||||
|
begin
|
||||||
|
Log(Format('"%s" RQLQuery is available with text: %s', [lTmpRQLQueryWithName.Name, lTmpRQLQueryWithName.RQLText]));
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Log(Format('"%s" RQLQuery is not available', ['RatingLessThanPar']));
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainForm.btnNullablesClick(Sender: TObject);
|
procedure TMainForm.btnNullablesClick(Sender: TObject);
|
||||||
@ -2033,20 +2085,20 @@ begin
|
|||||||
btnJSON_XML_Types.Enabled := ActiveRecordConnectionsRegistry.GetCurrentBackend = 'postgresql';
|
btnJSON_XML_Types.Enabled := ActiveRecordConnectionsRegistry.GetCurrentBackend = 'postgresql';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainForm.LoadCustomers;
|
procedure TMainForm.LoadCustomers(const HowManyCustomers: Integer = 50);
|
||||||
var
|
var
|
||||||
lCustomer: TCustomer;
|
lCustomer: TCustomer;
|
||||||
I: Integer;
|
I: Integer;
|
||||||
begin
|
begin
|
||||||
TMVCActiveRecord.DeleteAll(TCustomer);
|
TMVCActiveRecord.DeleteAll(TCustomer);
|
||||||
for I := 1 to 50 do
|
for I := 1 to HowManyCustomers do
|
||||||
begin
|
begin
|
||||||
lCustomer := TCustomer.Create;
|
lCustomer := TCustomer.Create;
|
||||||
try
|
try
|
||||||
lCustomer.CompanyName := Stuff[Random(4)] + ' ' + CompanySuffix[Random(5)];
|
lCustomer.CompanyName := Stuff[Random(4)] + ' ' + CompanySuffix[Random(5)];
|
||||||
lCustomer.Code := Random(100).ToString.PadLeft(5, '0');
|
lCustomer.Code := Random(100).ToString.PadLeft(5, '0');
|
||||||
lCustomer.City := Cities[Random(4)];
|
lCustomer.City := Cities[Random(4)];
|
||||||
lCustomer.Rating := Random(5);
|
lCustomer.Rating := I mod 6;
|
||||||
lCustomer.Note := Stuff[Random(4)];
|
lCustomer.Note := Stuff[Random(4)];
|
||||||
lCustomer.Insert;
|
lCustomer.Insert;
|
||||||
finally
|
finally
|
||||||
|
@ -593,6 +593,197 @@
|
|||||||
<Operation>0</Operation>
|
<Operation>0</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectAndroidManifest">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXDebug">
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXEntitlements">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXInfoPList">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXResource">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Required="true" Name="ProjectOutput">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Linux64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectUWPManifest">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSEntitlements">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSInfoPList">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSLaunchScreen">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSResource">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo150">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo44">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
<DeployClass Name="iOS_AppStore1024">
|
<DeployClass Name="iOS_AppStore1024">
|
||||||
<Platform Name="iOSDevice64">
|
<Platform Name="iOSDevice64">
|
||||||
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
@ -793,197 +984,6 @@
|
|||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="ProjectAndroidManifest">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSDeviceDebug">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSEntitlements">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSInfoPList">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSLaunchScreen">
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
|
||||||
<Operation>64</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
|
||||||
<Operation>64</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSResource">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXDebug">
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXEntitlements">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXInfoPList">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>Contents</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>Contents</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>Contents</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXResource">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>Contents\Resources</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>Contents\Resources</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>Contents\Resources</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Required="true" Name="ProjectOutput">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Linux64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOutput_Android32">
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectUWPManifest">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="UWP_DelphiLogo150">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="UWP_DelphiLogo44">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||||
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
||||||
<ProjectRoot Platform="iOSDevice" Name="$(PROJECTNAME).app"/>
|
<ProjectRoot Platform="iOSDevice" Name="$(PROJECTNAME).app"/>
|
||||||
|
@ -598,3 +598,25 @@ ALTER TABLE ONLY public.phones
|
|||||||
-- PostgreSQL database dump complete
|
-- PostgreSQL database dump complete
|
||||||
--
|
--
|
||||||
|
|
||||||
|
|
||||||
|
drop function if exists sp_get_customers;
|
||||||
|
create or replace function sp_get_customers() returns table(
|
||||||
|
id bigint,
|
||||||
|
code varchar,
|
||||||
|
description varchar,
|
||||||
|
city varchar,
|
||||||
|
rating integer)
|
||||||
|
language plpgsql
|
||||||
|
as
|
||||||
|
$$
|
||||||
|
begin
|
||||||
|
return query
|
||||||
|
select
|
||||||
|
c.id, c.code, c.description, c.city, c.rating
|
||||||
|
from
|
||||||
|
customers c
|
||||||
|
order by c.description;
|
||||||
|
end
|
||||||
|
$$;
|
||||||
|
|
||||||
|
select * from sp_get_customers();
|
@ -102,6 +102,17 @@ begin
|
|||||||
Result := StrToJSONObject('{"name":"Daniele","surname":"Teti"}');
|
Result := StrToJSONObject('{"name":"Daniele","surname":"Teti"}');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TMyController.GetSingleDataSet: TDataSet;
|
||||||
|
begin
|
||||||
|
var lDM := TdmMain.Create(nil);
|
||||||
|
try
|
||||||
|
lDM.dsPeople.Open;
|
||||||
|
Result := TFDMemTable.CloneFrom(lDM.dsPeople);
|
||||||
|
finally
|
||||||
|
lDM.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TMyController.GetMultipleDataSet: TEnumerable<TDataSet>;
|
function TMyController.GetMultipleDataSet: TEnumerable<TDataSet>;
|
||||||
begin
|
begin
|
||||||
var lDM := TdmMain.Create(nil);
|
var lDM := TdmMain.Create(nil);
|
||||||
@ -234,17 +245,6 @@ begin
|
|||||||
.Build;
|
.Build;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TMyController.GetSingleDataSet: TDataSet;
|
|
||||||
begin
|
|
||||||
var lDM := TdmMain.Create(nil);
|
|
||||||
try
|
|
||||||
lDM.dsPeople.Open;
|
|
||||||
Result := TFDMemTable.CloneFrom(lDM.dsPeople);
|
|
||||||
finally
|
|
||||||
lDM.Free;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TMyController.GetSingleObject: TPerson;
|
function TMyController.GetSingleObject: TPerson;
|
||||||
begin
|
begin
|
||||||
Result := TPerson.Create('Daniele', 'Teti', YearsBetween(Date, EncodeDateDay(1979, 1)));
|
Result := TPerson.Create('Daniele', 'Teti', YearsBetween(Date, EncodeDateDay(1979, 1)));
|
Loading…
Reference in New Issue
Block a user