wmusers.pp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. unit wmusers;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, FileUtil, LResources, 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. Type
  27. { TDBFWebDataProvider }
  28. TDBFWebDataProvider = Class(TFPCustomWebDataProvider)
  29. FDBF : TDBF;
  30. Public
  31. Constructor Create(AOwner : TComponent); override;
  32. Function GetDataset : TDataset; override;
  33. end;
  34. { TDBFWebDataProvider }
  35. constructor TDBFWebDataProvider.Create(AOwner: TComponent);
  36. begin
  37. inherited Create(AOwner);
  38. FDBF:=TDBF.Create(Self);
  39. FDBF.TableName:=ExtractFilePath(ParamStr(0))+'users.dbf';
  40. FDBF.Open;
  41. With FDBF.FieldByname('ID') do
  42. ProviderFlags:=ProviderFlags+[pfInKey];
  43. end;
  44. function TDBFWebDataProvider.GetDataset: TDataset;
  45. begin
  46. Result:=FDBF;
  47. end;
  48. { TFPWebProviderDataModule2 }
  49. procedure TFPWebProviderDataModule2.DataModuleGetInputAdaptor(Sender: TObject;
  50. var AInputAdaptor: TCustomWebdataInputAdaptor);
  51. begin
  52. If Request.QueryFields.values['format']='xml' then
  53. AInputAdaptor:=ExtJSXMLWebdataInputAdaptor1;
  54. end;
  55. procedure TFPWebProviderDataModule2.DataModuleGetContentProducer(
  56. Sender: TObject; var AContentProducer: TCustomHTTPDataContentProducer);
  57. begin
  58. If Request.QueryFields.values['format']='xml' then
  59. AContentProducer:=ExtJSXMLDataFormatter1;
  60. end;
  61. initialization
  62. {$I wmusers.lrs}
  63. RegisterHTTPModule('Provider', TFPWebProviderDataModule2);
  64. WebDataProviderManager.RegisterProvider('AName',TDBFWebDataProvider);
  65. end.