标签: firebird

是否可以在firebird事件中使用参数:POST_EVENT'event_name'+ string args?

我有一个触发器,可以检测字段PHONE_EXT和POST事件的变化.我想发布带有事件的Phone_ID,以便在客户端中使用此ID.这可能吗?怎么样?

CREATE TRIGGER tr2 FOR employee
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
    IF (new.PHONE_EXT <> old.PHONE_EXT) THEN
          POST_EVENT 'phone_ext_changed'; <-- I would like to pass a string parameter with record ID
END
Run Code Online (Sandbox Code Playgroud)

events firebird

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

Firebird SQL:ALTER语句中的子查询?

我有一个firebird数据库模式,由各种CREATE TABLE脚本设置.这些脚本已被提交到源控制系统(参见Scott Allen的站点).

现在我想创建一个新脚本,我希望我的数据库删除NOT NULL特定表中一列的约束:

ALTER TABLE myTable DROP CONSTRAINT c
Run Code Online (Sandbox Code Playgroud)

约束的名称(例如INTEG_219)可以通过查询系统表来获得:

SELECT rc.rdb$constraint_name
FROM   rdb$relation_constraints rc
       join rdb$check_constraints cc
       on rc.rdb$constraint_name = cc.rdb$constraint_name
WHERE  rc.rdb$constraint_type   = 'NOT NULL'
       and rc.rdb$relation_name = 'MYTABLE'
       and cc.rdb$trigger_name  = 'ACOLUMN'
Run Code Online (Sandbox Code Playgroud)

这些陈述可以合并为一个ALTER命令吗?

sql firebird alter-table subquery

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

firebird的sql代码无法编译

尝试使用Firebird包中的isql工具创建一个简单的数据库时,我遇到了奇怪的错误.

创建表的相同代码适用于具有其他名称的其他表.我已尝试使用和不包含字段和表名称的引号,但没有成功.

它是Firebird 2.5服务器版本.

我正在尝试执行的代码:

SET SQL DIALECT 3;
SET NAMES UTF8;
CREATE DATABASE 'localhost:C:\fuzzdb.fdb' user 'SYSDBA' password 'masterkey'
DEFAULT CHARACTER SET UTF8;

CREATE TABLE RULES (
RULE_ID INTEGER NOT NULL,
IF_FUZZY SMALLINT,
CONSTRAINT PK_RULE_ID
PRIMARY KEY (RULE_ID),
);

CREATE TABLE VARS (
VAR_ID INTEGER NOT NULL,
VRULE_ID INTEGER,
INPOUTP SMALLINT,
RANGE_STRT INTEGER,
RANGE_END INTEGER,
VAR_NAME VARCHAR(40),
FUZ_SET INTEGER,
CONSTRAINT PK_VAR_ID
PRIMARY KEY (VAR_ID)
);

CREATE TABLE FUZZSETS (
FS_ID INTEGER NOT NULL,
FS_NAME VARCHAR(40),
INPOUTP SMALLINT,
PAR1 FLOAT,
PAR2 …
Run Code Online (Sandbox Code Playgroud)

sql firebird

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

Firebird 2.5 - 从存储过程向表中的每一行添加唯一ID

我有一个没有唯一ID的表.我想创建一个存储过程,它将行的编号添加到每行作为ID,但我不知道如何获取当前行号.这是我到目前为止所做的

CREATE OR ALTER PROCEDURE INSERTID_MYTABLE 
returns (
    cnt integer)
as
declare variable rnaml_count integer;
begin
  /* Procedure Text */
  Cnt = 1;
  for select count(*) from MYTABLE r into:rnaml_count do
   while (cnt <= rnaml_count) do
    begin
     update MYTABLE set id=:cnt
       where :cnt = /*how should I get the rownumber here from select??*/
     Cnt = Cnt + 1; 
     suspend;
    end
end
Run Code Online (Sandbox Code Playgroud)

firebird firebird2.5

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

无法加载DLL'fbembed'

我无法加载ddl,即使我有dat dll,如果我正在通过refrence添加它显示

无法添加对"Path\fbembed.dll"的引用.请确保该文件是可访问的,这是有效的程序集或COM组件.

.net c# asp.net dll firebird

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

将WideString转换为String

如何从字符串中替换空的宽字符串?

例如:'H ello'转换为'Hello'

我从DB读取文本blob字段,并希望将其存储在另一个表中.当我读它时,我得到额外的空格,当我存储它时剩余的额外空间,并且在下一个查询时无法正确读取.

DXE,Firebird 2.5

更新:
我使用IBQuery - > DataSetProvider - > ClientDataSet而没有设计时创建的字段.它接缝,IBQuery以错误的格式检索数据.

当前编写代码:

blobStream := TStringStream.Create;
...
blobStream.WriteString(blobText); //blobText = 'H e l l o';
ibsql.ParamByName('ABLOBCOL').LoadFromStream(blobStream);
...
ibsql.ExecQuery;
...
Run Code Online (Sandbox Code Playgroud)

在FB数据库中存储了'H ello',但它必须是'Hello'.由于它似乎是IBQuery中的一个错误,我需要一种方法来转换该字符串.

delphi firebird delphi-xe

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

是否可以通过SQL进行Firebird数据库备份?

我需要我的软件来对火鸟数据库进行热备份.使用gbak是这样做的官方方式.但是使用外部工具会迫使我解决确保工具在系统路径中的麻烦,或者我有gbak.exe的实际位置.如果可能的话我想避免这种情况.

那么,有没有做任何事情的选择

BACKUP DATABASE TO location_of_backup;
Run Code Online (Sandbox Code Playgroud)

我使用的是Delphi XE4,Firebird 2.1和DBExpress,而不是在这里安装第三方的选项.

delphi firebird

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

如何在Firebird中删除列

我正在使用firebird并尝试删除列,但是以下SQL无效:

ALTER TABLE student DROP COLUMN id;
Run Code Online (Sandbox Code Playgroud)

sql firebird

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

了解Firebird监控表中的MON $ STAT_ID

我几周后发布了询问firebird DB以及如何监控它的信息.从那以后,我想出了一个漂亮的脚本来监控所有的页面读/写/提取/标记.我监控的其中一个列是字段MON$STAT_IDMON$STAT_GROUP字段.这为我打印了一个很好的数字; 但是,我没有办法关联和理解究竟是什么.我认为打印出来MON$STAT_GROUP会有所帮助,但它还没有以任何方式帮助我......

我也查看了RDB$命令,但发现了非常有限的文档,看看它们是否可以帮助我监视我的数据库.

所以我决定来这里询问我是否正在监视我的数据库,以便其他人可以从页面读取/写入/提取/标记中查看数据,并对数据库是否按预期执行做出明智的决定.

其次,将RDB$命令添加到我的脚本添加任何数据的值,我将给我们的数据库伙伴?

最后,也许最重要的是,无论如何都要将MON$STAT_ID字段与数据库中的实际表关联起来,以了解何时发生的事情不应该是什么?我目前正在每分钟监视数据库,这可能是频繁的,但我得到有效的数据.现在唯一的问题是如何解释这些数据.有人可以给我一些关于他们过去使用/曾经使用过的方法的建议吗?

(注意:运行firebird 2.1)

firebird firebird2.1

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

Firebird SQL:由于合并而查询缓慢或者可以重写

我遇到一些常用查询的性能问题.

SELECT
v.id,
coalesce((SELECT sum(amount) FROM artjournal WHERE variant_ref=v.id AND storage_ref=1 AND atype_ref in (1,3,4)), 0) "fv", 
coalesce((SELECT sum(amount) FROM artjournal WHERE variant_ref=v.id AND storage_ref=1 AND atype_ref=2), 0) "ivo", 
coalesce((SELECT sum(amount) FROM artjournal WHERE variant_ref=v.id AND storage_ref=1 AND atype_ref=5), 0) "iio", 
coalesce((SELECT sum(amount * mvalue) FROM artjournal WHERE variant_ref=v.id AND storage_ref=1), 0) "vw"
FROM productvariant v
Run Code Online (Sandbox Code Playgroud)

因为artjournal是一张大桌子,每天都有成千上万的新唱片,演出变得越来越糟糕.

我有所有ID字段的索引.

有没有办法重写这个语句来加快速度?或者我可以使用不同的方式从artjournal表中检索数据,如果结果为null,则返回0?

谢谢你的想法,

克里斯蒂安

sql firebird coalesce

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