2
0

wmusers.pp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. unit wmusers;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, FileUtil, LResources, HTTPDefs, websession, fpHTTP, fpWeb,
  6. IBConnection, sqldb, fpwebdata, extjsjson, extjsxml, sqldbwebdata;
  7. type
  8. { TFPWebProviderDataModule1 }
  9. TFPWebProviderDataModule1 = class(TFPWebProviderDataModule)
  10. ExtJSJSONDataFormatter1: TExtJSJSONDataFormatter;
  11. ExtJSJSonWebdataInputAdaptor1: TExtJSJSonWebdataInputAdaptor;
  12. ExtJSXMLDataFormatter1: TExtJSXMLDataFormatter;
  13. ExtJSXMLWebdataInputAdaptor1: TExtJSXMLWebdataInputAdaptor;
  14. IBConnection1: TIBConnection;
  15. ANAME: TSQLDBWebDataProvider;
  16. QGetID: TSQLQuery;
  17. SQLQuery1: TSQLQuery;
  18. SQLTransaction1: TSQLTransaction;
  19. procedure ANAMEGetNewID(Sender: TObject; out AID: String);
  20. procedure DataModuleCreate(Sender: TObject);
  21. procedure DataModuleGetContentProducer(Sender: TObject;
  22. var AContentProducer: TCustomHTTPDataContentProducer);
  23. procedure DataModuleGetInputAdaptor(Sender: TObject;
  24. var AInputAdaptor: TCustomWebdataInputAdaptor);
  25. private
  26. { private declarations }
  27. public
  28. { public declarations }
  29. end;
  30. var
  31. FPWebProviderDataModule1: TFPWebProviderDataModule1;
  32. implementation
  33. uses inifiles;
  34. { TFPWebProviderDataModule1 }
  35. procedure TFPWebProviderDataModule1.DataModuleGetContentProducer(
  36. Sender: TObject; var AContentProducer: TCustomHTTPDataContentProducer);
  37. begin
  38. If Request.QueryFields.values['format']='xml' then
  39. AContentProducer:=ExtJSXMLDataFormatter1;
  40. end;
  41. procedure TFPWebProviderDataModule1.DataModuleCreate(Sender: TObject);
  42. Var
  43. FN : String;
  44. Ini : TMemIniFile;
  45. begin
  46. FN:=ChangeFileExt(Paramstr(0),'.ini');
  47. If FileExists(FN) then
  48. begin
  49. Ini:=TMemIniFile.Create(FN);
  50. try
  51. With IBConnection1 do
  52. begin
  53. DatabaseName:=Ini.ReadString('Database','Path',DatabaseName);
  54. UserName:=Ini.ReadString('Database','UserName',UserName);
  55. Password:=Ini.ReadString('Database','Password',Password);
  56. end;
  57. finally
  58. Ini.Free;
  59. end;
  60. end;
  61. IBConnection1.Connected:=True;
  62. end;
  63. procedure TFPWebProviderDataModule1.ANAMEGetNewID(Sender: TObject; out
  64. AID: String);
  65. begin
  66. With QGetID Do
  67. begin
  68. Close;
  69. Open;
  70. try
  71. if (EOF and BOF) then
  72. Raise Exception.Create('No ID generated');
  73. AID:=Fields[0].AsString;
  74. finally
  75. Close;
  76. end;
  77. end;
  78. end;
  79. procedure TFPWebProviderDataModule1.DataModuleGetInputAdaptor(Sender: TObject;
  80. var AInputAdaptor: TCustomWebdataInputAdaptor);
  81. begin
  82. If Request.QueryFields.values['format']='xml' then
  83. AInputAdaptor:=ExtJSXMLWebdataInputAdaptor1;
  84. end;
  85. initialization
  86. {$I wmusers.lrs}
  87. RegisterHTTPModule('Provider', TFPWebProviderDataModule1);
  88. end.