Consolidated ASP Classic MVC framework from best components
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

177 satır
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.