将数据从 Advantage 数据库服务器传输到 SQL Server

Posted

技术标签:

【中文标题】将数据从 Advantage 数据库服务器传输到 SQL Server【英文标题】:Transferring data from Advantage Database Server to SQL Server 【发布时间】:2009-12-08 21:08:06 【问题描述】:

我的客户正在使用 Advantage 数据库服务器并希望迁移到 SQL Server,但显然希望将其所有客户数据作为升级到 SQL Server 的一部分。

我曾考虑编写一个应用程序来进行传输,但认为这可能比它的价值更麻烦。

你会推荐什么?

【问题讨论】:

【参考方案1】:

我在开发应用程序时在sql server 和优势服务器之间切换,我主要使用sql server management studio 中的导入数据功能来做到这一点。基本上创建一个数据库并使用 oledb 驱动程序导入数据以获得优势 - 可从优势数据库网站获得。尝试this link 了解更多信息。再次返回有点棘手......但那是另一回事了。

如果只是一次性转移就可以解决问题,那么您将对转移有相当程度的控制。请注意,有关 PK 和数据关系的信息可能无法在传输中保留下来,因为至少具有 adt/adi 文件优势的数据库服务器不会记录表之间的关系。如果他们想保持优势数据库运行并在两个数据库中保留数据副本,我还没有尝试过。在这种情况下,来自 OMG Ponies 的建议可能会奏效。

【讨论】:

感谢会调查它。让它变得复杂的是用户群。显然他们没有专业知识,所以我需要启动一个我认为可以进行数据传输的应用程序,而我不希望这样做! 优势数据库通常用于专业知识水平较低的情况,因为通常数据库不需要维护,因为通常存储的数据量相对较低。我有几年的优势经验,所以如果您需要任何帮助,请告诉我。但是请先尝试使用 odbc 的 sql server 导入工具,因为这至少可以为您提供数据结构的开始。如果您在同一个应用程序中连接到两个数据库,请使用 ado,因为两个数据库都使用该技术连接得很好。查找 tdataset 组件以便在 delphi 中使用,不确定 c。 我将编写的用于数据传输的应用程序将使用 C#。我们正在从 Delphi/Advantage 迁移到 C#/MSSQL。我猜我将不得不执行 sp_addlinkserver 命令来链接优势数据库。然后,我将需要以某种方式从优势数据库中获取架构,但我也许可以对其进行硬编码,然后执行创建数据库命令和大量创建表。然后遍历所有导入数据的优势表。好玩! 玩得开心!抱歉不懂C#。我建议获取最新版本的优势数据架构师。从我回复中的链接下载。由优势人员编写的非常简单的德尔福应用程序。它有一个很好的功能,可以输出创建您在 delphi、c++ 或 sql 中选择的表所需的代码。至少可以为您的代码提供一个良好的起点......最新版本可能会使用 C# 我主要使用 6.1,因为大多数用户仍在这个旧版本的服务器上。我相信最新版本的优势是 9.1 或 9.2。 您知道是否可以通过 SQL Server Import 导入所有表,因为我只看到编写查询以导入数据的选项,而不是选择所需表的选项。【参考方案2】:

没有使用(或听说过)Advantage Database Server,但我会:

    设置一个连接到 Advantage 数据库的linked server instance in SQL Server。您将需要 Advantage db 的 OLE 驱动程序 - this link 可能会有所帮助。 一旦到位,您就可以将行从 Advantage db 中吸出并进入 SQL Server 中,而无需脚本。

对于不太持久的解决方案,您可以使用OPENROWSET 打开与 Advantage 数据库的连接。它使用与链接服务器相同的 OLE 驱动程序,但连接仅在您使用时打开。

【讨论】:

这会如何自动化?用户自己无法做到这一点,所以我必须给一些排序按钮以单击并开始数据传输 @Jon:自动化?您设置一次,不再需要时禁用/删除。权限和访问取决于它用来连接的 Advantage 用户。 对不起,我的意思是用户不会打开 SQL Server 并进行传输。他们需要为他们做点什么,所以我需要编写一个我认为创建链接服务器的应用程序,然后跨行传输【参考方案3】:

如果您觉得需要对 ETL 过程进行更多控制,您也可以使用 SSIS,否则正如 OMG Ponies 建议的那样。正如 Sybase 所宣传的“零管理,无需 DBA”——您和您的数据迟早会从这里增长。有一个ODBC driver available,所以看起来可行。

【讨论】:

以上是关于将数据从 Advantage 数据库服务器传输到 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

Java + Advantage 数据库服务器 -> 登录失败

如何将 100 年添加到 Advantage 数据库中的日期

优势错误 6082

如何使用 Java 8 连接到 Sybase Advantage Local DB

Advantage 和 PHP - 错误 6303:超过最大 Advantage 数据库服务器连接数

Sybase Advantage 数据库服务器和 64 位 VFP OLE 提供程序