dasdk.pas 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  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 = Reference to Procedure (res : JSValue);
  20. TDAFailedEvent = Reference to Procedure (response : TROMessage; Err : TJSError);
  21. TDALoginSuccessEvent = Reference to Procedure (result : Boolean; UserInfo : TDAUserInfo);
  22. TDABaseLoginService = class external name 'RemObjects.DataAbstract.Server.SimpleLoginService' (TJSObject)
  23. Private
  24. fMessage : TROMessage;
  25. fChannel : TROClientChannel;
  26. fServiceName : String;
  27. Public
  28. Constructor new(ch : TROHTTPClientChannel; msg : TROMessage; aServiceName : string);
  29. Procedure LoginEx(aLoginString :String; aSuccess : TDALoginSuccessEvent; aFailure : TDAFailedEvent);
  30. Procedure Logout(aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  31. Property Message : TROMessage Read fMessage;
  32. Property Channel : TROClientChannel Read fChannel;
  33. Property ServiceName : String Read fServiceName;
  34. end;
  35. TDASimpleLoginService = class external name 'RemObjects.DataAbstract.Server.SimpleLoginService' (TDABaseLoginService)
  36. Public
  37. Procedure Login(aUserId,aPassword :String; aSuccess : TDALoginSuccessEvent; aFailure : TDAFailedEvent);
  38. end;
  39. TDAStringArray = class external name 'RemObjects.DataAbstract.Server.StringArray'
  40. Public
  41. constructor new;
  42. procedure fromObject(aItems : array of string); overload;
  43. end;
  44. TDADataParameterData = Record
  45. Name: string;
  46. Value : JSValue;
  47. End;
  48. TDADataParameterDataArray = array of TDADataParameterData;
  49. TDADataParameter = class external name 'RemObjects.DataAbstract.Server.DataParameter' (TROStructType)
  50. Public
  51. constructor new;
  52. Procedure fromObject(aItem : TDADataParameterData); overload;
  53. Public
  54. Name : TROValue;
  55. Value : TROValue;
  56. end;
  57. TDADataParameterArray = class external name 'RemObjects.DataAbstract.Server.DataParameterArray' (TROArrayType)
  58. Public
  59. constructor new;
  60. Procedure fromObject(aItems : Array of TDADataParameterData); overload;
  61. function toObject : TDADataParameterDataArray; reintroduce;
  62. Public
  63. items : Array of TDADataParameter;
  64. end;
  65. TDAColumnSortingData = record
  66. FieldName : String;
  67. SortDirection : String;
  68. end;
  69. TDAColumnSortingDataArray = Array of TDAColumnSortingData;
  70. TDAColumnSorting = class external name 'RemObjects.DataAbstract.Server.ColumnSorting' (TROStructType)
  71. Public
  72. FieldName : TROValue;
  73. Direction : TROValue;
  74. end;
  75. TDAColumnSortingArray = class external name 'RemObjects.DataAbstract.Server.ColumnSortingArray' (TROArrayType)
  76. Public
  77. constructor new;
  78. Procedure fromObject(aItems : Array of TDAColumnSortingData); overload;
  79. function toObject : TDAColumnSortingDataArray; reintroduce;
  80. Public
  81. items : Array of TDAColumnSorting;
  82. end;
  83. TDATableRequestInfoData = record
  84. IncludeSchema : boolean;
  85. MaxRecords : Integer;
  86. Parameters : TDADataParameterDataArray;
  87. UserFilter : String;
  88. end;
  89. TDATableRequestInfoDataArray = array of TDATableRequestInfoData;
  90. TDATableRequestInfo = class external name 'RemObjects.DataAbstract.Server.TableRequestInfo' (TROStructType)
  91. Public
  92. constructor new;
  93. procedure fromObject(aItem : TDATableRequestInfoData);reintroduce; overload;
  94. procedure fromObject(aItem : TJSObject);reintroduce; overload;
  95. Function toObject : TDATableRequestInfoData; reintroduce;
  96. Public
  97. IncludeSchema : TROValue;
  98. MaxRecords : TROValue;
  99. Parameters : TROValue;
  100. UserFilter : TROValue;
  101. end;
  102. TDATableRequestInfoV5Data = record
  103. DynamicSelectFieldNames : Array of string;
  104. IncludeSchema : boolean;
  105. MaxRecords : Integer;
  106. Parameters : Array of TDADataParameterData;
  107. UserFilter : String;
  108. Sorting : TDAColumnSortingData;
  109. WhereClause : String;
  110. end;
  111. TDATableRequestInfoV5 = class external name 'RemObjects.DataAbstract.Server.TableRequestInfoV5' (TROStructType)
  112. Public
  113. constructor new;
  114. procedure fromObject(aItem : TDATableRequestInfoV5Data);reintroduce;overload;
  115. procedure fromObject(aItem : TJSObject);reintroduce;overload;
  116. function toObject : TDATableRequestInfoV5Data;reintroduce;
  117. Public
  118. DynamicSelectFieldNames : TROValue;
  119. IncludeSchema : TROValue;
  120. MaxRecords : TROValue;
  121. Parameters : TROValue;
  122. UserFilter : TROValue;
  123. Sorting : TROValue;
  124. WhereClause : TROValue;
  125. end;
  126. TDATableRequestInfoV6Data = record
  127. IncludeSchema : boolean;
  128. MaxRecords : Integer;
  129. Parameters : Array of TDADataParameterData;
  130. SQL : String;
  131. UserFilter : String;
  132. end;
  133. TDATableRequestInfoV6 = class external name 'RemObjects.DataAbstract.Server.TableRequestInfoV6' (TROStructType)
  134. Public
  135. constructor new;
  136. procedure fromObject(aItem : TDATableRequestInfoData);reintroduce;overload;
  137. procedure fromObject(aItem : TJSObject);reintroduce;overload;
  138. function toObject : TDATableRequestInfoV6Data;reintroduce;
  139. Public
  140. IncludeSchema : TROValue;
  141. MaxRecords : TROValue;
  142. Parameters : TDADataParameterArray;
  143. Sql : TROValue;
  144. UserFilter : TROValue;
  145. end;
  146. TDAUserInfoData = record
  147. Attributes : array of JSValue;
  148. Privileges : Array of string;
  149. SessionID : String;
  150. UserData : JSValue;
  151. UserID : String;
  152. end;
  153. TDAUserInfo = class external name 'RemObjects.DataAbstract.Server.UserInfo' (TROStructType)
  154. Public
  155. constructor new;
  156. procedure fromObject(aItem : TDAUserInfo);reintroduce; overload;
  157. procedure fromObject(aItem : TJSObject);reintroduce; overload;
  158. function toObject : TDAUserInfoData;reintroduce;
  159. Attributes : TROValue;
  160. Privileges : TROValue;
  161. SessionID : TROValue;
  162. UserData : TROValue;
  163. UserID : TROValue;
  164. end;
  165. TDATableRequestInfoArray = class external name 'RemObjects.DataAbstract.Server.TableRequestInfoArray' (TROArrayType)
  166. Public
  167. constructor new;
  168. procedure fromObject(aItems : Array of TDATableRequestInfoData);overload;
  169. procedure fromObject(aItems : Array of TDATableRequestInfoV5Data);overload;
  170. procedure fromObject(aItems : Array of TDATableRequestInfoV6Data);overload;
  171. Public
  172. items : array of TDATableRequestInfo;
  173. end;
  174. TDADataAbstractService = class external name 'RemObjects.DataAbstract.Server.DataAbstractService'
  175. Public
  176. Constructor new(ch : TROHTTPClientChannel; msg : TROMessage; aServiceName : string);
  177. Procedure GetSchema(aFilter : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  178. Procedure GetData(aTables : TDAStringArray; info : TDATableRequestInfoArray; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  179. Procedure UpdateData(aDelta : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  180. Procedure ExecuteCommand(aCommandName : String; params : TDADataParameterArray; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  181. Procedure ExecuteCommandEx(aCommandName : String; params : TDADataParameterArray; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  182. Procedure GetTableSchema(aTableNameArray : TDAStringArray;aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  183. Procedure GetCommandSchema(aCommandNameArray : TDAStringArray;aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  184. Procedure GetSQLData(aSQLText : String; aIncludeSchema : Boolean; aMaxRecords : Integer; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  185. Procedure GetSQLDataEx(aSQLText : String; aIncludeSchema : Boolean; aMaxRecords : Integer; aDynamicWhereXML : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  186. Procedure SQLExecuteCommand(aSQLText : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  187. Procedure SQLExecuteCommandEx(aSQLText,aDynamicWhereXML : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  188. Procedure getDatasetScripts(DatasetNames : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  189. Procedure RegisterForDataChangeNotification(aTableName : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  190. Procedure UnregisterForDataChangeNotification(aTableName : String; aSuccess : TDASuccessEvent; aFailure : TDAFailedEvent);
  191. end;
  192. implementation
  193. end.