--试试这个
select * from openrowset('MSDASQL','Driver={Sybase System 11};Database=cosmos;Server=142.176.190.50;UID=sa;PWD=78902w;',cosmos.dbo.Module)
--还有,你odbc测试可以正常连接吗?

解决方案 »

  1.   

    先安装sybase的客户端,然后配置odbc,先看看odbc能不能连接上?
      

  2.   

    ODBC中测试连接正确,可是我用这个ODBC在Access中链接Sybase中的数据时报错了:保留错误!
    真是奇怪。急啊!
      

  3.   


    换一种方法连连看:
    --创建链接服务器
    exec sp_addlinkedserver 'Sybase1', ' ', 'MSDASQL', NULL, NULL
    ,'Driver={Sybase System 11};Database=数据库名;Srvr=服务器名;UID=用户名;PWD=密码;'--查询
    select * from Sybase1.数据库名.dbo.表名
    SQL Server到SYBASE连接服务器的实现 
     
    作者:  CCBZZP 
    本文的测试环境为:
    操作系统:  WINDOWS2000 SERVER (繁体系统)
    安装数据库: SQLSERVER2000(英文版)和SYBASE8.0客户端(英文版)
      具体实现步骤: 
    1.要求pc机上安装SYBASE8.0客户端软件和sqlserver2000软件。 
    2.配置windows的ODBC数据源: 
    开始菜单—》程式集—》系统管理工具—》资料数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:添加—》选择ADAPTIVE SERVER ANYWHERE8.0—》自定义数据源名称(随意如: SYBASETEST)—》数据库名称(必选!)—》OK完成。3. 选择刚才配置的数据源名称, 再选择 配置, 跳出SYBASETEST MESSAGES:The data source is not connected.  Connecting to the data source will provide useful information during configuration.  Would you like to connect to the data source?选择YES(OK或确认)即可进入CONNECT TO SYBASE  DATABASE画面:USER ID: 输入SYBASE DATABASE的用户PASSWORD: 输入SYBASE DATABASE的用户的密码CONNECTION  MODE: 可以选择默认的SHARE模式选择OK(确认)即可! 配置和测试ODBC完成!
    4.配置sqlserver2000中的连接服务器: 
    企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称; 选其他数据源; 指定程序名称为:SYBASE ADAPTIVE SERVER ANYWHERE PROVIDER8.0; 产品名称可不填; 数据源指定刚才ODBC中定义好的数据源名称; 提供程序字符串按以下格式填写:User ID=username;Password=userpasswd(或者按如下格式:UID=username;PWD=userpasswd),这里的用户名和密码对应所要连接的SYBASE数据库中的用户名和密码 —》 安全性标签页里:设置用此安全上下文进行,并录入SYBASE的数据库用户名和密码—》服务器选项标签页可默认—》确定。 
    5.准备工作全部完成!在sqlserver企业管理器—》安全性—》连接服务器打开刚建好的连接服务器—》点击表,即可在右边窗口看到该SYBASE数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!访问表时,使用格式为: [连接服务器名]..[SYBASE用户].[表名]。更详细具体的使用这里不再赘述。
      

  4.   

    --楼主提供的driver有问题吧Driver={Sybase System 11},如果这个不对的话就会报那个错误了
    确认一下驱动是不是这么写的(就是注册odbc时候的驱动程序名)
      

  5.   

    建好你的odbc应该就没问题了的
      

  6.   

    我的ODBC为:Sybase ASE ODBC Driver,我改为:
    select * from openrowset('MSDASQL','Driver={Sybase ASE ODBC Driver};Database=cosmos;Server=142.176.190.50;UID=sa;PWD=78902w;',cosmos.dbo.Module)错误为:
    OLE DB provider 'MSDASQL' reported an error.  
    [OLE/DB provider returned message: [MERANT][ODBC Sybase ASE driver]Invalid attribute in connection string: Srvr.]
    [OLE/DB provider returned message: [MERANT][ODBC Sybase ASE driver]Insufficient information to connect to the data source.]
    OLE DB error trace [OLE/DB Provider 'MSDASQL' IDBInitialize::Initialize returned 0x80004005:   ].急啊!急啊!谢谢大家了!
      

  7.   

    你都把srvr改成server了,怎么还会报Invalid attribute in connection string: Srvr这个错误呢...邪门...(要不再把server改成srvr?)
    现在的odbc驱动就对了,报错是说srvr的属性不对.
    Server后面跟的应该是你odbc注册的名字,不是ip,你确定注册的odbc是ip名吗?
    实在不行就用上面几位说的链接服务器.
      

  8.   

    这部分的字符串,各个驱动都不一样的'Driver={Sybase ASE ODBC Driver};Database=cosmos;Server=142.176.190.50;UID=sa;PWD=78902w;'
    不知道sybase里面server是指什么(sql里面是指ip地址,而oracle里面都不用指定)
    sybase不懂,不好意思,等sybase达人或者用以上各位的链接服务器方法
      

  9.   

    我用exec sp_addlinkedserver 'Sybase1', ' ', 'MSDASQL', NULL, NULL
    ,'Driver={Sybase ASE ODBC Driver};Database=cosmos;Srvr=142.176.190.50;UID=sa;PWD=78902w;
    建立一个服务器,可是不能够打开。我的Sybase是12.5版本,在ODBC配置里没有Sybase System 11驱动。
      

  10.   

    我也碰到一样的问题 不知道现在有人解决了没
    按yjdn说的建立链接服务器后 点击表时 出现7399错误我在SQL SERVER2000机器上装的是sybase sql anywhere 7
      

  11.   

    我也出现了这样的情况
    用yjdn的方法在SQL SERVER里建立了链接服务后点击表时出现了7399错误在SQL SERVER2000的机器上 我装的是sybase sql anywhere 7