+-
c#-为System.Data.Common创建自定义驱动程序
背景:

我们的C#应用​​程序生成并执行对几种类型的数据库(Oracle,SQL Server,MySQL)的查询,但是提出了将它们也应用于专有文件格式的要求.

>到目前为止使用的名称空间是System.Data.Common.
>我们需要应用的查询很简单(嵌套的SELECT,FROM中的别名,子字符串方法和字符串连接)

我们最初将专有文件的内容转换为CSV,为此存在驱动程序{Microsoft文本驱动程序(* .txt; * .csv)}.但是,客户端要求不生成任何临时文件,并且所有内容都应在内存中进行.

创建ODBC驱动程序直接查询文件似乎太耗时.因此,我们正在考虑创建一个驱动程序(可能是ODBC),在其中我们将“嵌入” SQLITE ODBC驱动程序.在该驱动程序内部,我们可以将CSV文件的内容加载到“内存中”数据库中,然后将查询转发到内部ODBC驱动程序.

我的问题:

>该解决方案似乎可行吗?
>为了从头开始创建ODBC驱动程序,我们应该从哪里开始?

谢谢

最佳答案
如果有可能使用SQLite作为后端,我真的看不到为什么您不能对SQLite数据库使用ADO .NET提供程序,例如 System.Data.SQLite.

从您的评论来看,我认为您实际上对所有数据库连接(System.Data.Odbc)使用ODBC ADO .NET提供程序.如果您需要保持相同的方案,那么可以使用自定义ODBC提供程序(但是那是纯C本机开发,我认为这很痛苦).

另一种方法是在数据库中添加第三个参数(前两个参数是SQL和连接字符串):要使用的ADO .NET提供程序(例如supposed to be done in configuration files,请参见providerName属性).这样,您可以使用任何可用的ADO .NET提供程序.

然后,您可以将SQLite提供程序包装到您自己的自定义ADO .NET提供程序中,其中可以包括SQLite数据库的生成和填充.该解决方案的优势:纯托管.NET.

点击查看更多相关文章

转载注明原文:c#-为System.Data.Common创建自定义驱动程序 - 乐贴网