问题标签 [firebird-.net-provider]

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 回答
288 浏览

entity-framework - EntityFramework Firebird 数据库优先

我正在尝试使用 Nuget 包中的 Firebird EF 从数据库创建模型。我正在运行这个命令:

Scaffold-DbContext "User=SYSDBA;Password=xxxxxxx;Database=XXXXXXXXX;DataSource=XXXXXXXXXX;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;" FirebirdSql.EntityFramework.Firebird -OutputDir Models

我收到此错误:

`

0 投票
1 回答
131 浏览

firebird - Firebirdclient 和 Select 语句无故变慢

我有一个或多或少 10 年的 .Net 4.6.1 Winforms 应用程序。它从一开始就运作良好,但在过去的几周里,我遇到了一个从未遇到过的问题。

  • Firebird 2.5(可用的最新版本)
  • .net 客户端(可用的最新版本)
  • Visual Studio 2015 或 2019(在两个版本中,同样的问题)

现在,应用程序,当是关于 Firebird 时,调用一系列 select 语句来加载数据集。它像往常一样运作良好,因为它总是有效。几周以来,整个 select 语句序列都很慢,非常慢。

我说的慢是什么意思?在我的 PC 中加载整个数据集通常需要 5 或 6 秒,现在需要 70 秒,没有理由。架构或顺序没有任何变化,环境中没有添加或删除任何内容。

但是,我不知道为什么,该软件的发布版本和原来一样快,所以我真的不明白重点在哪里。我在 Visual Studio 中有一个调试版本,它在使用一组选择语句加载数据时速度很慢,而发布版本则像往常一样快。

现在,当我第一次意识到软件运行很慢时,我将整套 Firebird 组件升级到最新版本,但没有任何乐趣。我还在使用旧版本,因为我没有真正的升级理由:“它有用吗?别碰它!”

在发布版本中,我使用嵌入式 Firebird 版本,因为我必须重新分发应用程序。在调试中,服务器版本,所以我可以用 IBExpert 管理数据库并一起运行软件。自古以来就是这样。

所以,我正在寻找一个建议,因为我不知道在哪里或寻找什么。

0 投票
1 回答
615 浏览

c# - FirebirdSql.Data.FirebirdClient 与 Sysdba 以外的用户连接 - 未定义用户名和密码

我使用 FirebirdSql.Data.FirebirdClient 连接到 Firebird 数据库(WPF 桌面应用程序)。

服务器版本:WI-V3.0.5.33220 Firebird 3.0,ADO.net provider version 7.5.0 (NuGet)

我创建了一个除 SYSDBA 之外的用户,该用户只有对表的只读访问权限(仅限 SELECT)。与 FlameRobin 连接对这个新用户没有任何问题。但是,当我在 FbConnectionStringBuilder 类中指定这个新用户和相应的只读角色时,我得到一个

“您的用户名和密码未定义”

错误。如果我用 SYSDBA 和相应的密码替换新用户,则连接有效。

除了密码错误(我检查了两次并且还使用 FlameRobin)之外,这个错误的原因可能是什么?

0 投票
1 回答
371 浏览

c# - 在 C# 中添加 ID 列表作为 Firebird 查询的参数

我想更新由 ID 列表给出的行列表。通常,查询的参数可以通过参数属性传递。但如果我传递一个 ID 列表,Firebird 将不接受该查询。我正在使用 NuGet 的 FirebirdSql.Data.FirebirdClient。

代码(简化):

表“someTable”的定义如下:

这是一个例外:

引发的异常:FirebirdSql.Data.FirebirdClient.dll 中的“FirebirdSql.Data.FirebirdClient.FbException”在 >FirebirdSql.Data.FirebirdClient.dll 中发生“FirebirdSql.Data.FirebirdClient.FbException”类型的异常,但未在用户代码中处理算术异常、数值溢出或字符串截断 字符串右截断

0 投票
1 回答
129 浏览

c# - FBCommand 列未知?

FBCommand用来将数据插入到 ASP.NET 中的单个表中并使用 <defaultConnectionFactory type="FirebirdSql.Data.EntityFramework6.FbConnectionFactory, EntityFramework.Firebird" />

在我的插入方法中,我创建了以下命令:

(我在:这里使用而不是@,因为当我用于@参数时,它给了我一个未知标记“@”错误)

当它尝试将命令作为“ExecuteNonQuery”运行时,我收到 SQL 错误 -206 Column Unknown NACHNAME

我确信这里没有错字: https ://gyazo.com/6366c37e86a2073a157b38bd732e3ecd

我不知道错误可能是什么。我什至关注了 Firebird 主页上的常见问题解答(奇怪的是他们在其中添加了参数@,但那是另一回事了)

这是该方法的完整代码:

0 投票
0 回答
55 浏览

c# - 过滤或插入时 Entity Framework Core 3.12 Firebird.Core 7.10.1 中的字符集问题

是否可以设置用于过滤的字符集,在实体框架中插入不更改数据库默认字符集

如果我执行原始 SQL,过滤工作,但如果我使用对象,如果有特殊字符,它会失败。

在职的

不工作

在连接字符串中定义字符集时,它仅在读取数据时才有效。

0 投票
1 回答
234 浏览

firebird - Firebird 3 迁移后 Firebird 连接字符串不起作用

从 v2.5 迁移 firebird 3 后,我使用 TCP\IP 连接字符串进行了回归。FirebirdClient 版本是 4.6.1,但我已经使用最新的稳定版本进行了测试,但它也不起作用(v7.10.1)。

错误消息是“您的用户名和密码未定义。请您的数据库管理员设置 Firebird 登录”。

堆栈跟踪:

用户是通过 IBExpert UI 创建的。

这是连接字符串的外观(显然不是现实生活中的连接数据):

如果使用标准相同的网络连接字符串,则相同的用户可以工作,如下所示:

我的 firebird.conf 设置如下:

不知道我在这里缺少什么。上面的连接字符串适用于 SYSDBA。根据我读过的火鸟文档,它看起来不错。我已经阅读了具有相同问题的所有其他 stackoverflow 票证,但没有看到任何适合我的答案。有任何想法吗?

0 投票
1 回答
189 浏览

entity-framework-core - EF 与现有 Firebird 数据库模型生成问题

我有一个Firebird带有表的数据库。我需要生成DbContext,模型等。所以安装了提供程序:

包

连接字符串没问题:

数据库连接正常:

结果

尝试使用命令创建模型:

看起来不错:

命令结果

但是,DBcontext 是空的:

没有型号

0 投票
1 回答
353 浏览

c# - 如何从 Firebird 数据库中读取字符集 NONE 的数据?

有一些基于 NONE 编码的旧数据库,具有独特的拉丁字符,如 á,读起来像?. 现在,正确的形式是以正确的字符集形式 NONE 读取 DB,它是在连接字符串中指定的,但是如果指定 charset = NONE,库 FirebirdSql.Data.FirebirdClient 也不会读取这些值。我该如何解决这种情况?现在的结果就像“编辑”,但需要带有撇号。我正在使用 .NET Core 和 FirebirdSql.Data.FirebirdClient 版本 7.10.1,我尝试降级并且是相同的。

0 投票
1 回答
427 浏览

c# - ADO.NET FirebirdSql.Data.FirebirdClient.FbException:“无法完成对主机的网络请求”

尝试将我的 C# 程序连接到现有的 Firebird 服务器时,我遇到了一个非常奇怪的问题。

首先,这可以通过https://github.com/FirebirdSQL/NETProvider/blob/master/Provider/docs/ado-net.md的 Firebird 文档中的默认连接示例重现

当我在我的机器上时一切正常,我还可以连接到我同事 PC 上的 Firebird 服务器。

但我无法连接到其他开发服务器上的 Firebird 服务器。我在另一个问题中找到了答案,并想告诉您服务器没有互联网访问权限。 https://stackoverflow.com/a/57569057/2785084

这是我得到的例外:

FirebirdSql.Data.FirebirdClient.FbException:“无法完成对主机的网络请求”没有找到错误代码 335544721 的消息。”

IscException:无法完成对主机的网络请求“未找到错误代码 335544721 的消息。IOException:无法从传输连接读取数据:现有连接被远程主机强制关闭

我已经更新到最新的稳定版本的 Firebird。我可以保证服务器正在运行并且没有防火墙阻止我的连接,因为当我尝试连接旧的 Delphi 程序时,一切正常。我还可以使用来自 Flamerobin.org 的轻量级 Firebird 管理工具 Flamerobin 进行连接,我认为它是用 C++ 编写的。

当我尝试与 DBeaver 连接时,我收到以下消息:

[SQLState:28000, ISC 错误代码:335544472] 您的用户名和密码未定义。请您的数据库管理员设置 Firebird 登录。

我很确定用户名和密码是正确的。我不使用默认密码,而是使用带有@符号的密码,可能与此有关。

我现在有 2 个可以连接的程序(Delphi 和 C++),还有两个不能连接的程序(C# 和 Java)。有没有人有任何线索或调整如何更改我可以连接到服务器的连接?