|
@@ -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);
|