标签: firebird

火鸟建筑

  1. 如何判断现有Firebird RDBMS服务器安装(即Classic Server或Super-Server)上安装/配置/运行的架构?

  2. 如何在两种模式之间切换?

  3. Firebird的哪些版本(1.5,2.0,2.1)和架构(CS或SS)可用于多处理器服务器?以及如何为多处理器服务器和多线程应用程序正确配置它们?

firebird

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

IBquery在执行查询时冻结主窗体 - 如何防止冻结?

我在其中一个表单上有一个TIBquery对象,执行繁重的查询,表单冻结了一段时间.

  • 可以防止这种"冻结",以及如何?

delphi firebird

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

我如何看周日是否在周末?

我有一张桌子:

 ID | Name | TDate
 1  | John | 1 May 2013, 8:67AM
 2  | Jack | 2 May 2013, 6:43AM
 3  | Adam | 3 May 2013, 9:53AM
 4  | Max  | 4 May 2013, 2:13AM
 5  | Leny | 5 May 2013, 5:33AM
Run Code Online (Sandbox Code Playgroud)

我需要一个返回所有TDate周末项目的查询.我该怎么写这样的查询?

我有多远

select 
  table.*,
  EXTRACT (DAY FROM table.tdate )
from table
Run Code Online (Sandbox Code Playgroud)

我使用EXTRACT做了一个选择,看看我是否能得到正确的值.但是,使用参数DAY的EXTRACT返回月份的日期.如果我改为使用WEEKDAY,根据这里的文档,那么我得到错误:

ERROR: timestamp units "weekday" not recognized
SQL state: 22023
Run Code Online (Sandbox Code Playgroud)

限制1250

EDIT TDate具有日期时间(时间戳)的数据类型.我只是为了方便阅读而写的.但无论何种类型,如果需要,我都可以轻松地在类型之间进行转换.

我知道约会4月5日和5月是周末(因为他们是周六和周日).firebird是否允许一种编写查询的方法,如果它们在周末出现,它们将返回日期.

sql firebird

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

如何在firebird数据库中显示和设置用户权限

我试过,但所有时间都失败了在firebird数据库中显示和设置用户权限.我用了 ;

GSEC>显示

但它只显示用户名.我希望看到所有权利,我想设置它们.我们可以做这样的选择和管理吗?

问候,

sql firebird rights

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

Firebird:在iSQL中查询执行时间

我想获得查询执行时间iSQL.

例如 :

SELECT * FROM students;
Run Code Online (Sandbox Code Playgroud)

我如何获得查询执行时间?

firebird execution-time

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

Firebird将输入参数传递给gen_id函数

我想创建存储过程来获取特定表的当前id我有很多表,所以我不想为每个表创建sp,

我正在尝试这种方式,但我失败了

create procedure
sp_get_id(mytable varchar(128)) returns(id integer)
as
begin
  select gen_id(:mytable, 0) from rdb$database into :id;
  suspend;
end
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法将输入参数传递给gen_id,或者我必须为每个表创建不同的sp ..

提前致谢

sql delphi firebird stored-procedures

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

在Firebird中插入SELECT

我是火鸟的新手,我有很多问题.我想在从另一个表中选择的表中插入各种行.

这是代码:

/*CREATE GENERATOR POS; */
SET GENERATOR POS TO 1;

SET TERM ^;

create trigger BAS_pkassign
   for MATERIAL
active before insert position 66

EXECUTE BLOCK
AS

  declare posid bigint;
  select gen_id(POS, 1)
  from RDB$DATABASE
  into :posid;

BEGIN



END

SET TERM ; ^


INSERT INTO MATERIAL ( /*ID */ LOCATION, POSID, ARTID, ARTIDCONT, QUANTITY )
SELECT  1000, ':posid', 309, BAS_ART.ID, 1
FROM    BAS_ART
WHERE   BAS_ART.ARTCATEGORY LIKE '%MyWord%'
Run Code Online (Sandbox Code Playgroud)

ID应该从66开始自动增量.posid应该从1开始自动增量.

实际上它没有插入任何东西.

我正在使用Firebird Maestro并刚刚打开了SQL脚本编辑器(在执行脚本时不会抛出任何错误消息).

有谁能够帮我?

谢谢!

附加信息:

触发器应该自动增加列"ID" - 但我不知道我怎么能改变它所以它工作..':posid'使用它抛出一个错误:posid但是像这样没有错误(我猜它被解释为一个串).但是我该如何使用呢?

我执行它时不会出错.表结构很简单.我有2张桌子:1.

 Material ( …
Run Code Online (Sandbox Code Playgroud)

sql firebird select insert firebird2.5

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

获取Firebird SQL中所有序列及其值的列表

我需要一个包含所有现有序列及其值的列表.我试过了:

SELECT RDB$GENERATOR_NAME, GEN_ID(RDB$GENERATOR_NAME, 0) FROM RDB$GENERATORS;
Run Code Online (Sandbox Code Playgroud)

要么

SELECT G.RDB$GENERATOR_NAME, GEN_ID(G.RDB$GENERATOR_NAME, 0) FROM RDB$GENERATORS G;
Run Code Online (Sandbox Code Playgroud)

但这些都不正确,因为GEN_ID()将第一个参数视为非常生成器名称,即尝试访问生成器G.RDB$GENERATOR_NAME而不是值G.RDB$GENERATOR_NAME

sql firebird

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

如何更新datetime字段以仅包含日期或时间部分

如何更新包含日期/时间信息的字段以仅包含数据的日期部分?类似于以下内容:

update [EVENTS]
  SET [EVENT_DATE] = DATEADD(dd, 0, DATEDIFF(dd, 0, [EVENT_DATE])
  WHERE EVENT_NUM = '8592'
Run Code Online (Sandbox Code Playgroud)

我还需要得到相当于将它设置为时间组件?

sql firebird

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

如何在Firebird中执行返回结果集的过程

我有下表

create table LIST_PIPE_TABLE
(
  ID INT,
  ITEM          VARCHAR(4000),
  IS_FOLDER     VARCHAR(10)
)
Run Code Online (Sandbox Code Playgroud)

有3行数据

insert into LIST_PIPE_TABLE values(1,'Victorias Secret','true')
insert into LIST_PIPE_TABLE values(2,'Porsche','true')
insert into LIST_PIPE_TABLE values(3,'Babbolat','false')
Run Code Online (Sandbox Code Playgroud)

还有一个应该返回结果集的存储过程

CREATE or alter PROCEDURE LIST_PIPE
RETURNS 
(   col1 varchar(4000),
    col2 varchar(10)
)
  AS  
begin
    FOR SELECT ITEM AS ITEM
       ,IS_FOLDER AS IS_FOLDER
      FROM LIST_PIPE_TABLE 
    into :col1, :col2
    do begin       
            suspend;          
     end 
end
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下语句执行它时

execute procedure LIST_PIPE
Run Code Online (Sandbox Code Playgroud)

返回唯一的一行

COL1              COL2
Victorias Secret  true
Run Code Online (Sandbox Code Playgroud)

请告知它有什么问题.我应该如何执行它以查看它旨在返回的所有3行?

firebird procedure resultset suspend execute

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