火鸟数据库(Firebird)2.5.5 官网最新版

系统:WinAll 大小:6.7M

类型:服务器软件 更新:2016-03-10 11:2

介绍 相关 评论(0)

Firebird,中文名就是火鸟数据库,它提供了ANSI SQL特性支持,并且可以完美运行于Linux、Windows和Unix平台。Firebird数据库有着优秀的并发特性和强大的存储过程和触发器的语言,需要的朋友下载试试吧!

火鸟数据库是什么

火鸟数据库是开源数据库,数据安全性比较好,费用也比较低,操作和维护就比较简单。

如果需要卸载的话,双击安装程序包,如果你已安装的话就会弹出1个窗口,上面有修复和卸载两个选择,选择卸载就能够进行卸载了。

功能特性:

支持原子性,并发性,隔离性等概念。

支持事务的多个版本功能。

支持存储过程。

支持事件:存储过程和触发器可以引发事件,这个事件可以被客户端程序监听到。

生成子:生成子也称为序列,它可以很容易的实现自动增加的字段。它是一个INT64的长度,因此,它可以用在一个事务中,也可以用在其它很多方面。

只读数据库:我们可以把数据库存放在CD中,形成一个只读数据库。如果我们的应用程序也在光盘上,再加上嵌入式的FB数据库服务器,便可以得到一个无与伦比的 CDLIVE(即只用光盘就可以运行起来)应用。

全事务控制:一个客户端可以存在多个并发的事务。并且每一个事务都可以独立的进行控制,两段提交功能可以保证数据库的一致性。锁优化机制也支持多个事务的保存点。

触发器:每一个表可以有多个并发的行级触发器,可以在插入前,插入后,更新前,更新后,删除前,删除后进行触发。我们可以在触发器中写入PSQL语句,默认值,产生异常,firebird现在支持统一触发器,即可以一个触发器中,一次性管理插入,更新,删除的操作。

字符集:Firebird实现了很多国际标准的字符集,包括Unicode。

扩展函数:可以使用C语言,C++,DELPHI写UDF,使用UDF(用户定义函数库)可以很容易的挂入数据库引擎中以扩展我们需要的功能.

SQL标准兼容:Firebird 实现了全部SQL92所要求的功能,实现了SQL99最常用的的要求。包括但不限于"FULL/LEFT/RIGHT [OUTER] JOIN , UNION, DISTINCT , 子查询 (IN, EXISTS),内部函数 (AVG, SUM, MIN, MAX, COALESCE, CASE, ..), 主键,外键,唯一索引以及所有通用的数据类型。

在线备份:不需要停止数据库即可进行备份,一个备份进程产生一个数据库当前的快照。因此,用户可以在备份期间持续的工作,即实现24x7(每天24小时,每周7天) 的操作。

Firebird还实现了域,字段级别的约束,视图,异常,规则和权限管理

协议:Firebird协议使用IPL(interbase public license)和IDPL(Initial Developer's Public License),这种协议类似于Mozilla协议。你可以完全的自由使用并且可以自由的布署在你的客户应用上。

包含三个版本:(a)标准服务器:每一个客户连接将引发一个服务器进程(支持多处理器) ;(b)超级服务器:一相服务器进程模块管理所有的客户端连接,当前不支持多处理器;(c)嵌入服务器:整个服务器引擎就是一个动态库,只支持本地通过IO进行调用;

NET C# 和 Java 的支持:官方提供了.NET Data Provider 和 JDBC Driver 。

Firebird数据库如何打开

Firebird安装使用教程


1.自定义函数问题.Access to UDF library "rfunc.dll" is denied by server administrator

花了很长时间,不明白为何,将rfunc.dll拷到udf目录,bin目录,windows\system32目录都不能解决问题,google一下,网上有同样的问题,但没有解决方案,结果我重装了一下firebird就解决了.

2.存储过程中变量的定义

ms sql存储过程中无论在哪都可以定义新的变量,但在firebird中,只能在as 与begin之间进行定义.firebird的变量不能用@符号,我将@全部变成a就好了.

3.存储过程中变量的使用

select @i=count(*) from table1 //ms sql

select count(*) from table1 into :i//firebird引用变量使用冒号

4.嵌入式sql,

firebird支持select * from table exists (select ...) 或 select * from table in (select ...)

但不支持select * from (select * from ...) a,

我是将这类改写成视图解决的

5.case语句 

mssql 可使用field= case (),但firebbird仅支持case () as field,

6.mssql getdate()变成CURRENT_DATE+CURRENT_TIME

select * from snartleave where   dt_starttime<CURRENT_DATE+CURRENT_TIME

select * from snartleave where   dt_starttime<CURRENT_DATE||' ' ||CURRENT_TIME

7.返回数据集的存储过程写法(firebird写法有点麻烦)

CREATE PROCEDURE SPVARTST2 (

    VAR_IPTARTNO CHAR(6))

RETURNS (

    VAR_ARTNAME CHAR(10))

AS

begin

for select v_name1 from snart where v_artNo=:var_iptartno into :var_artname do

suspend;

end

8.自动增长字段的使用(autoincrement)

firebird有个发生器(generator)的东东,在发生器里记录值的增长,

再用触发器实现

begin

  if (new.i_seqno is null) then

  begin

    NEW.i_seqno = GEN_ID(GEN_T_DB_ARTSEQNO_ID,1);

  end

end

//GEN_T_DB_ARTSEQNO_ID就是创建的发生器,看到没有,也就是说不同的表不同的字段可以共用一个发生器,gen_id相当于identity,看起来比mssql复杂,其实也很简单。

9.发生器重置 mssql里自动增加的字段要重置好像很麻烦,较难控制,

firebird可以这样(存储过程中)

agenerator=Gen_ID(GEN_T_DB_ARTSEQNO_ID,Gen_ID(GEN_T_DB_ARTSEQNO_ID,0)*-1+1);

//agenerator是一个整形变量,好像一定要装gen_id的值符给一个变量才行,不知道有没有更好的办法,不用定义一个多余的变量

可参考如下网址:http://www.fingerbird.de/generatorguide_body.htm

10 通过一个表更改另一个表的数据

mssql:update table1 set cname=b.cname from table1 a inner join table2 as b where a.id=b.id

firebird:update table1 a set cname=(select cname from table 2 b where b where a.id=b.id)

Firebird 更新日志

Firebird 2.5.5

2015年11月18日更新:

在这个版本改进:

时间戳和运行时统计数据中选择可用GBAK输出。

更好的验证和修正GFIX丢失的数据页。

Firebird 2.5.4

2015年3月30日更新:

在这个版本改进:

在线验证用户定义的表和索引。

优化处理内部临时blob。

Firebird 2.5.3

2014年7月17日更新:

在这个版本改进:

新的上下文变量添加到系统的名称空间。

增加一些限制:

最大连接数SuperServer / SuperClassic提出从1024年到2048年连接。

最大数量的输入参数为用户定义函数(udf)从10到15。

错误报告的改进。

物理备份提高处理性能和可靠性问题。

设置数据不再块并发连接。

更新或插入语句,返回子句添加到嵌入式SQL。

展开全部

应用信息

猜你喜欢

    相关文章

    玩家留言 跟帖评论
    查看更多评论
    其它版本