首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >读取Pervasive Database 9而不创建ODBC DSN

读取Pervasive Database 9而不创建ODBC DSN
EN

Stack Overflow用户
提问于 2013-01-23 15:37:12
回答 2查看 2.1K关注 0票数 0

我正在用C# (.NET 4.0)编写一个应用程序,它必须与另一个更老的应用程序集成。部分要求是我的程序必须从三个Btrieve文件中读取数据。我可以假设这些Btrieve数据文件已经存在于安装了我的程序的计算机上,并且我还可以假设还将安装普及的PSQL V9,并且关系和事务服务程序正在运行。

我有相关的DDF文件,可以将它们作为应用程序的一部分进行安装。按照它们的创建方式,我必须将它们放在与Btrieve数据文件所在目录不同的目录中。(它们必须是数据文件所在目录的子目录)。

刚开始时,我对Pervasive或Btrieve一无所知,但经过一些试验,我已经可以使用32位ODBC管理工具创建DSN,并且可以使用ODBC ADO连接器读取数据文件。到目前为止一切都很好。

我的问题是,是否可以从.NET程序中读取这些文件,而不必在计算机上创建ODBC DSN?换句话说,可以在ODBC连接字符串中指定*.DAT文件所在的目录和*.DDF文件所在的目录吗?

我并不致力于使用ODBC,我很乐意使用OLEDB或任何其他允许我使用.NET可靠地读取这些文件的技术。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-23 21:41:57

虽然无DSN连接允许您在没有DSN的情况下进行连接,但您仍然需要一个数据库名称。可以使用DTIDTO动态创建普适数据库名称。使用C#,我建议使用DTO。

如果不能创建数据库名称,可以使用OLEDB。它支持在连接字符串的Data Source参数中使用路径,如OLEDB文档的Remote Connections部分所述。

还有一点需要注意的是,请确保将.NET程序编译为x86而不是AnyCPU。普及的OLEDB提供程序只有32位。如果您的应用程序安装在编译为AnyCPU的64位操作系统上,它将查找64位提供程序并失败。

票数 1
EN

Stack Overflow用户

发布于 2013-01-23 17:06:45

您应该搜索无DSN连接。不是将DSN=mydsn传递给connect方法(其中mydsn是您设置的DSN ),而是传递DRIVER=xxx (其中xxx是驱动程序的名称)和它将其定向到文件所需的任何其他属性。有许多站点都有不同ODBC驱动程序的连接字符串列表,所以如果您找不到ODBC驱动程序的文档,那么一个站点肯定会列出无处不在的连接字符串。另一种方法是在注册表中查看DSN,在注册表中可以找到需要指定的属性的名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14474589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档