wmusers.pp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. unit wmusers;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, HTTPDefs, websession, fpHTTP, fpWeb,
  6. db, dbf, fpwebdata, extjsjson, extjsxml;
  7. type
  8. { TFPWebProviderDataModule2 }
  9. TFPWebProviderDataModule2 = class(TFPWebProviderDataModule)
  10. ExtJSJSONDataFormatter1: TExtJSJSONDataFormatter;
  11. ExtJSJSonWebdataInputAdaptor1: TExtJSJSonWebdataInputAdaptor;
  12. ExtJSXMLDataFormatter1: TExtJSXMLDataFormatter;
  13. ExtJSXMLWebdataInputAdaptor1: TExtJSXMLWebdataInputAdaptor;
  14. procedure DataModuleGetContentProducer(Sender: TObject;
  15. var AContentProducer: TCustomHTTPDataContentProducer);
  16. procedure DataModuleGetInputAdaptor(Sender: TObject;
  17. var AInputAdaptor: TCustomWebdataInputAdaptor);
  18. private
  19. { private declarations }
  20. public
  21. { public declarations }
  22. end;
  23. var
  24. FPWebProviderDataModule2: TFPWebProviderDataModule2;
  25. implementation
  26. {$R *.lfm}
  27. Type
  28. { TDBFWebDataProvider }
  29. TDBFWebDataProvider = Class(TFPCustomWebDataProvider)
  30. FDBF : TDBF;
  31. Public
  32. Constructor Create(AOwner : TComponent); override;
  33. Function GetDataset : TDataset; override;
  34. end;
  35. { TDBFWebDataProvider }
  36. constructor TDBFWebDataProvider.Create(AOwner: TComponent);
  37. begin
  38. inherited Create(AOwner);
  39. FDBF:=TDBF.Create(Self);
  40. FDBF.TableName:=ExtractFilePath(ParamStr(0))+'users.dbf';
  41. FDBF.Open;
  42. With FDBF.FieldByname('ID') do
  43. ProviderFlags:=ProviderFlags+[pfInKey];
  44. end;
  45. function TDBFWebDataProvider.GetDataset: TDataset;
  46. begin
  47. Result:=FDBF;
  48. end;
  49. { TFPWebProviderDataModule2 }
  50. procedure TFPWebProviderDataModule2.DataModuleGetInputAdaptor(Sender: TObject;
  51. var AInputAdaptor: TCustomWebdataInputAdaptor);
  52. begin
  53. If Request.QueryFields.values['format']='xml' then
  54. AInputAdaptor:=ExtJSXMLWebdataInputAdaptor1;
  55. end;
  56. procedure TFPWebProviderDataModule2.DataModuleGetContentProducer(
  57. Sender: TObject; var AContentProducer: TCustomHTTPDataContentProducer);
  58. begin
  59. If Request.QueryFields.values['format']='xml' then
  60. AContentProducer:=ExtJSXMLDataFormatter1;
  61. end;
  62. initialization
  63. RegisterHTTPModule('Provider', TFPWebProviderDataModule2);
  64. WebDataProviderManager.RegisterProvider('AName',TDBFWebDataProvider);
  65. end.