dasdk.pas 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 2018 by Michael Van Canneyt, member of the
  4. Free Pascal development team
  5. Remobjects Data Abstract external classes definitions
  6. See the file COPYING.FPC, included in this distribution,
  7. for details about the copyright.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  11. **********************************************************************}
  12. unit dasdk;
  13. {$mode objfpc}
  14. {$modeswitch externalclass}
  15. interface
  16. uses JS, ROSDK;
  17. Type
  18. TDAUserInfo = Class;
  19. TDASuccessEvent = Procedure (res : JSValue) of object;
  20. TDAFailedEvent = Procedure (response : TJSOBject; fail : String) of object;
  21. TDALoginSuccessEvent = Reference to Procedure (result : Boolean; UserInfo : TDAUserInfo);
  22. TDABaseLoginService = class external name 'RemObjects.DataAbstract.Server.SimpleLoginService' (TJSObject)
  23. Public
  24. Constructor new(ch : TROHTTPClientChannel; msg : TROMessage; aServiceName : string);
  25. Procedure LoginEx(aLoginString :String; aSuccess : TDALoginSuccessEvent; aFailure : TDAFailedEvent);
  26. Procedure Logout(aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  27. end;
  28. TDASimpleLoginService = class external name 'RemObjects.DataAbstract.Server.SimpleLoginService' (TDABaseLoginService)
  29. Public
  30. Procedure Login(aUserId,aPassword :String; aSuccess : TDALoginSuccessEvent; aFailure : TDAFailedEvent);
  31. end;
  32. TDAStringArray = class external name 'RemObjects.DataAbstract.Server.StringArray'
  33. Public
  34. constructor new;
  35. procedure fromObject(aItems : array of string); overload;
  36. end;
  37. TDADataParameterData = Record
  38. Name: string;
  39. Value : JSValue;
  40. End;
  41. TDADataParameterDataArray = array of TDADataParameterData;
  42. TDADataParameter = class external name 'RemObjects.DataAbstract.Server.DataParameter' (TROStructType)
  43. Public
  44. constructor new;
  45. Procedure fromObject(aItem : TDADataParameterData); overload;
  46. Public
  47. Name : TROValue;
  48. Value : TROValue;
  49. end;
  50. TDADataParameterArray = class external name 'RemObjects.DataAbstract.Server.DataParameterArray' (TROArrayType)
  51. Public
  52. constructor new;
  53. Procedure fromObject(aItems : Array of TDADataParameterData); overload;
  54. function toObject : TDADataParameterDataArray; reintroduce;
  55. Public
  56. items : Array of TDADataParameter;
  57. end;
  58. TDAColumnSortingData = record
  59. FieldName : String;
  60. SortDirection : String;
  61. end;
  62. TDAColumnSortingDataArray = Array of TDAColumnSortingData;
  63. TDAColumnSorting = class external name 'RemObjects.DataAbstract.Server.ColumnSorting' (TROStructType)
  64. Public
  65. FieldName : TROValue;
  66. Direction : TROValue;
  67. end;
  68. TDAColumnSortingArray = class external name 'RemObjects.DataAbstract.Server.ColumnSortingArray' (TROArrayType)
  69. Public
  70. constructor new;
  71. Procedure fromObject(aItems : Array of TDAColumnSortingData); overload;
  72. function toObject : TDAColumnSortingDataArray; reintroduce;
  73. Public
  74. items : Array of TDAColumnSorting;
  75. end;
  76. TDATableRequestInfoData = record
  77. IncludeSchema : boolean;
  78. MaxRecords : Integer;
  79. Parameters : TDADataParameterDataArray;
  80. UserFilter : String;
  81. end;
  82. TDATableRequestInfoDataArray = array of TDATableRequestInfoData;
  83. TDATableRequestInfo = class external name 'RemObjects.DataAbstract.Server.TableRequestInfo' (TROStructType)
  84. Public
  85. constructor new;
  86. procedure fromObject(aItem : TDATableRequestInfoData);reintroduce; overload;
  87. procedure fromObject(aItem : TJSObject);reintroduce; overload;
  88. Function toObject : TDATableRequestInfoData; reintroduce;
  89. Public
  90. IncludeSchema : TROValue;
  91. MaxRecords : TROValue;
  92. Parameters : TROValue;
  93. UserFilter : TROValue;
  94. end;
  95. TDATableRequestInfoV5Data = record
  96. DynamicSelectFieldNames : Array of string;
  97. IncludeSchema : boolean;
  98. MaxRecords : Integer;
  99. Parameters : Array of TDADataParameterData;
  100. UserFilter : String;
  101. Sorting : TDAColumnSortingData;
  102. WhereClause : String;
  103. end;
  104. TDATableRequestInfoV5 = class external name 'RemObjects.DataAbstract.Server.TableRequestInfoV5' (TROStructType)
  105. Public
  106. constructor new;
  107. procedure fromObject(aItem : TDATableRequestInfoV5Data);reintroduce;overload;
  108. procedure fromObject(aItem : TJSObject);reintroduce;overload;
  109. function toObject : TDATableRequestInfoV5Data;reintroduce;
  110. Public
  111. DynamicSelectFieldNames : TROValue;
  112. IncludeSchema : TROValue;
  113. MaxRecords : TROValue;
  114. Parameters : TROValue;
  115. UserFilter : TROValue;
  116. Sorting : TROValue;
  117. WhereClause : TROValue;
  118. end;
  119. TDATableRequestInfoV6Data = record
  120. IncludeSchema : boolean;
  121. MaxRecords : Integer;
  122. Parameters : Array of TDADataParameterData;
  123. SQL : String;
  124. UserFilter : String;
  125. end;
  126. TDATableRequestInfoV6 = class external name 'RemObjects.DataAbstract.Server.TableRequestInfoV6' (TROStructType)
  127. Public
  128. constructor new;
  129. procedure fromObject(aItem : TDATableRequestInfoData);reintroduce;overload;
  130. procedure fromObject(aItem : TJSObject);reintroduce;overload;
  131. function toObject : TDATableRequestInfoV6Data;reintroduce;
  132. Public
  133. IncludeSchema : TROValue;
  134. MaxRecords : TROValue;
  135. Parameters : TDADataParameterArray;
  136. Sql : TROValue;
  137. UserFilter : TROValue;
  138. end;
  139. TDAUserInfoData = record
  140. Attributes : array of JSValue;
  141. Privileges : Array of string;
  142. SessionID : String;
  143. UserData : JSValue;
  144. UserID : String;
  145. end;
  146. TDAUserInfo = class external name 'RemObjects.DataAbstract.Server.UserInfo' (TROStructType)
  147. constructor new;
  148. procedure fromObject(aItem : TDAUserInfo);reintroduce; overload;
  149. procedure fromObject(aItem : TJSObject);reintroduce; overload;
  150. function toObject : TDAUserInfoData;reintroduce;
  151. Public
  152. Attributes : TROValue;
  153. Privileges : TROValue;
  154. SessionID : TROValue;
  155. UserData : TROValue;
  156. UserID : TROValue;
  157. end;
  158. TDATableRequestInfoArray = class external name 'RemObjects.DataAbstract.Server.TableRequestInfoArray' (TROArrayType)
  159. Public
  160. constructor new;
  161. procedure fromObject(aItems : Array of TDATableRequestInfoData);overload;
  162. procedure fromObject(aItems : Array of TDATableRequestInfoV5Data);overload;
  163. procedure fromObject(aItems : Array of TDATableRequestInfoV6Data);overload;
  164. procedure fromObject(aItems : array of TJSObject);overload;
  165. Public
  166. items : array of TDATableRequestInfo;
  167. end;
  168. TDADataAbstractService = class external name 'RemObjects.DataAbstract.Server.DataAbstractService'
  169. Public
  170. Constructor new(ch : TROHTTPClientChannel; msg : TROMessage; aServiceName : string);
  171. Procedure GetSchema(aFilter : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  172. Procedure GetData(aTables : TDAStringArray; info : TDATableRequestInfoArray; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  173. Procedure UpdateData(aDelta : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  174. Procedure ExecuteCommand(aCommandName : String; params : TDADataParameterArray; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  175. Procedure ExecuteCommandEx(aCommandName : String; params : TDADataParameterArray; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  176. Procedure GetTableSchema(aTableNameArray : TDAStringArray;aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  177. Procedure GetCommandSchema(aCommandNameArray : TDAStringArray;aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  178. Procedure GetSQLData(aSQLText : String; aIncludeSchema : Boolean; aMaxRecords : Integer; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  179. Procedure GetSQLDataEx(aSQLText : String; aIncludeSchema : Boolean; aMaxRecords : Integer; aDynamicWhereXML : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  180. Procedure SQLExecuteCommand(aSQLText : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  181. Procedure SQLExecuteCommandEx(aSQLText,aDynamicWhereXML : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  182. Procedure getDatasetScripts(DatasetNames : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  183. Procedure RegisterForDataChangeNotification(aTableName : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  184. Procedure UnregisterForDataChangeNotification(aTableName : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  185. end;
  186. implementation
  187. end.