我想在sql server 中调用 c#类库中的 非静态方法,网上一些 方法,我试了,最后都有错误:
create error 0x80131700 ODSOLE Extended Procedure NULL
method error 0x80042725 ODSOLE Extended Procedure sp_OAMethod 用法: ObjPointer int IN, MethodName varchar IN [, @returnval <any> OUT [, additional IN, OUT, or BOTH params]]
description error 0x80042728 ODSOLE Extended Procedure sp_OADestroy 用法: ObjPointerToBeDestroyed int IN。不知道怎样调用 c# 类库中的 非静态方法了。
请高手帮忙!

解决方案 »

  1.   

    我试过的是下面的方法,最后在 sql server 中执行 都出错
    http://www.sudu.cn/info/html/edu/20071227/49802.html 
      

  2.   

    还有下面这个方法,也会出错 
    1:新建一个CS类库 
    注:类库要使用签名,编译成强命名的程序集。在ASSMBILY中最好手工将comvisible设为TRUE.2、拷贝编译好的DLL文件到C:\WINDOWS\system32下  (此步路径需为系统path中的路径)
    3、注册该类库:打开 SDK 命令提示 工具,输入 regasm /tlb: C:\WINDOWS\system32\BiSoftWare.tlb C:\WINDOWS\system32\BiSoftWare.dll  /codebase 回车(此步骤不能简为 regasm C:\WINDOWS\system32\BiSoftWare.dll,否则在SQL SERVER中会提示“系统找不到”)
    4、打开SQL SERVER 新建存储过程
    在网上找出错答案也找不到,希望有遇到过这种情况或知道解决方法的人帮帮忙
      

  3.   

    非静态
    Class1 c=new Class1();
    c.方法();
      

  4.   

    类库注册以后在 存储过程中调用,你看有什么不对吗?
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go
    ALTER procedure  [dbo].[mydll2901]asDECLARE @object int 
    DECLARE @hr int 
    declare @return varchar(255)
    declare @src varchar(255),@desc varchar(255) EXEC @hr = sp_OACreate 'mydll2901.Class1', @object OUT 
    if @hr<>0
    begin
    exec sp_OAGetErrorInfo @object,@src OUT,@desc OUT
    select 'create error',hr=convert(varbinary(4),@hr),Source=@src,Description=@desc
    --return
    endEXEC @hr = sp_OAMethod @object,'hello',@return OUT
    if @hr<>0
    begin
    exec sp_OAGetErrorInfo @object,@src OUT,@desc OUT
    select 'method error',hr=convert(varbinary(4),@hr),Source=@src,description=@desc
    end
    print @returnEXEC @hr = sp_OADestroy @object
    if @hr<>0
    begin
    exec sp_OAGetErrorInfo @object,@src OUT,@desc OUT
    select 'description error',hr=convert(varbinary(4),@hr),Source=@src,description=@desc
    end
      

  5.   


    我在sql server 中调用
      

  6.   

    我类里面要调用 他人的webservice里的非静态方法,所以不好改成静态的吧?