fpc/packages/fcl-web/examples/webdata/demo5/wmusers.pp
michael 86a5871ba4 * Lazarus is no longer needed for the examples
git-svn-id: trunk@17740 -
2011-06-13 12:57:32 +00:00

86 lines
2.1 KiB
ObjectPascal

unit wmusers;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, HTTPDefs, websession, fpHTTP, fpWeb,
db, dbf, fpwebdata, extjsjson, extjsxml;
type
{ TFPWebProviderDataModule2 }
TFPWebProviderDataModule2 = class(TFPWebProviderDataModule)
ExtJSJSONDataFormatter1: TExtJSJSONDataFormatter;
ExtJSJSonWebdataInputAdaptor1: TExtJSJSonWebdataInputAdaptor;
ExtJSXMLDataFormatter1: TExtJSXMLDataFormatter;
ExtJSXMLWebdataInputAdaptor1: TExtJSXMLWebdataInputAdaptor;
procedure DataModuleGetContentProducer(Sender: TObject;
var AContentProducer: TCustomHTTPDataContentProducer);
procedure DataModuleGetInputAdaptor(Sender: TObject;
var AInputAdaptor: TCustomWebdataInputAdaptor);
private
{ private declarations }
public
{ public declarations }
end;
var
FPWebProviderDataModule2: TFPWebProviderDataModule2;
implementation
{$R *.lfm}
Type
{ TDBFWebDataProvider }
TDBFWebDataProvider = Class(TFPCustomWebDataProvider)
FDBF : TDBF;
Public
Constructor Create(AOwner : TComponent); override;
Function GetDataset : TDataset; override;
end;
{ TDBFWebDataProvider }
constructor TDBFWebDataProvider.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FDBF:=TDBF.Create(Self);
FDBF.TableName:=ExtractFilePath(ParamStr(0))+'users.dbf';
FDBF.Open;
With FDBF.FieldByname('ID') do
ProviderFlags:=ProviderFlags+[pfInKey];
end;
function TDBFWebDataProvider.GetDataset: TDataset;
begin
Result:=FDBF;
end;
{ TFPWebProviderDataModule2 }
procedure TFPWebProviderDataModule2.DataModuleGetInputAdaptor(Sender: TObject;
var AInputAdaptor: TCustomWebdataInputAdaptor);
begin
If Request.QueryFields.values['format']='xml' then
AInputAdaptor:=ExtJSXMLWebdataInputAdaptor1;
end;
procedure TFPWebProviderDataModule2.DataModuleGetContentProducer(
Sender: TObject; var AContentProducer: TCustomHTTPDataContentProducer);
begin
If Request.QueryFields.values['format']='xml' then
AContentProducer:=ExtJSXMLDataFormatter1;
end;
initialization
RegisterHTTPModule('Provider', TFPWebProviderDataModule2);
WebDataProviderManager.RegisterProvider('AName',TDBFWebDataProvider);
end.