mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-23 12:51:47 +02:00
* Fixed and simplified example
git-svn-id: trunk@15817 -
This commit is contained in:
parent
a9adb698cb
commit
1e0228d72b
@ -24,6 +24,7 @@ type
|
||||
AResponse: TResponse; var Handled: Boolean);
|
||||
private
|
||||
{ private declarations }
|
||||
procedure GetAdaptorAndFormatter(P : TFPWebDataProvider; Var F :TExtJSDataFormatter; ARequest : TRequest; AResponse : TResponse);
|
||||
public
|
||||
{ public declarations }
|
||||
end;
|
||||
@ -55,6 +56,26 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFPWebModule1.GetAdaptorAndFormatter(P : TFPWebDataProvider; Var F :TExtJSDataFormatter; ARequest : TRequest; AResponse : TResponse);
|
||||
|
||||
begin
|
||||
If Request.QueryFields.values['format']='xml' then
|
||||
begin
|
||||
F:=TExtJSXMLDataFormatter.Create(Self);
|
||||
TExtJSXMLDataFormatter(F).TotalProperty:='total';
|
||||
AResponse.ContentType:='text/xml';
|
||||
P.Adaptor:=TExtJSXMLWebdataInputAdaptor.Create(Nil);
|
||||
end
|
||||
else
|
||||
begin
|
||||
P.Adaptor:=TExtJSJSonWebdataInputAdaptor.Create(Nil);
|
||||
F:=TExtJSJSONDataFormatter.Create(Self);
|
||||
end;
|
||||
P.Adaptor.Request:=ARequest;
|
||||
F.Adaptor:=P.Adaptor;
|
||||
F.Provider:=P;
|
||||
end;
|
||||
|
||||
procedure TFPWebModule1.TFPWebActions0Request(Sender: TObject;
|
||||
ARequest: TRequest; AResponse: TResponse; var Handled: Boolean);
|
||||
|
||||
@ -69,19 +90,9 @@ Var
|
||||
begin
|
||||
// Providername;
|
||||
PN:=ARequest.GetNextPathInfo;
|
||||
// P:=GetWebDataProvider(PN);
|
||||
P:=TFPWebDataProvider.Create(Self);
|
||||
try
|
||||
P.Adaptor:=TWebDataInputAdaptor.Create(Self);
|
||||
P.Adaptor.Request:=ARequest;
|
||||
If Request.QueryFields.values['format']='xml' then
|
||||
begin
|
||||
F:=TExtJSXMLDataFormatter.Create(Self);
|
||||
TExtJSXMLDataFormatter(F).TotalProperty:='total';
|
||||
AResponse.ContentType:='text/xml';
|
||||
end
|
||||
else
|
||||
F:=TExtJSJSONDataFormatter.Create(Self);
|
||||
GetAdaptorAndFormatter(P,F,ARequest,AResponse);
|
||||
{$ifdef wmdebug} SendDebug(className+' '+F.ClassName);{$endif}
|
||||
try
|
||||
DS:=TDatasource.Create(Self);
|
||||
@ -90,11 +101,9 @@ begin
|
||||
DS.Dataset:=DBf1;
|
||||
DBF1.Open;
|
||||
try
|
||||
F.ADaptor:=P.Adaptor;
|
||||
P.Datasource:=DS;
|
||||
P.Adaptor.Action:=wdaRead;
|
||||
P.ApplyParams;
|
||||
F.Provider:=P;
|
||||
M:=TMemoryStream.Create;
|
||||
try
|
||||
F.GetContent(ARequest,M,Handled);
|
||||
@ -137,18 +146,7 @@ begin
|
||||
P:=TFPWebDataProvider.Create(Self);
|
||||
try
|
||||
P.IDFieldName:='ID';
|
||||
If Request.QueryFields.values['format']='xml' then
|
||||
begin
|
||||
F:=TExtJSXMLDataFormatter.Create(Self);
|
||||
AResponse.ContentType:='text/xml';
|
||||
P.Adaptor:=TWebDataInputAdaptor.Create(Self);
|
||||
end
|
||||
else
|
||||
begin
|
||||
F:=TExtJSJSONDataFormatter.Create(Self);
|
||||
P.Adaptor:=TExtJSJSonWebdataInputAdaptor.Create(Self);
|
||||
end;
|
||||
P.Adaptor.Request:=ARequest;
|
||||
GetAdaptorAndFormatter(P,F,ARequest,AResponse);
|
||||
{$ifdef wmdebug} SendDebug(className+' '+F.ClassName);{$endif}
|
||||
try
|
||||
DS:=TDatasource.Create(Self);
|
||||
@ -157,11 +155,9 @@ begin
|
||||
DS.Dataset:=DBf1;
|
||||
DBF1.Open;
|
||||
try
|
||||
F.ADaptor:=P.Adaptor;
|
||||
P.Datasource:=DS;
|
||||
P.Adaptor.Action:=wdaInsert;
|
||||
P.ApplyParams;
|
||||
F.Provider:=P;
|
||||
M:=TMemoryStream.Create;
|
||||
try
|
||||
F.GetContent(ARequest,M,Handled);
|
||||
@ -205,19 +201,7 @@ begin
|
||||
P:=TFPWebDataProvider.Create(Self);
|
||||
try
|
||||
P.IDFieldName:='ID';
|
||||
If Request.QueryFields.values['format']='xml' then
|
||||
begin
|
||||
{$ifdef wmdebug} SendDebug('Update request received in XML');{$endif}
|
||||
F:=TExtJSXMLDataFormatter.Create(Self);
|
||||
AResponse.ContentType:='text/xml';
|
||||
P.Adaptor:=TWebDataInputAdaptor.Create(Self);
|
||||
end
|
||||
else
|
||||
begin
|
||||
F:=TExtJSJSONDataFormatter.Create(Self);
|
||||
P.Adaptor:=TExtJSJSonWebdataInputAdaptor.Create(Self);
|
||||
end;
|
||||
P.Adaptor.Request:=ARequest;
|
||||
GetAdaptorAndFormatter(P,F,ARequest,AResponse);
|
||||
{$ifdef wmdebug} SendDebug(className+' '+F.ClassName);{$endif}
|
||||
try
|
||||
DS:=TDatasource.Create(Self);
|
||||
@ -226,11 +210,9 @@ begin
|
||||
DS.Dataset:=DBf1;
|
||||
DBF1.Open;
|
||||
try
|
||||
F.ADaptor:=P.Adaptor;
|
||||
P.Datasource:=DS;
|
||||
P.Adaptor.Action:=wdaUpdate;
|
||||
P.ApplyParams;
|
||||
F.Provider:=P;
|
||||
M:=TMemoryStream.Create;
|
||||
try
|
||||
F.GetContent(ARequest,M,Handled);
|
||||
@ -274,18 +256,7 @@ begin
|
||||
P:=TFPWebDataProvider.Create(Self);
|
||||
try
|
||||
P.IDFieldName:='ID';
|
||||
If Request.QueryFields.values['format']='xml' then
|
||||
begin
|
||||
F:=TExtJSXMLDataFormatter.Create(Self);
|
||||
AResponse.ContentType:='text/xml';
|
||||
P.Adaptor:=TWebDataInputAdaptor.Create(Self);
|
||||
end
|
||||
else
|
||||
begin
|
||||
F:=TExtJSJSONDataFormatter.Create(Self);
|
||||
P.Adaptor:=TExtJSJSonWebdataInputAdaptor.Create(Self);
|
||||
end;
|
||||
P.Adaptor.Request:=ARequest;
|
||||
GetAdaptorAndFormatter(P,F,ARequest,AResponse);
|
||||
{$ifdef wmdebug} SendDebug('className '+F.ClassName);{$endif}
|
||||
try
|
||||
DS:=TDatasource.Create(Self);
|
||||
@ -294,11 +265,9 @@ begin
|
||||
DS.Dataset:=DBf1;
|
||||
DBF1.Open;
|
||||
try
|
||||
F.ADaptor:=P.Adaptor;
|
||||
P.Datasource:=DS;
|
||||
P.Adaptor.Action:=wdaDelete;
|
||||
P.ApplyParams;
|
||||
F.Provider:=P;
|
||||
M:=TMemoryStream.Create;
|
||||
try
|
||||
F.GetContent(ARequest,M,Handled);
|
||||
|
Loading…
Reference in New Issue
Block a user