Advertisement
trboyden

ExportUETClassSp.sql

Dec 17th, 2022 (edited)
1,371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 7.59 KB | Source Code | 0 0
  1. --ExportUETClassSp start
  2.  
  3. --****************************************************************************************************************************
  4.  
  5. SET QUOTED_IDENTIFIER OFF
  6. GO
  7.  
  8. SET ANSI_NULLS ON
  9. GO
  10.  
  11. IF OBJECT_ID('dbo.ExportUETClassSP')IS NOT NULL
  12. DROP PROCEDURE ExportUETClassSP
  13. GO
  14.  
  15. CREATE PROCEDURE ExportUETClassSP (
  16. @PClassName Infobar
  17. )
  18.  
  19. AS
  20.  
  21. DECLARE
  22. @ClassName ClassNameType
  23. , @ClassLabel LabelType
  24. , @ClassDesc DescriptionType
  25. , @SysHasFields ListYesNoType
  26. , @SysHasTables ListYesNoType
  27. , @SysApply UetSysApplyType
  28. , @SysDelete ListYesNoType
  29. , @FldName FldNameType
  30. , @FldDataType UetDataTypeType
  31. , @FldInitial UetDefaultType
  32. , @FldDecimals UetScaleType
  33. , @FldDesc ToolTipType
  34. , @FldUDT sysname
  35. , @FldPrec tinyint
  36. , @IndexName IndexNameType
  37. , @IndexDesc DescriptionType
  38. , @IndexUnique ListYesNoType
  39. , @IndexWord ListYesNoType
  40. , @IndexSeq UetIndexSeqType
  41. , @IndexAsc ListYesNoType
  42. , @TableName TableNameType
  43. , @TableRule QueryExpressionType
  44. , @ExtendAllRecs ListYesNoType
  45. , @AllowRecordAssoc ListYesNoType
  46. , @Active ListYesNoType
  47. , @SQLCmd InfobarType
  48. , @SQLCmdWait InfobarType
  49. , @Severity INT
  50. , @Quote NCHAR(1)
  51. , @RecordDate CurrentDateType
  52. , @RowPointer RowPointerType
  53. , @CommittedRowPointer RowPointerType
  54. , @CreatedBy UsernameType
  55. , @UpdatedBy UsernameType
  56. , @CreateDate CurrentDateType
  57. , @InWorkflow FlagNyType
  58.  
  59. SET @Severity = 0
  60. SET @Quote =''''
  61.  
  62. DECLARE UserClassCrs CURSOR LOCAL STATIC
  63. FOR SELECT
  64. uc.class_name
  65. , uc.class_label
  66. , uc.class_desc
  67. , uc.sys_has_fields
  68. , uc.sys_has_tables
  69. , uc.sys_apply
  70. , uc.sys_delete
  71. FROM user_class uc
  72. WHERE class_name = @PClassName
  73.  
  74. OPEN UserClassCrs
  75.  
  76. WHILE @Severity = 0
  77. BEGIN -- cursor loop
  78.  
  79. FETCH UserClassCrs INTO
  80. @ClassName
  81. , @ClassLabel
  82. , @ClassDesc
  83. , @SysHasFields
  84. , @SysHasTables
  85. , @SysApply
  86. , @SysDelete
  87.  
  88. IF @@FETCH_STATUS=-1
  89.  
  90. BREAK
  91.  
  92. SET @SQLCmd = 'INSERT INTO user_class ( class_name, class_label,class_desc, sys_has_fields, '
  93. SET @SQLCmd = @SQLCmd + 'sys_has_tables, sys_apply, sys_delete) VALUES ( '
  94. SET @SQLCmd = @SQLCmd + dbo.Quote(@ClassName) + ', ' + dbo.Quote(@ClassLabel)
  95. SET @SQLCmd = @SQLCmd + ', ' + dbo.Quote(@ClassDesc) + ', ' + STR(ISNULL(@SysHasFields, 0))
  96. SET @SQLCmd = @SQLCmd + ', ' + STR(ISNULL(@SysHasTables, 0)) + ', ' + dbo.Quote(@SysApply)
  97. SET @SQLCmd = @SQLCmd + ', ' + STR(ISNULL(@SysDelete, 0)) + ' )'
  98.  
  99. print @SQLCmd
  100.  
  101. DECLARE UserClassFldCrs CURSOR LOCAL STATIC
  102. FOR SELECT
  103. ucf.class_name
  104. , ucf.fld_name
  105. , ucf.sys_apply
  106. , ucf.sys_delete
  107. FROM user_class_fld ucf
  108. WHERE class_name = @PClassName
  109.  
  110. OPEN UserClassFldCrs
  111.  
  112. WHILE @Severity = 0
  113.  
  114. BEGIN -- cursor loop
  115.  
  116. FETCH UserClassFldCrs INTO
  117. @ClassName
  118. , @FldName
  119. , @SysApply
  120. , @SysDelete
  121.  
  122. IF @@FETCH_STATUS=-1
  123.  
  124. BREAK
  125.  
  126. SET @SQLCmd = 'INSERT INTO user_class_fld ( class_name,fld_name, sys_apply, sys_delete ) VALUES ( '
  127. SET @SQLCmd = @SQLCmd + dbo.Quote(@ClassName) + ', ' + dbo.Quote(@FldName) + ', ' + dbo.Quote(@SysApply) + ', ' + STR(ISNULL(@SysDelete, 0)) + ' )'
  128. SET @SQLCmdWait = @SQLCmd
  129.  
  130. SELECT @FldName = fld_name
  131. , @FldDataType = fld_data_type
  132. , @FldInitial = fld_initial
  133. , @FldDecimals = fld_decimals
  134. , @FldDesc = fld_desc
  135. , @SysApply = sys_apply
  136. , @SysDelete = sys_delete
  137. , @FldUDT = fld_UDT
  138. , @FldPrec = fld_prec
  139. FROM user_fld uf
  140. WHERE uf.fld_name = @FldName
  141.  
  142. SET @SQLCmd = 'INSERT INTO user_fld ( fld_name, fld_data_type,fld_initial, fld_decimals, fld_desc, sys_apply, sys_delete,
  143. fld_UDT, fld_prec ) VALUES ( '
  144. SET @SQLCmd = @SQLCmd + dbo.Quote(@FldName) + ', ' + dbo.Quote(@FldDataType) + ', ' + dbo.Quote(@FldInitial)
  145. SET @SQLCmd = @SQLCmd + ', ' + STR(ISNULL(@FldDecimals, 0)) + ', ' + dbo.Quote(@FldDesc) + ', ' + dbo.Quote(@SysApply)
  146. SET @SQLCmd = @SQLCmd + ', ' + STR(ISNULL(@SysDelete, 0)) + ', ' + dbo.Quote(@FldUDT) + ', ' + STR(ISNULL(@FldPrec, 0)) + ' )'
  147.  
  148. PRINT @SQLCmd
  149. PRINT @SQLCmdWait
  150.  
  151. END -- Cursor Loop UserClassFld
  152.  
  153. CLOSE UserClassFldCrs
  154. DEALLOCATE UserClassFldCrs
  155.  
  156. DECLARE UserIndexCrs CURSOR LOCAL STATIC
  157. FOR SELECT
  158. ui.class_name
  159. , ui.index_name
  160. , ui.index_desc
  161. , ui.index_unique
  162. , ui.index_word
  163. , ui.sys_apply
  164. , ui.sys_delete
  165. FROM user_index ui
  166. WHERE class_name = @PClassName
  167.  
  168. OPEN UserIndexCrs
  169.  
  170. WHILE @Severity = 0
  171.  
  172. BEGIN -- cursor loop
  173.  
  174. FETCH UserIndexCrs INTO
  175. @ClassName
  176. , @IndexName
  177. , @IndexDesc
  178. , @IndexUnique
  179. , @IndexWord
  180. , @SysApply
  181. , @SysDelete
  182.  
  183. IF @@FETCH_STATUS=-1
  184.  
  185. BREAK
  186.  
  187. SET @SQLCmd = 'INSERT INTO user_index ( class_name, index_name,index_desc, index_unique, index_word, sys_apply, sys_delete )
  188. VALUES ( '
  189. SET @SQLCmd = @SQLCmd + dbo.Quote(@ClassName) + ', ' + dbo.Quote(@IndexName) + ', ' + dbo.Quote(@IndexDesc)
  190. SET @SQLCmd = @SQLCmd + ', ' + STR(ISNULL(@IndexUnique, 0)) + ', ' + STR(ISNULL(@IndexWord, 0))
  191. SET @SQLCmd = @SQLCmd + ', ' + dbo.Quote(@SysApply) + ', ' + STR(ISNULL(@SysDelete, 0)) + ' )'
  192.  
  193. PRINT @SQLCmd
  194.  
  195. DECLARE UserIndexFldCrs CURSOR LOCAL STATIC
  196.  
  197. FOR SELECT
  198. uif.class_name
  199. , uif.index_name
  200. , uif.index_seq
  201. , uif.fld_name
  202. , uif.index_asc
  203. FROM user_index_fld uif
  204. WHERE class_name = @PClassName
  205. AND index_name = @IndexName
  206.  
  207. OPEN UserIndexFldCrs
  208.  
  209. WHILE @Severity = 0
  210.  
  211. BEGIN -- cursor loop
  212.  
  213. FETCH UserIndexFldCrs INTO
  214. @ClassName
  215. , @IndexName
  216. , @IndexSeq
  217. , @FldName
  218. , @IndexAsc
  219.  
  220. IF @@FETCH_STATUS=-1
  221.  
  222. BREAK
  223.  
  224. SET @SQLCmd = 'INSERT INTO user_index_fld ( class_name, index_name, index_seq, fld_name, index_asc ) VALUES ( '
  225. SET @SQLCmd = @SQLCmd + dbo.Quote(@ClassName) + ', ' + dbo.Quote(@IndexName) + ', ' + STR(ISNULL(@IndexSeq, 0))
  226. SET @SQLCmd = @SQLCmd + ', ' + dbo.Quote(@FldName) + ', ' + STR(ISNULL(@IndexAsc, 0)) + ' )'  
  227.  
  228. PRINT @SQLCmd
  229.  
  230. END -- Cursor Loop UserIndexFld
  231. CLOSE UserIndexFldCrs
  232. DEALLOCATE UserIndexFldCrs
  233.  
  234. END -- Cursor Loop UserIndex
  235. CLOSE UserIndexCrs
  236. DEALLOCATE UserIndexCrs
  237.  
  238. DECLARE TableClassCrs CURSOR LOCAL STATIC  
  239.  
  240. FOR SELECT
  241. tc.TABLE_NAME
  242. , tc.class_name
  243. , tc.table_rule
  244. , tc.extend_all_recs
  245. , tc.sys_apply
  246. , tc.sys_delete
  247. , tc.allow_record_assoc
  248. , tc.active
  249. FROM table_class tc
  250. WHERE class_name = @PClassName
  251.  
  252. OPEN TableClassCrs
  253.  
  254. WHILE @Severity = 0
  255.  
  256. BEGIN -- cursor loop
  257.  
  258. FETCH TableClassCrs INTO
  259. @TableName
  260. , @ClassName
  261. , @TableRule
  262. , @ExtendAllRecs
  263. , @SysApply
  264. , @SysDelete
  265. , @AllowRecordAssoc
  266. , @Active
  267.  
  268. IF @@FETCH_STATUS=-1  
  269.  
  270. BREAK
  271.  
  272. SET @SQLCmd = 'INSERT INTO table_class ( table_name, class_name,table_rule, extend_all_recs, sys_apply, sys_delete,
  273. allow_record_assoc, active ) VALUES ( '
  274. SET @SQLCmd = @SQLCmd + dbo.Quote(@TableName) + ', ' + dbo.Quote(@ClassName) + ', ' + dbo.Quote(@TableRule)
  275. SET @SQLCmd = @SQLCmd + ', ' + STR(ISNULL(@ExtendAllRecs, 0)) + ', ' + dbo.Quote(@SysApply)
  276. SET @SQLCmd = @SQLCmd + ', ' + STR(ISNULL(@SysDelete, 0)) + ', ' + STR(ISNULL(@AllowRecordAssoc, 0))
  277. SET @SQLCmd = @SQLCmd + ', ' + STR(ISNULL(@Active, 0)) + ')'  
  278.  
  279. PRINT @SQLCmd
  280.  
  281. END -- Cursor Loop TableClass
  282. CLOSE TableClassCrs
  283. DEALLOCATE TableClassCrs
  284.  
  285. END -- Cursor Loop UserClass
  286. CLOSE UserClassCrs
  287. DEALLOCATE UserClassCrs
  288.  
  289. RETURN @Severity
  290. GO
  291.  
  292. SET QUOTED_IDENTIFIER OFF
  293. GO
  294.  
  295. SET ANSI_NULLS ON
  296. GO
  297.  
  298. SET ANSI_NULLS ON
  299. GO
  300.  
  301. SET QUOTED_IDENTIFIER ON
  302. GO
  303.  
  304. IF OBJECT_ID('dbo.Quote')IS NOT NULL
  305. DROP FUNCTION dbo.Quote
  306. GO
  307.  
  308. CREATE FUNCTION dbo.Quote (
  309. @ColumnValue LongListType
  310. )
  311.  
  312. RETURNS LongListType
  313. AS
  314. BEGIN
  315.  
  316. DECLARE @Quote NCHAR(1)
  317. SET @Quote = ''''
  318. SET @ColumnValue = ISNULL(@ColumnValue,'NULL')  
  319.  
  320. IF @ColumnValue !='NULL'
  321. SET @ColumnValue = 'N'+ @Quote + @ColumnValue + @Quote  
  322.  
  323. RETURN @ColumnValue
  324.  
  325. END
  326. GO
  327.  
  328. -- ExportUETClassSp end
  329. --****************************************************************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement