问题标签 [firebird-embedded]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3024 浏览

node.js - 嵌入式火鸟数据库

我使用这个库连接到嵌入式 firebird 数据库:

https://github.com/xdenser/node-firebird-libfbclient

在“克隆”和“npm install”之后,我收到以下错误消息:

我还尝试使用旧版本的 firebird(2.1.15 版)。出现以下错误:

0 投票
2 回答
335 浏览

c# - 在 64 位 Linux 环境下使用嵌入 firebird 的 Mono

我正在尝试在具有 firebird .net 提供程序(FirebirdSql.Data.FirebirdClient)的 Linux 上使用 Firebird 嵌入式 2.5(64 位)。

我的测试程序集的 FB 嵌入式设置正在使用 Windows Firebird Embedded 版本在 WinX86_64 上运行。在 Linux 上,我使用对应的 FB 嵌入式 Linux 版本将文件放置在程序集目录中:

  • libfbembed.so*
  • 火鸟.msg
  • 安全2.fdb
  • 利比库*
  • 库*

将“RootDirectory”设置为 firebird.conf 中的程序集目录。将 shell 环境变量 LD_LIBRARY_PATH 和 FIREBIRD 设置为程序集目录。

我之前做了什么:

  • 通过 mono dllmap 重定向 Firebird Clientlibrary 不起作用。通过在 C# 代码中显式设置 ClientLib 解决。
  • 在 Linux 上使用 isql 手动创建数据库是可行的。
  • 在 Linux 上通过代码创建数据库是可行的。
  • Firebird .NET 提供程序在调试模式下创建 FB_{sanitizedName}.dll 和 DynamicAssembly.dll
  • .NET 提供者真的很沉默。通过在 linux 上使用“strace mono {testAssembly.exe}”启动程序集来完成调试。
  • 如果页面大小不是 8192,则 FbConnection.CreateDatabase 在“打开 O_CREAT”(调用 FbCreateDatabase)期间因 I/O 错误而崩溃。将显式页面大小设置为 8192 可以解决此问题。

现在,我遇到了以下错误(并在这里停留了好几天......):

  • 打开一个现有的数据库文件(就像这里的代码),崩溃:

    FirebirdSql.Data.FirebirdClient.FbException:无效的数据库句柄(无活动连接)---> 无效的数据库句柄(无活动连接)

怎么了?

0 投票
0 回答
252 浏览

c# - 当一个新的 firebird 数据连接时,在 C# Window 应用程序中,确定按钮处于非活动状态

安装了以下内容: - Visual Studio Community 2015 - 来自 Firebird SQL 网站的 DDEX - 来自 NuGet 的解决方案:EntityFramework v6.1.3、EntityFramework.Firebird v4.10.0、FirebirdSql.Data.FirebirdClient v4.10.0(Firebord ADO.Net 数据提供者)

创建了新的 Firebird 数据连接,确定按钮处于非活动状态。

我在解决方案资源管理器中选择我的数据模型。鼠标右键单击->从模型生成数据库->单击生成数据库向导窗口中的新建连接按钮->从数据源列表中选择Firebird数据源(数据提供者:.NET Framework Data Provier for Firebird)->单击在 Continue 按钮上 -> 并在 Connection Properties 窗口中禁用 OK 按钮,测试连接成功。

App.config 文件:

Visual Studio Community 2015 中的连接属性窗口

有人可以帮助我吗?

对不起,我的英语不好。

0 投票
2 回答
511 浏览

c# - 在 .Net 中检索 Firebird ODS 版本

我正在使用 firebird Embedded v 2.5 和 .net FirebirdSql.Data.FirebirdClient。我需要能够检索给定数据库的ODS版本。

我试过了:

这会生成一个执行:{"Dynamic SQL Error\r\nSQL error code = -804\r\nFunction unknown\r\nRDB$GET_CONTEXT"}

0 投票
1 回答
151 浏览

java - Java 不会在应用关闭时释放所有资源

我有两个 javafx 应用程序一个应用程序和更新程序。 App使用 Firebird 数据库来存储一些脆弱的用户数据。数据库以嵌入式模式运行(我认为这是相关的),这意味着同时只能有一个与数据库的连接(数据库创建一个锁定文件)。 更新程序更新应用程序。

整个架构如下所示:

  1. 用户运行 App-> App 正在检查是否需要更新,如果需要,它会启动 Updater(使用 java ProcessBuilder)并自行关闭(Platform.exit())。
  2. 更新程序检查应用程序是否已正确终止。
  3. 更新程序运行命令“App --export-user-data”(也使用 ProcessBuilder)在开始更新之前导出最重要的内容(必须以这种方式完成 - 我无法将此功能移动到更新程序)。
  4. 应用程序在第一个 session.beginTransaction() 冻结 - 没有单一错误或异常

到目前为止我所观察到的:

  • 当我启动 App 并按 [X] 将其关闭时,“C:\ProgramData\firebird”中的所有锁定文件都将被删除,但当 App 启动更新程序并自行关闭时,锁定文件将保持不变。我认为这就是 Hibernate 无法开始事务的原因。
  • 更新程序的进程不是 App 的子进程(我使用进程监视器检查了这个)
  • 当我直接启动 Updater 时,它就像一个魅力 - 所以问题只有在 App 启动 Updater 时才会出现。

我不能做的事情:

  • 将数据库切换到其他任何东西 - 它必须嵌入 firebird
  • 将导出功能移至更新程序

即使是最奇怪的想法我也会很感激,因为我花了四天时间试图解决这个问题。

编辑: 火鸟版本:2.1 Jaybird 版本:2.1.6

Updater 的启动方式(只有必要的东西)

0 投票
0 回答
540 浏览

c++ - 以编程方式检测是否处于沙箱中和/或处于文件夹虚拟化对象中

我从头开始重写了这个问题,以便专注于真正被问到的问题,并避免类似帮助台的评论或答案

我最近遇到了一个问题(实际上有两个实例),我的一个 Windows 程序使用具有正常用户权限的 Firebird 嵌入式引擎,其行为方式出乎意料。在这两台机器上关闭防病毒软件后,意外行为消退了。因此,我认为我的程序要么被沙盒化,要么受制于文件夹虚拟化(Ken White 在评论中指出的可能性)。

由于这个(沙盒或虚拟化)一个用户经历了数据丢失,我希望至少能够检测到这种情况何时发生并警告我的应用程序的任何未来用户潜在的数据丢失。唯一的事情是我真的不知道这些“功能”是如何工作的。我担心每个可以做到这一点的 AV 都会有所不同。我的检测必须在从 WinXP 到 Win10 的 Windows 上工作。

请有人指出正确的路径,我需要解决这个问题,这样我的应用程序用户就不会面临数据丢失。

0 投票
2 回答
4944 浏览

c# - Firebird .NET 提供程序和嵌入式服务器 3

我正在尝试使用 .NET Firebird Provider 连接到嵌入式 FB 3.0.1 服务器。

据我所知,(也写在这里(第 6 页)),不再有 fbclient.dll\fbembed.dll,而是一个用于远程和嵌入式访问的客户端 fbclient.dll。

但是当我调用 FBConnection.Open() 时,我得到一个 System.DllNotFoundException:

有任何想法吗?

0 投票
3 回答
500 浏览

c# - 嵌入式服务器应用程序在退出后停止工作

我有一个在 firebird 数据库中存储一些数据的应用程序。我正在使用嵌入式 firebird 服务器和 EntityFramework,并且一切正常,但是当我通过表单上的 x 按钮关闭我的应用程序时,我收到一条 Windows 系统消息“应用程序已停止工作”,我无法捕捉到这个异常。我的应用程序中有一个 UnhandledExceptionHandler :

但是这种异常从未被它捕获。所以我去了windows事件日志,在那里找到了错误事件的xml视图:

如您所见,当应用程序已关闭时 fbintl.DLL 出现问题。那么我怎样才能得到关于这个问题的更详细的描述呢?

UPD 我让应用程序更短以检测我的问题的原因 - 现在只有这个 EF 代码在应用程序关闭之前运行

FirebirdDbContext 在哪里:

连接参数是

新更新 25.04.2017

我用 firebird 嵌入式数据库制作了一个简单的应用程序来演示错误。你可以在这里找到它

该应用程序创建一个firebird嵌入式数据库并在后台线程(任务TPL)中连接到它,工作完成后(_bgTask.Status == TaskStatus.RanToCompletion)您关闭应用程序并收到错误消息。

0 投票
1 回答
1727 浏览

c# - 如何以编程方式创建 Firebird 数据库文件?

如何以编程方式创建 Firebird 数据库文件?

我已经使用 SQLite (C# .NET, System.Data.SQLite) 编写了代码......决定尝试 Firebird。

要安装 Firebird:Windows 7 -> Visual Studio 2013 -> 文件 -> 新建 -> 项目等 ---------- 然后工具 -> 库包管理器 -> 管理 NuGet 包 -> 搜索“firebird " -> Firebird ADO.NET 数据提供者 -> 安装(按钮)。

导致 a) 参考 -> FirebirdSql.Data.FirebirdClient,和 b) FirebirdSql.Data.FirebirdClient.5.8.0 子目录 ... 带有 Firebird .dll 的。

要创建 Firebird 数据库文件,我尝试过(摘自另一个 StackOverflow 帖子):

我以为这是标准的,除了 stPathFilename。但是,此代码通过异常...抱怨 fbclient.dll。

然后我尝试了

...位于我的调试子目录中。

这会引发异常......“无法在 DLL 'FirebirdSql.Data.FirebirdClient.dll 中找到名为 'isc_create_database' 的入口点”。

如何以编程方式创建 Firebird 数据库文件?

0 投票
2 回答
806 浏览

c# - 为什么 ExecuteNonQuery 捕获异常 {"validation error for column \"ORGTABLE\".\"FIKEYID\", value \"* null *\""}

为什么 ExecuteNonQuery 捕获异常 {"validation error for column \"ORGTABLE\".\"FIKEYID\", value \" * null * \""}

stTableName 是 OrgTable。

字段名称为:

字段定义如下:


在这部分代码中:

四个 fbCmd.Parameters.AddWithValue:

我没有为 fiKeyID 添加一个值,因为它作为主键。