免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 18900 | 回复: 8
打印 上一主题 下一主题

今天研究了一下ASE通过ECDA访问SQLServer [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-17 15:26 |只看该作者 |倒序浏览
最近闲来无事,试着摆弄了一下Sybase ECDA(Enterprise Connect Data Access),它是Sybase ASE数据库用以访问异构数据库的组件。我试着用ECDA访问了一个SQL Server2005,下面是一些步骤,各位大虾轻点拍:
1.        操作系统信息
[root@RHAS4 etc]# lsb_release -a
LSB Version:    :core-3.0-ia32:core-3.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch
Distributor ID: RedHatEnterpriseAS
Description:    Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
Release:        4
Codename:       NahantUpdate4

[root@RHAS4 etc]# rpm -qa |grep gcc
gcc-g77-3.4.6-3
libgcc-3.4.6-3
gcc-c++-3.4.6-3
gcc-java-3.4.6-3
compat-libgcc-296-2.96-132.7.2
compat-gcc-32-c++-3.2.3-47.3
gcc-3.4.6-3
gcc-objc-3.4.6-3
compat-gcc-32-3.2.3-47.3

2.        安装的软件
ECDA
1> select @@version
2> go
Version                                                                                                   
---------------------------------------------------------------------------------------------------------
DirectConnect for DCANY/15.0/P/INTEL i686/Linux Red Hat 2.4.21-27.0.2.ELsmp/012
         /OPT/Jul 28 2007 18:23:02

ASE1502ESD#5
With ODBC driver

unixODBC
unixODBC貌似不用安装,ECDA自带了unixODBC的lib库。
安装文件:unixODBC-2.2.14.tar.gz
命令:(使用root账号)
./configure (可能会提示没有qt,按照提示加入一个参数即可)
make
make install

默认安装路径:
/usr/local/
odbcinst.ini位于
/usr/local/etc

FreeTDS
FreeTDS是访问SQL Server的ODBC驱动。
安装文件: freetds-stable.tgz
命令:(使用root账号)
./configure
make
make install

3.        配置ECDA连接SQL Server
1.        使用ecda登录
2.        cd $SYBASE
3.        ln –s ../odbc.ini odbc.ini
ECDA连接目标库时,需要到$SYBASE目录下寻找odbc.ini,所以这里做了个连接,指向了$SYBASE/../odbc.ini。也可以新建一个odbc.ini文件。
4.        在odbc.ini中增加一个名为test2sqlserver的DSN:
[test2sqlserver]
Driver          = /usr/local/lib/libtdsodbc.so
Description     = My Second Test DSN
Trace           = No
Server          = SQLServerIP
Database        = master
Port            = 44173
TDS_Version     = 8.0

5.        增加一个名字为tosqlserver端口为2345的ECDA Server:
AddServer tosqlserver 2345

6.        修改
$SYBASE/../servers/tosqlserver/cfg/dcany.cfg
增加一个名为SQLSERVER2005的 Service,如下所示:
[Service Library]
{Logging}
LogSvcLibStatistics=0
{Client Interaction}
ODBCDriverManager=libodbc.so.1.0.0
SvclibDescription=Access Service Library for ODBC.
[SQLSERVER2005]
{ACS Required}
ConnectionSpec1=test2sqlserver
{Client Interaction}
EnableAtStartup=yes
{Target Interaction}
其中的ConnectionSpec1指向了刚才建立的那个SQL Server DSN:test2sqlserver。
EnableAtStartup置为yes,意为启动ECDA server时自动启动SQLSERVER2005服务。

7.        为了使用iqsl能够访问ECDA目标库,还需要修改$SYBASE/interfaces如下:
tosqlserver
     master   tcp ether localhostip 2345
     query    tcp ether localhostip 2345
SQLSERVER2005
     query    tcp ether localhostip 2345

8.        启动tosqlserver:
DCStart –Stosqlserver

9.        使用isql登录SQLSERVER2005:
isql –Usa –Ppasswd –SSQLSERVER2005
不出意外,你应该可以访问目标库了。

4.        ASE通过ECDA访问SQL Server
1.        在SQLSERVER中创建一个源表:
1> use master
2> go
1> create table t3 (c1 int,c2 int,c3 int,c4 int)
2> go
在ASE端:
2.  修改interfaces文件,增加:
SQLSERVER2005
        master tcp ether ECDAIP 2345
        query tcp ether ECDAIP 2345
SQLSERVER2005一定要与ECDA配置的service名字一致。

3.        增加server:
sp_addserver mssql, direct_connect, SQLSERVER2005

4.        增加extern login:
use master
go
sp_addexternlogin mssql, sa, sa, remote_login_passwd
go

5.        创建代理表:
1>        use testdb
2>        go
1>        create proxy_table myt3proxy at 'mssql.master..t3'
2> go
源表一定要存在于ecda odbc.ini中指定的数据库中。ECDA配置的是msater,因此此处t3一定要是master中的表。例如,如果t4存在于SQLServer的testdb中,就会报一个错:
1> create proxy_table myt4proxy at 'mssql.testdb..t4'
2> go
Msg 30291, Level 19, State 0:
Server 'mssql', Line 1:
[[Message Iteration=1|Data Source Name=OpenClient|SQLState=42000|Native
Error=15250|Message=[FreeTDS][SQL Server]The database name component of the
object qualifier must be the name of the current database.]

查询代理表:
1> select * from myt3proxy
2> go
c1          c2          c3          c4         
----------- ----------- ----------- -----------
           1           1           1           1

(1 row affected)

论坛徽章:
0
2 [报告]
发表于 2009-11-17 16:58 |只看该作者
还是SQLServer访问Sybase数据库方便,使用OLEDB,只需要在界面上点点就行了。

论坛徽章:
0
3 [报告]
发表于 2009-12-04 11:36 |只看该作者
楼主能否共享一下这个组件?小弟感激不尽~!

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-08-23 06:20:00数据库技术版块每日发帖之星
日期:2015-09-21 06:20:00
4 [报告]
发表于 2009-12-08 14:53 |只看该作者
mark下

论坛徽章:
33
ChinaUnix元老
日期:2018-07-04 15:10:362015年亚洲杯之阿联酋
日期:2015-02-06 17:15:532015亚冠之武里南联
日期:2015-06-06 15:40:252015亚冠之北京国安
日期:2015-06-17 15:42:412022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之阿尔纳斯尔
日期:2015-09-20 09:42:1215-16赛季CBA联赛之北京
日期:2016-01-15 10:03:5915-16赛季CBA联赛之青岛
日期:2016-04-26 16:44:4915-16赛季CBA联赛之广夏
日期:2018-07-04 15:33:21C
日期:2016-10-25 16:12:142017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之同曦
日期:2017-02-22 22:41:10
5 [报告]
发表于 2009-12-12 16:13 |只看该作者
支持一下!

论坛徽章:
0
6 [报告]
发表于 2009-12-15 19:26 |只看该作者
NICE

论坛徽章:
0
7 [报告]
发表于 2010-03-09 00:37 |只看该作者
有空在SOLARIS环境下试试。

论坛徽章:
0
8 [报告]
发表于 2010-09-10 13:05 |只看该作者
有没有测试过IQ通过ECDA 访问oracle

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-08-23 06:20:00数据库技术版块每日发帖之星
日期:2015-09-21 06:20:00
9 [报告]
发表于 2010-12-09 11:56 |只看该作者
mark下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP