简体   繁体   English

SQL Server-链接服务器通过ODBC进行进度

[英]SQL Server - Linked Server to Progress via ODBC

I want to link a Progress DB to MS SQL Server. 我想将进度数据库链接到MS SQL Server。 I use the guide on: 我在以下方面使用该指南:

https://knowledgebase.progress.com/articles/Article/P120484 https://knowledgebase.progress.com/articles/Article/P120484

Local on my Windows 8 notebook, I have also installed a MS SQL Management Studio. 我在Windows 8笔记本电脑上本地安装了MS SQL Management Studio。

"1) Setup an ODBC connection to the Progress eatabase in the ODBC Administrator in the System DSN. Make sure the connection successfully establishes." “ 1)在系统DSN的ODBC管理器中,建立到Progress eatabase的ODBC连接。确保该连接成功建立。”

So I looked under System-DNS and find it. 所以我查看了System-DNS,找到了它。 It is called pA52_T2_ODBC. 它称为pA52_T2_ODBC。 32-Bit. 32位。 Progress OpenEdge 10.2B Driver. 进度OpenEdge 10.2B驱动程序。 When I test the connection, it says "Connection established!". 当我测试连接时,它显示“连接已建立!”。 So I think step 1 is done. 所以我认为第一步已经完成。

"2) Bring up SQL Server Management Studio, connect to Object Explorer. Under Server Objects -> Linked Servers, Right click -> New Linked Server. 3) Provide the information to following options: “ 2)打开SQL Server Management Studio,连接到对象资源管理器。在服务器对象->链接服务器下,右键单击->新建链接服务器。3)提供以下选项的信息:

Linked server - Provide the name you will use to refer to this linked server. 链接服务器-提供用于引用此链接服务器的名称。 Server Type - Select "Other data source" as server type. 服务器类型-选择“其他数据源”作为服务器类型。 Clicking this option activates the options below it. 单击此选项将激活其下面的选项。 Provider - Microsoft OLE DB provider for ODBC driver. 提供程序-ODBC驱动程序的Microsoft OLE DB提供程序。 Product name - it could be anything but better to use progress since it is a progress database. 产品名称-使用进度可能更好,因为它是进度数据库。 Data source - ODBC System DSN name. 数据源-ODBC系统DSN名称。 The rest of the options can be left blank". 其余选项可以保留为空白”。

And now it doesn't work! 现在不起作用了! I get an Error-Msg: The linked server has been updated but failed a connection test... Error: 7303. 我得到一个错误消息:链接服务器已更新,但连接测试失败。错误:7303。

Why works the connection test in step 1, but not with step 2? 为什么要在步骤1中进行连接测试,而不能在步骤2中进行连接测试?

Any ideas? 有任何想法吗?

UPDATE 1: 更新1:

Now I tried to import a table from progress to MS Access. 现在,我尝试从进度表导入MS Access。 I use the pA52_T2_ODBC, type in my loginname and password. 我使用pA52_T2_ODBC,输入我的登录名和密码。 Then a window opens and I can chooese all the progress tables. 然后打开一个窗口,我可以选择所有进度表。 But when I choose one and click ok then I get this error: 但是当我选择一个并单击“确定”时,出现此错误:

[DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Access denied (Authorization failed) (7512)(#-20228). [DataDirect] [ODBC Progress OpenEdge Wire Protocol驱动程序] [OPENEDGE]访问被拒绝(授权失败)(7512)(#-20228)。

Why can I pass first with my login data, but in second step it failed about this!? 为什么我可以先传递登录数据,但第二步却失败了!

Your issue seems to stem from the fact that you don't have any tables granted to your SQL login. 您的问题似乎源于您没有将任何表授予SQL登录名的事实。 The Access denied (Authorization failed) message refers to your query on the table, not your login to the database. Access denied (Authorization failed)消息是指您对表的查询,而不是您对数据库的登录。

If you are following the Knowledgebase guide, you'll have to use sqlexp or equivalent to run GRANT scripts against the Progress table(s) you want to query for the SQL login(s) you are using. 如果您遵循知识库指南,则必须使用sqlexp或等效工具来对要查询的SQL登录名使用的Progress表运行GRANT脚本。

For example: 例如:

GRANT SELECT ON PUB.YourTable TO YourUser; COMMIT;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM