【问题标题】:connecting to H2 database连接到 H2 数据库
【发布时间】:2020-12-18 12:56:50
【问题描述】:

我有一个名为 xxx.h2.db 的文件 我的目标是能够执行查询以删除/编辑记录(最好在 C# 应用程序中)。

DBeaver

我尝试使用 DBeaver 使用 H2 嵌入式选项打开文件。这会产生 2 个架构:

  • INFORMATION_SCHEMA
  • 公开

不幸的是,公共架构没有表。 考虑到文件大小约为 150mb,我没想到会有这个结果。 打开数据库时,我注意到它在 H2 数据库的目录中创建了另外两个文件:

  • xxx.h2.db.mv.db
  • xxx.h2.db.trace.db

C#

在尝试使用本文中提到的 ODBC 驱动程序时:https://wiki.postgresql.org/wiki/Using_Microsoft_.NET_with_the_PostgreSQL_Database_Server_via_ODBC

我遇到了这一步,我不确定要输入什么信息。 Image of ODBC datasource administrator

安装 ODBC 驱动程序后,您需要添加一个新用户 数据源。这是通过转到“控制面板”、“管理员”来实现的。 工具”、“数据源 (ODBC)”。然后选择“添加用户 DSN”。 [笔记: 这些名称和位置可能会因不同的 Win 操作系统而略有不同。]

选择PostgreSQL驱动,填写你的服务器和数据库 细节。您还必须指定唯一的 DSN 名称;在 Windows 2000 这个 令人困惑的是,在数据输入对话框中,该字段被标记为“数据源” 框而不是更合适的“数据源名称”。这是 您稍后将在程序中使用此名称来指定哪个 您要使用的数据库连接。当然你可以拥有尽可能多的 根据需要为不同的数据库、服务器和服务器提供用户 DSN 条目 用户。

问题

  1. 为什么我在 DBeaver 中看不到任何公共表?
  2. 我是否在正确的轨道上让它通过 ODBC 工作?我应该输入哪些信息?

谢谢

【问题讨论】:

  • 要么数据库没有数据,要么您没有读取表格的凭据。

标签: c# h2 dbeaver


【解决方案1】:
  1. 您似乎在连接 URL (xxx.h2.db) 中包含了文件扩展名,但您需要指定不带扩展名的数据库路径 (xxx)。

    另请注意.h2.db扩展属于旧的存储引擎(PageStore),它仍然支持,但它有一些限制。

    此外,您需要确保使用与创建数据库文件时使用的相同版本的 H2,使用不同版本可能会导致其损坏。

  2. 使用 PostgreSQL 的 ODBC 驱动程序通过 ODBC 连接到 H2 只是实验性的,它可能根本不起作用。自上次发布以来,这方面有一些改进,但即使 H2 是从其当前来源编译的,这也不是一件可靠的事情。此外,与此驱动程序的 ODBC 连接现在使用 H2 的 PostgreSQL 兼容模式,因此它们可能与您现有的数据库不兼容。您也可以尝试使用一些第三方(可能是商业)桥接 JDBC for .NET 而不是该功能。

【讨论】:

    猜你喜欢
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    相关资源
    最近更新 更多