标签: firebird

Firebird 2.5 报告“不是有效的数据库”,尽管它是

我有两台运行 Firebird 的计算机(我们称它们为 A 和 B)和两个数据库文件(我们称它们为 a.fdb 和 b.fdb),都复制到两台计算机上。在 BI 上获取消息

b.fdb 不是有效的数据库 其他文件工作,在 A 上两个文件工作。

这很容易解释,如果 B 是旧版本,但它是新版本(它是 FB 2.1,由于这个问题,我安装了 FB 2.5)。文件 a.fdb 和 b.fdb 分别具有 ODS 11.1 和 10.1。看起来新版本的 FB 不再支持 ODS 10.1,我不敢相信。但我看不到其他解释,你能吗?

firebird firebird2.5

1
推荐指数
1
解决办法
2万
查看次数

Firebird DB 大小不变

我正在使用 Firebird DB,并且执行了以下操作。我创建了一个数据库,并在其中填充了大量记录(数据库文件的大小为113MB)。然后我删除所有记录,但大小保持不变。有什么方法可以“缩小”或“打包”数据库文件吗?

firebird

1
推荐指数
1
解决办法
2484
查看次数

如何根据使用触发器修改的记录的值更新另一个表上的记录

我有两个简单的(仅用于解释我的问题)表

  1. X与列(以及其他):IDX,CODE,NUMBER
  2. Y与列(以及其他):CODE,NUMBER,id_fromX

我想(在插入或更新表X之后)更新表Y使用来自X的实际记录中的变量.为此,我尝试使用触发器(在表X中),如下所示:

SET TERM ^^ ;
CREATE TRIGGER XYZFOR X ACTIVE AFTER INSERT OR UPDATE POSITION 0 AS
begin
  if  (new.CODE is distinct old.CODE)  then
  BEGIN
  EXECUTE STATEMENT ('UPDATE Y SET CODE=:old.CODE, id_fromX=:old.IDX WHERE NUMBER=:old.NUMBER');
  END
end ^^
Run Code Online (Sandbox Code Playgroud)

但我从服务器收到错误:

Execute statement error at jrd8_prepare :\
335544569 : Dynamic SQL Error
335544436 : SQL error code = -104
335544634 : Token unknown - line 1, column 23
335544382 : .
Statement : UPDATE Y SET CODE=:old.CODE, id_fromX=:old.IDX WHERE NUMBER=:old.NUMBER\ …
Run Code Online (Sandbox Code Playgroud)

firebird triggers sql-update

1
推荐指数
1
解决办法
611
查看次数

firebird使用.net提供程序嵌入多个插入

我正在开发一个应用程序,它将使用firebird嵌入式和/或postgres,具体取决于用户的复杂程度.firebird嵌入式的论点是应该减少安装,防火墙,UAC等问题.到目前为止,postgres就像在云上行走一样,但我遇到了火鸟的路障.该应用程序是.net,我正在使用此提供程序http://www.firebirdsql.org/en/net-provider/版本3.0.2

一切都在技术上有效,但嵌入了firebird我每秒只插入大约100条记录,而postgres每秒超过3000条记录!使用postgres,我将大量的INSERT INTO ...语句作为一个命令启动,这很好.对于火鸟来说,它并不顺利.这是什么工作(慢慢地)

String query = @"INSERT INTO Customers(ID, Name, SiteID) VALUES(1,'delta',2);
INSERT INTO Customers(ID, Name, SiteID) VALUES(2,'phoenix',2);
";
FbScript fbs = new FbScript(query);
fbs.Parse();
FbConnection fbc = new FbConnection(ConnectionString);

FbBatchExecution fbe = new FbBatchExecution(fbc, fbs);
fbe.Execute(true);
Run Code Online (Sandbox Code Playgroud)

但是,我试图没有解析.类似于第二个答案的东西使用isql或者在这里http://www.firebirdfaq.org/faq336/ 对firebird数据库运行多个插入查询

String sql = @"set term ^ ;
EXECUTE BLOCK AS BEGIN
INSERT INTO Customers(ID, Name, SiteID) VALUES(1,'delta',2);
INSERT INTO Customers(ID, Name, SiteID) VALUES(2,'phoenix',2);
end^";

FbCommand cmd = new FbCommand();            
PrepareCommand(cmd, connection, (FbTransaction)null, CommandType.Text, sql, commandParameters, …
Run Code Online (Sandbox Code Playgroud)

.net c# firebird firebird-embedded

1
推荐指数
1
解决办法
1997
查看次数

意外的 GDS 异常:335544726。从连接读取数据时出错

我有一个在 Apache Tomcat 6 上运行的 Web 应用程序,使用 ZK、Hibernate 和 Jaybird JDBC 来访问 Firebird 数据库。由于某些未知原因,在执行动态 SQL 的应用程序中执行尚未映射的操作后,它崩溃并出现以下异常:

错误:org.springframework.transaction.TransactionSystemException:无法回滚 JPA 事务;嵌套异常是 javax.persistence.PersistenceException:回滚时出现意外错误 javax.persistence.PersistenceException:回滚时出现意外错误 org.hibernate.TransactionException:JDBC 回滚失败 [SQL:335544726,HY000] org.firebirdsql.jdbc.FBSQLException:GDS 异常。335544726。从连接读取数据时出错。

原因:从连接读取数据时出错。...

那么,此后用户执行的任何操作都会导致以下错误:

错误:javax.persistence.PersistenceException:org.hibernate.exception.GenericJDBCException:无法执行查询org.hibernate.exception.GenericJDBCException:无法执行查询[SQL:335544721,HY000] org.firebirdsql.jdbc.FBSQLException:GDS异常。335544721. 无法完成对主机“”的网络请求。原因:无法完成对主机“”的网络请求。

系统崩溃了,就像失去了与数据库的连接一样。

以前有人经历过吗?

java firebird hibernate jdbc jaybird

1
推荐指数
1
解决办法
8072
查看次数

Firedac - 连接到Firebird 2.5嵌入式

无论我做什么,我似乎无法使用Firedac连接到Firebird 2.5嵌入式数据库.有趣的是,昨天它似乎工作,现在突然间它不会.

相反,为了让我的脑袋突然停止工作,我开始重建一个干净的项目,这样我就可以一步一步地弄清楚发生了什么.我将下载的软件包的全部内容从Firebird添加(复制)到我的应用程序目录和数据库本身.

为了避免文件夹问题,我设置了Delphi环境选项,将所有文件(和exe放在同一目录中.然后我使用了Firebird*.doc文件夹中的建议,并将fbembed.dll重命名为fbclient.dll.一些Firedac Q&A关于我读过的问题,Firedac需要fbembed.dll文件.好吧,我已经尝试了两种方式,它无论如何都不会工作....).但是让我坚持第一个问题fbclient.dll.

为了建立连接,我在数据模块上放了一个FDPhysFBDriverLink1和一个FDConnection1.

现在FDPhysFBDriverLink1:它的BaseDriverID是FB.对于DriverID,我尝试了两个建议:首先使用'FB',然后提供fbclient.dll的完整路径.没有人似乎有所作为.

当我转到Firedac Connection编辑器并输入我的数据库文件的路径时,我得到"无法加载供应商库(fbclient.dll或fbembed.dll)....错误.但这两个文件都在应用程序exe文件夹中(就像在embarcadero网站上建议的那样.那么Firedac在哪里寻找文件?我对Firebird和Firedac有点厌倦,因为他们不能简单地解释为什么连接成功必须做的事情.他们给的只是一些模糊的选项,它们都不起作用.添加这个 - 添加......最后......失败.

因此,如果有人有直接回答如何做到这一点的经验(没有链接,请...我已经看过并尝试过所有这些)我会非常感激.尝试建立一个简单的连接几天是非常愚蠢的.我也尝试过与Unidac类似的结果.所以在我第99次精神崩溃之前,我该怎么办才能完成连接?

delphi firebird firebird-embedded firedac delphi-xe6

1
推荐指数
1
解决办法
4921
查看次数

如何改进 firebird 上 not in 的 select

select mid from aplicacao\nwhere mid not in\n(\nselect distinct mid from aplicacao\ninner join prod_app on prod_app.mid=aplicacao.mid\nwhere prod_app.coditem=1\n)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我尝试在 firebird 上搜索解决方案来改进此查询,但不幸的是 \xc2\xb4t 没有成功。请问有人可以帮助我吗?

\n

sql firebird select notin

1
推荐指数
1
解决办法
6264
查看次数

在 Firebird 中获取连接的客户端 IP

我在服务器上托管了一个 Firebird 数据库。Firebird 可以在表格中显示已连接用户的列表,包括用户名、角色等MON$ATTACHMENTS。但是,我不知道如何获取一个特定客户端的 IP 地址。

例如:如果用户“USER”,来自192.168.1.77,连接在192.168.1.2(服务器)上,我怎样才能192.168.1.77通过 Firebird 查询获得这个地址?

编辑:MON$REMOTE_ADDRESS显示 DHCP 服务器地址,而不是本地客户端地址。

database firebird

1
推荐指数
1
解决办法
5043
查看次数

春天+火鸟

有人成功将 spring 连接到 .gdb 数据库或 .fdb 数据库吗?我需要很少的帮助来执行一些查询并将其显示在屏幕上。互联网上几乎没有关于将 spring 与 firebird 连接的信息......

谢谢

firebird spring jaybird

1
推荐指数
1
解决办法
5564
查看次数

将INTEGER中的列更改为BIGINT

在我的数据库中,我有几个INTEGER类型的字段.我需要将其中一些更改为BIGINT.

所以我的问题是,我可以使用以下命令吗?

ALTER TABLE MyTable ALTER COLUMN MyIntegerColumn TYPE BIGINT;
Run Code Online (Sandbox Code Playgroud)

包含的数据是否以正确的方式转换?转换后这列是"真正的"BIGINT列吗?

我知道如果此列有限制(Trigger,ForeingKey,...),这是不可能的.但如果没有限制,可以这样做吗?

或者通过帮助列转换它更好:

MyIntegerColumn -> MyIntegerColumnBac -> MyBigIntColumn
Run Code Online (Sandbox Code Playgroud)

firebird firebird2.5 firebird-3.0

1
推荐指数
1
解决办法
1379
查看次数