楼主: manutdfan

如何在ABAP中使用Native SQL访问SQL SERVER外部数据库

[复制链接]
论坛徽章:
52
IT宝贝
日期:2010-11-04 16:48:222013年新春福章
日期:2013-02-25 14:51:24版主4段
日期:2013-03-09 02:21:03Jeep
日期:2013-12-04 15:37:392014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
11#
发表于 2007-3-28 21:38 | 只看该作者
最初由 hjy2000 发布
[B]汗 楼主  05-12-27 11:59 [/B]


我也没注意到,呵呵

使用道具 举报

回复
论坛徽章:
15
2013年新春福章
日期:2013-02-25 14:51:24
12#
发表于 2007-3-29 09:00 | 只看该作者
1. 工作环境需求
A. The operating system user adm must be able to log on to the secondary database.
B. The R/3 table DBCON must be maintained.
C. The correct database library 'dboraslib.' must exist in the kernel directory.
Connect to SQL Server database Prerequisite: At least one Windows application server must be available on the R/3 system and the DBSL dynamic library (DLL) dbmssslib.dll must be installed on this server. This dll can be downloaded from the SAP Service Marketplace.
dbmssslib.dll
2. 配置连接信息
配置TCODE: dbco
任何配置信息都存储在DBCON表中.
配置示例:
A. 访问MSSQL的配置示例(参见SAP Notes 178949)
CON_NAME:
DBMS: MSS
USER_NAME:
PASSWORD:
CON_ENV: MSSQL_SERVER= MSSQL_DBNAME=
db_user could be sapr3 for example if the server is running R/3. The password field may be blocked from view by asterisks in sm30. USER_NAME can be left blank in order to use integrated security (4.6d kernel and later). In that case make sure that the OS User running R/3 has the required privilege on the remote server. A dummy password must be entered in sm30, it will not be used when the user name is blank.
B. 访问ORACLE的配置示例()
Connection name logical name of the connection
DBMS ORA
User name Oracle users
DB password password for the above-mentioned Oracle user
Conn.info TNS alias
Permanent Usually should not be set for a secondary connection.

3. 程序中如何使用
report zdbcon .
data: dbn(128).
EXEC SQL.
CONNECT TO 'DAN1'
ENDEXEC.
EXEC SQL.
SET CONNECTION 'DAN1'
ENDEXEC.
EXEC SQL.
SELECT db_name() INTO BN FROM SVERS
ENDEXEC.
write: / 'current database name', dbn.
DAN1在DBCON表中配置
CON NAME DAN1
DBMS MSS
USER NAME iis_log
PASSWORD CON ENV
MSSQL_SERVER=tcp:###.###.###.### MSSQL_DBNAME=iislog

按照以下方法试了,不行啊,连接不了?


另外有个问题问大家一下,参见SAP Notes 178949,请问这个怎么看啊?
请知道的兄弟给个具体查看步骤,谢谢了.

使用道具 举报

回复
论坛徽章:
15
授权会员
日期:2006-07-07 13:21:49蛋疼蛋
日期:2012-12-27 13:20:56蜘蛛蛋
日期:2012-11-23 09:13:35ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:足球
日期:2012-09-03 11:00:362012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-08-18 11:30:232010广州亚运会纪念徽章:排球
日期:2011-04-06 09:35:092010广州亚运会纪念徽章:皮划艇
日期:2011-01-05 10:07:55
13#
发表于 2007-3-29 09:06 | 只看该作者
SAP Notes 要道 service.sap.com 上看,前提是得有账户登录

使用道具 举报

回复
论坛徽章:
15
2013年新春福章
日期:2013-02-25 14:51:24
14#
发表于 2007-3-29 15:57 | 只看该作者
哦,知道了,谢谢hjy2000.

使用道具 举报

回复
论坛徽章:
0
15#
发表于 2007-3-29 23:11 | 只看该作者
最初由 abapstones 发布
[B]1.       工作环境需求
    A. The operating system user adm must be able to log on to the secondary database.
    B. The R/3 table DBCON must be maintained.
    C. The correct database library 'dboraslib.' must exist in the kernel directory.
Connect  to SQL Server database Prerequisite: At least one Windows application server must be available on the R/3 system and the DBSL dynamic library (DLL) dbmssslib.dll must be installed on this server. This dll can be downloaded from the SAP Service Marketplace.
dbmssslib.dll
2.       配置连接信息
配置TCODE: dbco
任何配置信息都存储在DBCON表中.
配置示例:
A.      访问MSSQL的配置示例(参见SAP Notes 178949)
CON_NAME:
DBMS: MSS
USER_NAME:
PASSWORD:  
CON_ENV: MSSQL_SERVER= MSSQL_DBNAME=
   db_user could be sapr3 for example if the server is running R/3.  The password field may be blocked from view by asterisks in sm30. USER_NAME can be left blank in order to use integrated security (4.6d kernel and later).  In that case make sure that the OS User running R/3 has the required privilege on the remote server.  A dummy password must be entered in sm30, it will not be used when the user name is blank.
B.      访问ORACLE的配置示例()
   Connection name        logical name of the connection
     DBMS                   ORA
     User name              Oracle users
     DB password            password for the above-mentioned Oracle user
     Conn.info              TNS alias
     Permanent              Usually should not be set for a secondary connection.

3.       程序中如何使用
report zdbcon .
data: dbn(128).
EXEC SQL.
CONNECT TO 'DAN1'
ENDEXEC.
EXEC SQL.
SET CONNECTION 'DAN1'
ENDEXEC.
EXEC SQL.
SELECT db_name() INTO BN FROM SVERS
ENDEXEC.
write: / 'current database name', dbn.
DAN1在DBCON表中配置
CON NAME DAN1
DBMS MSS
USER NAME iis_log
PASSWORD CON ENV
MSSQL_SERVER=tcp:###.###.###.### MSSQL_DBNAME=iislog [/B]


我以前有做过sap和外部数据库连接.
但直接是从DBCO建立连接,然后就写程序了。现在换了个公司,发现这样做的话, 会报错.是不是DBCO建立连接之前还有什么步骤要做,比如basis要设置什么的。请大家指出。谢谢。

使用道具 举报

回复
论坛徽章:
51
2012新春纪念徽章
日期:2012-08-24 17:06:04马上有对象
日期:2014-10-31 15:14:43马上有车
日期:2014-12-17 16:04:37马上有房
日期:2014-12-29 08:11:41马上有车
日期:2015-01-16 16:56:11马上加薪
日期:2015-02-05 11:24:51沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:312015年新春福章
日期:2015-05-08 10:02:59喜羊羊
日期:2015-06-11 08:58:52
16#
发表于 2007-4-2 14:44 | 只看该作者
是的啊,请高人指教一下啊.

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2008-6-9 15:34 | 只看该作者

有测试结果了吗?

支持一下,
谁测试?测试结果反馈一下!

使用道具 举报

回复
论坛徽章:
15
2013年新春福章
日期:2013-02-25 14:51:24
18#
发表于 2008-6-11 11:11 | 只看该作者
有BASIC的吗?搞个测试的呢.估计是要装什么的.我直接测试不成功

使用道具 举报

回复
论坛徽章:
26
ITPUB季度 技术新星
日期:2011-11-18 16:54:312011新春纪念徽章
日期:2011-02-18 11:43:332010新春纪念徽章
日期:2010-03-01 11:04:582008新春纪念徽章
日期:2008-02-13 12:43:03ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28祖国60周年纪念徽章
日期:2009-10-09 08:28:00开发板块每日发贴之星
日期:2008-05-08 01:02:27奥运会纪念徽章:手球
日期:2012-08-31 14:52:20奥运会纪念徽章:花样游泳
日期:2012-08-23 15:21:34奥运会纪念徽章:水球
日期:2012-08-17 14:37:56
19#
发表于 2008-6-11 12:58 | 只看该作者
Basis必须进行相应的设置,而且有个大前提,连Sql Server,应用服务器必须是Windows平台,其他平台别想了,这是微软的策略。*.DLL文件也只有在Windows系统下是能用的。

我以前做过一个项目,调用外部的SQL Server,但数据库和应用服务器都是AIX平台,所以又买了台Windows的应用服务器作为Dialog Instance才能用SQL Server,出此下策的原因是客户服务器也是问实施SAP的公司买的,多买台服务器SAP项目组就有更多经费了,所以......  其实我个人更推荐在SAP系统外部写个ASP或者ASP.Net 的网页或者Web Service,然后用SAP访问这个网页或Web Service就可以了,外部程序代码不会超过20行,就一个Select罢了,而且各方面好控制,成本低。


原帖由 leemin 于 2007-3-29 23:11 发表


我以前有做过sap和外部数据库连接.
但直接是从DBCO建立连接,然后就写程序了。现在换了个公司,发现这样做的话, 会报错.是不是DBCO建立连接之前还有什么步骤要做,比如basis要设置什么的。请大家指出。谢谢。

使用道具 举报

回复
论坛徽章:
91
奥运会纪念徽章:拳击
日期:2012-10-11 15:38:22紫蛋头
日期:2013-07-21 18:27:44兰博基尼
日期:2013-08-01 09:51:00福特
日期:2013-08-06 13:20:22阿斯顿马丁
日期:2013-08-25 18:34:04马自达
日期:2013-08-29 11:23:44保时捷
日期:2013-09-12 09:56:40福特
日期:2013-09-24 15:31:29本田
日期:2013-09-24 23:52:52日产
日期:2013-10-27 12:35:40
20#
发表于 2012-1-11 11:24 | 只看该作者
*&---------------------------------------------------------------------*
*& Report  ZtestSP
*& Manual Extract AXML file TO A2S temp Tables.
*&---------------------------------------------------------------------*
*& Used For Test and Troubleshooting  Only!
*& Author: Cheney_cheng
*&---------------------------------------------------------------------*
REPORT  ZTESTSP.

PERFORM CONNECT_DB USING  'AG2S'.   " 链接
PERFORM DISCONNECT_DB USING  'AG2S'.   "断开连接

FORM CONNECT_DB USING AG2S.
    EXEC SQL.
     CONNECT TO :'AG2S'
    ENDEXEC.
IF SY-SUBRC = 0.
   " MESSAGE: ' 部分 ( 或全部 ) 數據链接成功 ' TYPE 'S'.
   " 对数据库进行操作
   EXEC SQL.
      exec dbo.KL_AGILE_XML2DB;
   ENDEXEC.
   IF SY-SUBRC = 0.
   MESSAGE: ' Extract Agile XML to A2S Tables Is OK! [KL_AGILE_XML2DB成功] ' TYPE 'S'.
   ENDIF.

ELSE.
   MESSAGE: ' Database connection is Failed!' TYPE 'S'.
   " 部分 (或全部) 數據链接失敗
ENDIF.

ENDFORM.


FORM DISCONNECT_DB USING AG2S.
  EXEC SQL.
    DISCONNECT :AG2S
  ENDEXEC.
ENDFORM.
" DISCONNECT_DB

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表