背景:

我们C#应用程序生成和执行查询的几类型的数据库(Oracle、SQL服务器,MySQL),但需要来到也适用它们的专有格式的文件。

  1. 空间使用到现在为止被系统。数据。常见的。
  2. 查询我们需要应用是非微不足道(嵌套的选择,别名,substring方法和串连接)

我们最初转化为内容的专利文件为CSV,对于其中存在着驱动器 {微软文字驱动(*.txt;*.csv)}.然而,客户需要,没有临时文件产生的,一切都应该发生在存储器。

创建一个ODBC driver查询该文件直接似乎过时要求。因此,我们正在考虑创建一个司机(可能ODBC),其中我们将"嵌入"的源码ODBC driver.内,驱动,我们可以载的内容CSV文件中的"在存储器"的数据库,然后前进的查询内ODBC driver.

我的问题:

  1. 这不会解决方案似乎是可行的?
  2. 我们应该从哪里开始,以便创造一个ODBC driver从头开始?

感谢

有帮助吗?

解决方案

如果使用源码作为后端的可能性,我真的不能看为什么你不能使用ADO.净提供者你源码数据库喜欢 系统。数据。源码.


从你的意见,我认为你是有效的使用ODBC ADO.净提供者的所有数据库连接(系统。数据。Odbc)。如果你需要保持相同的方案,那么一个自定义ODBC提供商的方式去(但它是简单的C地发展,并相当痛苦,我相信).

另一个方向走就可以添加的第三个参数的数据库(第二被SQL和连接string):ADO.净提供者可使用(喜欢它 应该是完成结构的文件, 见 providerName 属性)。这种方法可以使用任何ADO.净提供者。

然后你可以包裹的源码提供者进入你自己的定义,ADO.净提供者,这可能包括产生和人口的源码数据库。利用这一解决方案:纯粹的管理。网。

其他提示

客户的要求是奇怪的。总是会有文件的参与,你们阅读一个文件。

如果他们想要他们的东西在存储器(又一个奇怪的客户)把Csv到RAM盘:http://members.fortunecity.com/ramdisk/RAMDisk/ramdriv001.htm

建设和ODBC驱动是一个非繁琐的承诺,如果你关心的性能和稳定性。

我认为你的解决方案是耗费时间。你可以找到现有的解决方案,为什么你们试图要做。这里有几个候补委员。

为什么不试试皇宫的文本/csv的文件?

这两个解决方案是在存储器。

另一个想法是,你可以出口文件xml而不是csv或文本(我总是喜欢出口成xml当我需要的过程在我的代码)。比你使用System.Xml 或皇宫Xml执行操作。

如果你仅仅是限制不建立临时文件,你可以尝试使用在存储器模式源码.这里有一个样本的连接串为它(来源):

Data Source=:memory:;Version=3;New=True;

我认为,这是比较简单的建立完全成熟的提供者。$

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top