none
在SQL Server2005中基于程序集(VB.Net)创建存储过程时报错:程序集中没有相应的类型,怎么回事? RRS feed

  • 问题

  • 各位老师:本人初次接触CLR程序集,在vb。net环境下写了个测试程序(基本上是向导写的,呵呵),vb代码:

    输入的命名空间,略

    Partial Public Class SPs ‘类名

        <Microsoft.SqlServer.Server.SqlProcedure()> _
        Public Shared Sub StoredProcedure2()
                    SqlContext.Pipe.Send("第一次编写CLR脚本,请多指教.")
        End Sub
    End Class

    在SQL Server 中改变设置clr enabled 为1,这部分功能确认正确,代码略

    create assembly my_1_sqlclr
    from 'D:\Prg\SQL\sqlclr\myFirstSQLCLR\myFirstSQLCLR\obj\Release\myFirstSQLCLR.dll'
    with permission_set=safe;

    create procedure StoredProcedure2

    as
    external name my_1_sqlclr.SPs.StoredProcedure2

    报错:在程序集 'my_1_sqlclr.' 中找不到类型 'SPs',请问,怎么回事呢?

    感谢赐教


    wujun
    2011年8月2日 10:56

答案

  • 问题解决了,谢谢您们。用sql server 安装的vbc.exe编译程序文件就OK了,为什么不能用vs编译环境编译呢?郁闷
    wujun
    • 已建议为答案 yaphets 2011年8月3日 7:19
    • 取消建议作为答案 yaphets 2011年8月3日 7:19
    • 已标记为答案 Stephanie Lv 2011年8月3日 8:26
    2011年8月3日 6:16

全部回复

  • 估计是命名空间问题

     

    你看看你的命名空间是不是 my_1_sqlclr.SPs

     


    family as water
    2011年8月2日 12:14
  • 把你包含的Namespace 列出来看看,如果你用 VS 2010 做这个就容易多了。
    2011年8月2日 18:00
    版主
  • 根据EXTERNAL NAME assembly_name.class_name.method_name参数规定,请问还需要vb.net 代码的命名空间吗?不知道怎么用啊,我是用vb2008写的代码
    wujun
    2011年8月3日 0:10
  • 问题解决了,谢谢您们。用sql server 安装的vbc.exe编译程序文件就OK了,为什么不能用vs编译环境编译呢?郁闷
    wujun
    • 已建议为答案 yaphets 2011年8月3日 7:19
    • 取消建议作为答案 yaphets 2011年8月3日 7:19
    • 已标记为答案 Stephanie Lv 2011年8月3日 8:26
    2011年8月3日 6:16