构建我自己的SqlDataReader对象

本文关键字:对象 SqlDataReader 自己的 我自己 构建 | 更新日期: 2023-09-27 18:03:44

我需要一些帮助。我一直在考虑该往哪个方向走,有一些选择我都不喜欢,也不能用。

我编写了一个通用的数据转储工具,它从指定的服务器提取数据并将其转储到逗号分隔的文件中。它的配置和要运行的查询来自专门为此工具创建的SQL表。然而,我有一个新的需求,有一些数据转储需要从不同的服务器提取数据并合并在一起,但我不想为这种"自定义"类型的提取/转储更改工具。我试着保持它的通用性,所以我不经常在它上面编码。我的想法是创建一个库,我的报告工具可以使用其中的每个自定义类型的提取,并且该库返回的数据是SqlDataReader对象。然而,由于这个库将不得不从不同的服务器拉并合并数据,是否可能为库创建自己的SqlDataReader与这个拉出的数据,并返回到数据转储工具,或者我想太多了吗?

我不想返回一个数组,因为它不是工具循环通过数据现在,主要是因为我现有的一些数据转储是数百万行,所以我现有的循环是一个数据读取器循环,以保持内存下降。但是,这些库可以创建二维数组,只要它可以在返回之前转换为SqlDataReader对象。这样我就不需要对应用程序中的循环做太多的修改了。

希望这一切都有意义。这句话在我脑子里蹦来蹦去,最后我大概写了10遍。

编辑:请记住,每条记录将分散在3个服务器上,必须合并。这是三个不同的进程,它们一起工作,但有自己的服务器。例如,来自服务器1的ID将与Server2上的Server1ID相关。

构建我自己的SqlDataReader对象

所有ADO。. NET数据访问类实现公共接口,因此您可以返回IDataReader而不是SqlDataReader

我想到了一个解决办法。我将编写对象,它将根据要生成的"自定义"报告动态地生成。该对象将从第一个服务器提取数据并将其插入到本地表/SQL server中。然后,它将转到下一个服务器,根据第一个数据提取数据,并在同一台服务器中更新数据。然后最后一个服务器拉出最终数据,这些数据也需要合并到我的本地表中。一旦所有这些都被正确合并,我将选择*作为原始调用者Data/Dump exe所需的DataReader。似乎是唯一真正的方法,使这项工作,而不修改原来的exe为每个自定义数据拉。

感谢大家的参与。