Consolidated ASP Classic MVC framework from best components
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

177 lignes
6.6KB

  1. <%
  2. ' Auto-generated Repository for table [Territories]
  3. ' Generated on 1/17/2026 2:53:15 PM
  4. ' Generator: GenerateRepo.vbs v1.0
  5. '
  6. ' Dependencies:
  7. ' - core/lib.DAL.asp (DAL singleton for database access)
  8. ' - core/lib.AutoMapper.asp (Automapper for object mapping)
  9. ' - core/lib.Collections.asp (LinkedList_Class)
  10. ' - core/lib.helpers.asp (KVUnzip, BuildOrderBy, QI, Destroy)
  11. Class TerritoriesRepository_Class
  12. Public Function FindByID(id)
  13. Dim sql : sql = "Select [Coordinates], [Description], [Id], [Name] FROM [Territories] WHERE [Id] = ?"
  14. Dim rs : Set rs = DAL.Query(sql, Array(id))
  15. If rs.EOF Then
  16. Err.Raise 1, "TerritoriesRepository_Class", RecordNotFoundException("Id", id)
  17. Else
  18. Set FindByID = Automapper.AutoMap(rs, "POBO_Territories")
  19. End If
  20. Destroy rs
  21. End Function
  22. Public Function GetAll(orderBy)
  23. Set GetAll = Find(Empty, orderBy)
  24. End Function
  25. Public Function Find(where_kvarray, order_string_or_array)
  26. Dim sql : sql = "Select [Coordinates], [Description], [Id], [Name] FROM [Territories]"
  27. Dim where_keys, where_values, i
  28. If Not IsEmpty(where_kvarray) Then
  29. KVUnzip where_kvarray, where_keys, where_values
  30. If Not IsEmpty(where_keys) Then
  31. sql = sql & " WHERE "
  32. For i = 0 To UBound(where_keys)
  33. If i > 0 Then sql = sql & " AND "
  34. sql = sql & " " & QI(where_keys(i)) & " = ?"
  35. Next
  36. End If
  37. End If
  38. sql = sql & BuildOrderBy(order_string_or_array, "[Id]")
  39. Dim rs : Set rs = DAL.Query(sql, where_values)
  40. Dim list : Set list = new LinkedList_Class
  41. Do Until rs.EOF
  42. list.Push Automapper.AutoMap(rs, "POBO_Territories")
  43. rs.MoveNext
  44. Loop
  45. Set Find = list
  46. Destroy rs
  47. End Function
  48. Public Function FindPaged(where_kvarray, order_string_or_array, per_page, page_num, ByRef page_count, ByRef record_count)
  49. Dim sql : sql = "Select [Coordinates], [Description], [Id], [Name] FROM [Territories]"
  50. Dim where_keys, where_values, i
  51. If Not IsEmpty(where_kvarray) Then
  52. KVUnzip where_kvarray, where_keys, where_values
  53. If Not IsEmpty(where_keys) Then
  54. sql = sql & " WHERE "
  55. For i = 0 To UBound(where_keys)
  56. If i > 0 Then sql = sql & " AND "
  57. sql = sql & " " & QI(where_keys(i)) & " = ?"
  58. Next
  59. End If
  60. End If
  61. sql = sql & BuildOrderBy(order_string_or_array, "[Id]")
  62. Dim rs : Set rs = DAL.PagedQuery(sql, where_values, per_page, page_num)
  63. If Not rs.EOF Then
  64. rs.PageSize = per_page
  65. rs.AbsolutePage = page_num
  66. page_count = rs.PageCount
  67. record_count = rs.RecordCount
  68. End If
  69. Set FindPaged = PagedList(rs, per_page)
  70. Destroy rs
  71. End Function
  72. Public Function SearchTablePaged(columns_array, search_value, order_string_or_array, per_page, page_num, ByRef page_count, ByRef record_count)
  73. Dim sql : sql = "Select [Coordinates], [Description], [Id], [Name] FROM [Territories]"
  74. Dim i, params()
  75. If IsArray(columns_array) And UBound(columns_array) >= 0 Then
  76. sql = sql & " WHERE "
  77. ReDim params(UBound(columns_array))
  78. For i = 0 To UBound(columns_array)
  79. If i > 0 Then sql = sql & " OR "
  80. sql = sql & " " & QI(columns_array(i)) & " LIKE ?"
  81. params(i) = "%" & search_value & "%"
  82. Next
  83. End If
  84. sql = sql & BuildOrderBy(order_string_or_array, "[Id]")
  85. Dim rs : Set rs = DAL.PagedQuery(sql, params, per_page, page_num)
  86. If Not rs.EOF Then
  87. rs.PageSize = per_page
  88. rs.AbsolutePage = page_num
  89. page_count = rs.PageCount
  90. record_count = rs.RecordCount
  91. End If
  92. Set SearchTablePaged = PagedList(rs, per_page)
  93. Destroy rs
  94. End Function
  95. Private Function PagedList(rs, per_page)
  96. Dim list : Set list = new LinkedList_Class
  97. Dim x : x = 0
  98. Do While (per_page <= 0 Or x < per_page) And Not rs.EOF
  99. list.Push Automapper.AutoMap(rs, "POBO_Territories")
  100. x = x + 1
  101. rs.MoveNext
  102. Loop
  103. Set PagedList = list
  104. End Function
  105. Public Sub AddNew(ByRef model)
  106. Dim sql : sql = "INSERT INTO [Territories] ([Coordinates], [Description], [Name]) VALUES (?, ?, ?)"
  107. DAL.[Execute] sql, Array(model.Coordinates, model.Description, model.Name)
  108. ' Retrieve the newly inserted ID
  109. On Error Resume Next
  110. Dim rsId : Set rsId = DAL.Query("SELECT @@IDENTITY AS NewID", Empty)
  111. If Err.Number <> 0 Then
  112. ' Fallback for Access databases
  113. Err.Clear
  114. Set rsId = DAL.Query("SELECT TOP 1 [Id] FROM [Territories] ORDER BY [Id] DESC", Empty)
  115. End If
  116. On Error GoTo 0
  117. If Not rsId.EOF Then
  118. If Not IsNull(rsId(0)) Then model.Id = rsId(0)
  119. End If
  120. Destroy rsId
  121. End Sub
  122. Public Sub Update(model)
  123. Dim sql : sql = "UPDATE [Territories] SET [Coordinates] = ?, [Description] = ?, [Name] = ? WHERE [Id] = ?"
  124. DAL.[Execute] sql, Array(model.Coordinates, model.Description, model.Name, model.Id)
  125. End Sub
  126. Public Sub Delete(id)
  127. Dim sql : sql = "DELETE FROM [Territories] WHERE [Id] = ?"
  128. DAL.[Execute] sql, Array(id)
  129. End Sub
  130. Private Function RecordNotFoundException(ByVal field_name, ByVal field_val)
  131. RecordNotFoundException = "Territories record was not found with " & field_name & " = '" & field_val & "'."
  132. End Function
  133. Private Function QI(name)
  134. QI = "[" & Replace(CStr(name), "]", "]]") & "]"
  135. End Function
  136. Private Function BuildOrderBy(orderArg, defaultCol)
  137. Dim s : s = ""
  138. If IsEmpty(orderArg) Or IsNull(orderArg) Or orderArg = "" Then
  139. s = " ORDER BY " & defaultCol & " ASC"
  140. ElseIf IsArray(orderArg) Then
  141. Dim i : s = " ORDER BY "
  142. For i = 0 To UBound(orderArg)
  143. If i > 0 Then s = s & ", "
  144. s = s & QI(orderArg(i))
  145. Next
  146. Else
  147. s = " ORDER BY " & QI(orderArg)
  148. End If
  149. BuildOrderBy = s
  150. End Function
  151. End Class
  152. Dim TerritoriesRepository__Singleton
  153. Function TerritoriesRepository()
  154. If IsEmpty(TerritoriesRepository__Singleton) Then
  155. Set TerritoriesRepository__Singleton = new TerritoriesRepository_Class
  156. End If
  157. Set TerritoriesRepository = TerritoriesRepository__Singleton
  158. End Function
  159. %>

Powered by TurnKey Linux.