分类
大小:8.9M更新:2018-03-05
类别:数据库类系统:WinAll,WinXP
firebird可以说是这个世界上最小的支持存储过程的数据库。
Firebird是一个跨平台的关系数据库系统,目前能够运行在Windows、linux和各种Unix操作系统上,提供了大部分SQL-99标准的功能。它既能作为多用户环境下的数据库服务器运行,也提供嵌入式数据库的实现。
Firebird脱胎于Borland公司的开源版数据库Interbase6.0,是一个完全非商业化的产品,用C和C++开发。由于与 interbase的血缘关系,大部分interbase的开发工具可以直接应用到Firebird开发中。Firebird使用Mozilla Public License v.1.1许可证发行。
Firebird 发布了 3.0 的首个 Alpha 版本,这是 Firebird 下一代的版本。
Firebird 2.5.2 RC1 发布,主要是一些问题的修复和少许的改进。
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)
11.如何选择前几条记录
mssql: select top 10 * from table1
firebird:select first 10 * from table1
IB:select * from table rows 10
12.Firebird存存储过程中的事务
在存储过程 ib/fb 不支持开事务或者结束事务。提交是由调用者提交的。也就是,fb/ib存储过程应该设计在一个事务里。
在sql server里,存储过程或以开这样的事务:
begin trancstion
commit trancstion
但在fb/ib里没有这样的事务 ,需要在调的程序中开事务,如:
pFIBDtbsMain.StartTransaction;
pFIBDtbsMain.Commit;
Exportizer pro(支持各种数据库文件编辑)数据库类Mv6.1.8.12 破解版
查看数据库文件转换工具(DBConvert for JSON and SQL)数据库类Mv1.0免费版
查看数据库管理软件Database Master数据库类Mv10.6.155.0219 官方版
查看MDFScan MSSQL数据库恢复软件数据库类MV2.1 官方绿色版
查看Xml数据导入Access工具XmlToAccess数据库类Mv2.1 免费版
查看SQL数据库管理工具(RazorSQL)数据库类Mv6.3.23 官方特别版
查看SQLPrompt智能提示插件数据库类Mv6.5.0.323 特别版
查看数据库设计工具(Navicat Data Modeler Essentials)数据库类Mv3.0.6官方版
查看数据库恢复工具(DataNumen SQL Recovery)数据库类Mv5.0.0最新版
查看嵌入式SQL数据库(Embarcadero InterBase 2020)数据库类Mv14.0.0.97最新版
查看SQL Data Compare免费版数据库类Mv10.2.0
查看SQL Server 2008 SP3数据库类M10.00.550 简体中文版(32/64位)
查看数据库对比工具SQL DXP for SQL Server and MySQL数据库类Mv6.5.3.167 官方版
查看天盾SQL数据库恢复软件数据库类Mv9.1.0.0 官方版
查看数据库管理(Navicat for Oracle)数据库类Mv12.1.26中文版
查看数据库导出工具(SqliteToTxt)数据库类Mv2.9官方版
查看Json转Sqlite工具(JsonToSqlite)数据库类Mv1.9官方版
查看mysql connector odbc x64位版数据库类MV8.0.13 官方安装版
查看桌面数据库数据库类Mv2019.12.001 安装版
查看SQLyog社区版(SQLyog Community)数据库类Mv11.2.0.4 中文免费版【x86+x64】
查看数据库分析工具(Qure Profile)数据库类Mv2.1.0.2134官方版
查看MySQL图形管理工具(SQLyog MySQL)数据库类Mv12.0.9 中文特别版
查看Sqlite工具(SqliteStudio)数据库类M3.1.1 绿色中文版
查看Xtractor数据提取器(Data Xtractor)数据库类Mv2.1免费版
查看点击查看更多