日期:2014-05-18  浏览次数:20826 次

MSSQL 访问 MYSQL
odbc上配置了 gap 测试过了连接没有问题的  

declare @@SName nvarchar(100),@@localloginusr nvarchar(100)
declare @@StrDSN nvarchar(100),@@MySqlUserName nvarchar(100),@@MySqlPwd nvarchar(100)
declare @@IntSucc int
set @@localloginusr='sa' --连接本地数据库的用户名
set @@SName='mysqlcon' --连接名
set @@StrDSN='gap' --数据源名
set @@MySqlUserName='gap' --登录用户名
set @@MySqlPwd='123' --登录用户密码

查询的时候 报错  

链接服务器"mysqlcon"的 OLE DB 访问接口 "MSDASQL" 返回了消息 "[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序"。
消息 7303,级别 16,状态 1,第 2 行
无法初始化链接服务器 "mysqlcon" 的 OLE DB 访问接口 "MSDASQL" 的数据源对象。


我的是64位的系统, SQL 也是64 的,为什么在DTS的时候选择驱动总是去搜索
Program Files (x86)

------解决方案--------------------
SQL code

/*================================================================*/
/*==                                                            ==*/
/*==                         模板关键字说明                     ==*/
/*==                                                            ==*/
/*================================================================*/
<LinkedServerName>  链接服务器名
<ServerName>        要访问的服务器名。例如,对于SQL Server数据库而言是实例名,对于ORACLE数据库而言是SQL*Net别名
<UserName>          访问OLE DB数据源的用户名
<Password>          访问OLE DB数据源的用户密码
<DatabaseName>      要访问的数据库名
<Path>              访问外部数据文件时,数据文件所在的目录
<FileName>          访问外部数据文件时,数据文件的文件名
<系统DSN名称>        SQL Server服务器操作系统数据源(ODBC),【系统DSN】中创建的系统DSN
<ODBC驱动程序>       SQL Server服务器操作系统数据源(ODBC),【驱动程序】中列出的,当前操作系统安装的ODBC驱动程序名称


/*================================================================*/
/*==                                                            ==*/
/*==                  使用链接服务器访问OLE DB数据源              ==*/
/*==                                                            ==*/
/*================================================================*/
--SQL Server
EXEC sp_addlinkedserver 
    @server = '<LinkedServerName>',
    @provider='SQLOLEDB', 
    @datasrc='<ServerName>'
    
EXEC sp_addlinkedserver 
    @server = '<ServerName>'
    
EXEC sp_addlinkedserver 
    @server = '<LinkedServerName>', 
    @srvproduct = '',
    @provider = 'MSDASQL',
    @provstr = 'DRIVER={SQL Server};SERVER=<ServerName>;UID=<UserName>;PWD=<Password>;Database=<DatabaseName>'
    
--Oracle
EXEC sp_addlinkedserver
    @server = '<LinkedServerName>',
    @srvproduct = 'Oracle',
    @provider = 'MSDAORA',
    @datasrc = '<ServerName>'
    
--Sybase
EXEC sp_addlinkedserver 
    @server = '<LinkedServerName>',
    @srvproduct = '', 
    @provider = 'MSDASQL', 
    @provstr = 'Driver={Sybase System 11};Database=<DatabaseName>;Srvr=<ServerName>;UID=<UserName>;PWD=<Password>;'
    
--ACCESS
EXEC sp_addlinkedserver 
    @server = '<LinkedServerName>', 
    @provider = 'Microsoft.Jet.OLEDB.4.0', 
    @srvproduct = 'OLE DB Provider for Jet',
    @datasrc = '<Path>\<FileName>',
    @provstr = ';pwd=<Password>'    
    
--Excel
EXEC sp_addlinkedserver
    @server = '<LinkedServerName>',
    @srvproduct = 'Jet 4.0',
    @provider = 'MICROSOFT.JET.OLEDB.4.0',
    @datasrc = '<Path>\<FileName>',
    @provstr = 'Excel 8.0'
    
--Text
EXEC sp_addlinkedserver
    @server = '<LinkedServerName>',
    @srvproduct = 'Jet 4.0',
    @provider = 'MICROSOFT.JET.OLEDB.4.0',
    @datasrc = '<Path>',
    @provstr = 'Text'
    
--dBase
EXEC sp_addlinkedserver
    @server = '<LinkedServerName>',
    @srvproduct = 'Jet 4.0',
    @provider = 'MICROSOFT.JET.OLEDB.4.0',
    @datasrc = '<Path>',
    @provstr = 'dBase 5.0'
    
--Html
EXEC sp_addlinkedserver
    @server = '<LinkedServerName>',
    @srvproduct = 'Jet 4.0',
    @provider = 'MICROSOFT.JET.OLEDB.4.0',
    @datas