Login    
 
 
 
 
Text/HTML
  
You are here :: Blogs Saturday, May 19, 2012

Search
Note: This uses the internal blog search engine. The Google search engine is also available at the top of the page.
  
Disclaimer

Please review the site disclaimer before downloading or using content found on this site

  
Categories
  
DEVSHED Blog
As always, I welcome your comments!
Dec 10

Written by: Steve Gray
12/10/2010 12:48 PM  RssIcon

This is a helper routine for the Data Access scripts. It creates the ‘New’ signature for VB classes

Refer to the documentation here

 

Code Snippet
  1. -- =============================================
  2. --
  3. -- =============================================
  4. -- updated 12/10/2010
  5.  
  6. IF EXISTS (SELECT name
  7.     FROM   sysobjects
  8.     WHERE  name = N'sp_NEW'
  9.     AND    type = 'P')
  10.     DROP PROCEDURE sp_NEW
  11. GO
  12.  
  13. CREATE PROCEDURE sp_NEW
  14.  
  15. @ProcName varchar(255),
  16. @Table varchar(255),
  17. @DataClass varchar(255)
  18.  
  19. AS
  20.  
  21.  
  22. declare @RC int,
  23.     @vchrLine varchar(500)
  24. declare @vchrFieldTypeVB varchar(50)
  25. declare @vchrFieldTypeDB varchar(50)
  26. declare @vchrVBFieldName varchar(255)
  27. declare @vchrFieldType varchar(50)
  28. declare @vchrParamName varchar(255)
  29. declare @vchrParamListVB varchar(8000)
  30. declare @vchrParamListVB2 varchar(8000)
  31.  
  32.  
  33. select
  34.     @vchrParamListVB = '',
  35.     @vchrParamListVB2 = ''
  36. declare curFields CURSOR for
  37.     select p.name as paramName,
  38.             dbo.f_4P_columnTypevb (p.xtype) as fieldTypeVB
  39.         from sysobjects o
  40.             join syscolumns p on p.id = o.id
  41.         where o.name = @ProcName
  42.  
  43. OPEN curFields
  44. WHILE 1=1
  45. BEGIN
  46.     FETCH NEXT FROM curFields INTO @vchrParamName, @vchrFieldTypeVB
  47.     if @@fetch_status <> 0 begin
  48.         break
  49.     end
  50.  
  51.     --get rid of the '@'
  52.     set @vchrParamName = replace(@vchrParamName,'@','')
  53.  
  54.     --build a VB param list
  55.     set @vchrParamListVB = @vchrParamListVB  + 'ByVal ' + @vchrParamName
  56.         + ' As ' + @vchrFieldTypeVB + ', '
  57.     set @vchrParamListVB2 = @vchrParamListVB2  + @vchrParamName + ', '
  58.  
  59. END
  60. CLOSE curFields
  61. DEALLOCATE curFields
  62.  
  63.   print'    Sub New()'
  64.  
  65. print '    End Sub'
  66. print ''
  67.  
  68.   print'    Sub New(' + @vchrParamListVB + 'ByVal db As String)'
  69. print '        Using oDR As SqlClient.SqlDataReader = '
  70.     + @DataClass + @ProcName + '(' + @vchrParamListVB2 + 'db).getReader'
  71.  
  72.   print'            If oDR.Read Then'
  73.  
  74. DECLARE @vchrField varchar(255)
  75.  
  76. DECLARE curName CURSOR LOCAL FAST_FORWARD FOR
  77.     SELECT  c.Name ,
  78.             dbo.f_4P_columnTypeVB(c.xtype)
  79.         from sysobjects o (nolock)
  80.             join syscolumns c (nolock) on o.id = c.id    
  81.         where o.[name] = @Table
  82.             and o.xtype = 'U'
  83.         order by c.colorder
  84.  
  85. OPEN curName
  86. WHILE 1=1
  87. BEGIN
  88.     FETCH NEXT FROM curName INTO @vchrField,@vchrFieldType
  89.     if @@fetch_status <> 0 begin
  90.         break
  91.     end
  92.  
  93.     --write the field declaration
  94.     print '                ME.' + @vchrField + ' = oDR("' + @vchrField + '")'
  95.  
  96. END
  97. CLOSE curName
  98. DEALLOCATE curName
  99.  
  100. Print '            End If'
  101. Print '        End Using'
  102. Print '    End Sub'
  103.  
  104. go
  105.  
  106. grant exec on sp_NEW to public

Tags:
Categories:
Location: Blogs Parent Separator DEVSHED Blogs Child Separator SQL
As always, I welcome your comments!
  
 
 
Home | Products | Blogs | Contact Us | Links | God's Plan
Privacy Statement | Terms Of Use
 
Copyright 2011 by Devshed.us