问题标签 [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.
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
我收到此错误:
`
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 管理数据库并一起运行软件。自古以来就是这样。
所以,我正在寻找一个建议,因为我不知道在哪里或寻找什么。
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)之外,这个错误的原因可能是什么?
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”类型的异常,但未在用户代码中处理算术异常、数值溢出或字符串截断 字符串右截断
c# - FBCommand 列未知?
我FBCommand
用来将数据插入到 ASP.NET 中的单个表中并使用 <defaultConnectionFactory type="FirebirdSql.Data.EntityFramework6.FbConnectionFactory, EntityFramework.Firebird" />
在我的插入方法中,我创建了以下命令:
(我在:
这里使用而不是@
,因为当我用于@
参数时,它给了我一个未知标记“@”错误)
当它尝试将命令作为“ExecuteNonQuery”运行时,我收到 SQL 错误 -206 Column Unknown NACHNAME
我确信这里没有错字: https ://gyazo.com/6366c37e86a2073a157b38bd732e3ecd
我不知道错误可能是什么。我什至关注了 Firebird 主页上的常见问题解答(奇怪的是他们在其中添加了参数@
,但那是另一回事了)
这是该方法的完整代码:
c# - 过滤或插入时 Entity Framework Core 3.12 Firebird.Core 7.10.1 中的字符集问题
是否可以设置用于过滤的字符集,在实体框架中插入不更改数据库默认字符集
如果我执行原始 SQL,过滤工作,但如果我使用对象,如果有特殊字符,它会失败。
在职的
不工作
在连接字符串中定义字符集时,它仅在读取数据时才有效。
firebird - Firebird 3 迁移后 Firebird 连接字符串不起作用
从 v2.5 迁移 firebird 3 后,我使用 TCP\IP 连接字符串进行了回归。FirebirdClient 版本是 4.6.1,但我已经使用最新的稳定版本进行了测试,但它也不起作用(v7.10.1)。
错误消息是“您的用户名和密码未定义。请您的数据库管理员设置 Firebird 登录”。
堆栈跟踪:
用户是通过 IBExpert UI 创建的。
这是连接字符串的外观(显然不是现实生活中的连接数据):
如果使用标准相同的网络连接字符串,则相同的用户可以工作,如下所示:
我的 firebird.conf 设置如下:
不知道我在这里缺少什么。上面的连接字符串适用于 SYSDBA。根据我读过的火鸟文档,它看起来不错。我已经阅读了具有相同问题的所有其他 stackoverflow 票证,但没有看到任何适合我的答案。有任何想法吗?
c# - 如何从 Firebird 数据库中读取字符集 NONE 的数据?
有一些基于 NONE 编码的旧数据库,具有独特的拉丁字符,如 á,读起来像?. 现在,正确的形式是以正确的字符集形式 NONE 读取 DB,它是在连接字符串中指定的,但是如果指定 charset = NONE,库 FirebirdSql.Data.FirebirdClient 也不会读取这些值。我该如何解决这种情况?现在的结果就像“编辑”,但需要带有撇号。我正在使用 .NET Core 和 FirebirdSql.Data.FirebirdClient 版本 7.10.1,我尝试降级并且是相同的。
c# - ADO.NET FirebirdSql.Data.FirebirdClient.FbException:“无法完成对主机的网络请求”
尝试将我的 C# 程序连接到现有的 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)。有没有人有任何线索或调整如何更改我可以连接到服务器的连接?