现在外面支持sql server的虚拟主机都不允许执行dbo的存储过程,但是允许支持用户名下存储过程如username.sp_xxx
但一般写代码的时候都不指明存储过程的owner,例如SqlCommand cmd = new SqlCommand( "yaf_topic_move" )
默认都是执行dbo下面的,在虚拟主机下执行的时候都会报错,没有dbo权限。
如果要使用一些用存储过程的第三方程序,如论坛。应该怎么办?
如果只是改存储过程的owner,如改成username.yaf_topic_move 也没用。执行的时候还是说,没有dbo权限。
难道一定要改代码吗,那要改死了还容易错误。有没有聪明的方法?

解决方案 »

  1.   

    insert into  opendatasource('sqloledb','server=192.168.0.1;uid=sa;pwd=;database=GDB').GDB.dbo.GDB_Gold(Gold_UserID,Gold_Count) values(@UserID,@Gold);
    把执行的地址改为Ip地址
      

  2.   

    insert into  opendatasource('sqloledb','server=192.168.0.1;uid=sa;pwd=;database=GDB').GDB.dbo.GDB_Gold(Gold_UserID,Gold_Count) values(@UserID,@Gold);这是什么呀,能解决我的问题吗
      

  3.   

    难有DBO权限,
    改吧,或者用自己重新写的DLL在 服务器上调用