将数据从 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 数据库中的日期
如何使用 Java 8 连接到 Sybase Advantage Local DB