wmusers.pp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. unit wmusers;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, 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. {$R *.lfm}
  34. uses inifiles;
  35. { TFPWebProviderDataModule1 }
  36. procedure TFPWebProviderDataModule1.DataModuleGetContentProducer(
  37. Sender: TObject; var AContentProducer: TCustomHTTPDataContentProducer);
  38. begin
  39. If Request.QueryFields.values['format']='xml' then
  40. AContentProducer:=ExtJSXMLDataFormatter1;
  41. end;
  42. procedure TFPWebProviderDataModule1.DataModuleCreate(Sender: TObject);
  43. Var
  44. FN : String;
  45. Ini : TMemIniFile;
  46. begin
  47. FN:=ChangeFileExt(Paramstr(0),'.ini');
  48. If FileExists(FN) then
  49. begin
  50. Ini:=TMemIniFile.Create(FN);
  51. try
  52. With IBConnection1 do
  53. begin
  54. DatabaseName:=Ini.ReadString('Database','Path',DatabaseName);
  55. UserName:=Ini.ReadString('Database','UserName',UserName);
  56. Password:=Ini.ReadString('Database','Password',Password);
  57. end;
  58. finally
  59. Ini.Free;
  60. end;
  61. end;
  62. IBConnection1.Connected:=True;
  63. end;
  64. procedure TFPWebProviderDataModule1.ANAMEGetNewID(Sender: TObject; out
  65. AID: String);
  66. begin
  67. With QGetID Do
  68. begin
  69. Close;
  70. Open;
  71. try
  72. if (EOF and BOF) then
  73. Raise Exception.Create('No ID generated');
  74. AID:=Fields[0].AsString;
  75. finally
  76. Close;
  77. end;
  78. end;
  79. end;
  80. procedure TFPWebProviderDataModule1.DataModuleGetInputAdaptor(Sender: TObject;
  81. var AInputAdaptor: TCustomWebdataInputAdaptor);
  82. begin
  83. If Request.QueryFields.values['format']='xml' then
  84. AInputAdaptor:=ExtJSXMLWebdataInputAdaptor1;
  85. end;
  86. initialization
  87. RegisterHTTPModule('Provider', TFPWebProviderDataModule1);
  88. end.