有谁用过openrowset函数呀?我第一次用不太熟悉,
在winform里执行openrowset函数报错,在调试时把该sql语句放置于查询分析器中却正常执行了,有谁能告诉我为什么不?
是不是有什么没有设置呀?

解决方案 »

  1.   

    参考:http://blog.csdn.net/htl258/archive/2010/04/04/5450497.aspx
      

  2.   

    确认你用的ole db链接数据库么
      

  3.   

    补充
    报错提示说:
    因为 OLEDB提供程序'SQLOLEDB'无法启动分布式事务。【OLE/DB provider returned message:新事务不能登记到指定的事务处理器中。】
    insert openrowset( 'SQLOLEDB', '10.88.0.0'; 'uid'; 'pass',database.dbo.table) 
                         select * from tb1 

    该语句在程序中是用事务控制的
      

  4.   

    确保两边的服务器上 MSDTC 服务被启动,以及 SQL Server 的 Ad Hoc Distributed Queries Option 服务器选项被启用。启动 MSDTC 服务
    cmd 命令行中运行 sc.exe start msdtc启用  Ad Hoc Distributed Queries Option 服务器选项(查询分析器中运行)
    sp_configure ' Ad Hoc Distributed Queries Option',1
    go
    reconfigure
    go
      

  5.   

    .net是支持sql语句的呀。 使用openrowset/opendatasource/openquery函数一定要开Ad Hoc Distributed Queries Option 服务吗?
    好像MSSQL2000没有这东东MSSQL2005才有这玩意。那要怎么办呀
      

  6.   

    MSSQL2005及其以上版本,是要打开数据库服务的,其以下版本可以直接使用openrowset
    另外,在.NET上调用openrowset函数,还需要添加oledb引擎
      

  7.   

    那能否怎么添加oledb引擎???