Hello,
I'm testing a CLR SP in SQL Server 2005 using Visual Basic .NET Express
The code is :
Imports System.Data.SqlServer
Imports System
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
Imports System.Data.SqlClient
Public Class SQLCLR
Public Shared Sub HelloWorld()
SqlContext.Pipe.Send("Hello World from SQLCLR !!")
End Sub
End Class
I built the project and copy the HelloWorld.dll to a local dir.
Then I registed the assembly in SQL SERVER:
create assembly HelloWorld from 'd:\xi\HelloWorld.dll' with permission_set = safe
This is successfull but when I execute:
create procedure HelloWorld as external name HelloWorld.SQLCLR.HelloWorld
Msg 6505, Level 16, State 1, Procedure HelloWorld, Line 1
Could not find Type 'SQLCLR' in assembly 'HelloWorld'.
I don't know what's happening since the name of the class is right (SQLCLR)
Any advice would appreciated...
I am guessing that you have used Visual Studio 2005 to develop your assembly. Visual Studio adds a default namespace and you need to incorporate that in the external name.(I think the default namespace is same as the name of the assembly) Try:
create procedure HelloWorld as external name
HelloWorld.[HelloWorld.SQLCLR].HelloWorld
Hope that helps.
Thanks,
-Vineet.
No comments:
Post a Comment