- 最近在改写一段ms sql的存储过程到firebird,
总结了一些经验,
firebird可以说是这个世界上最小的又支持存储过程的数据库的,
才2.3M而已,如果做小型的应用,比ms sql桌面版也有70多M( sp3),
mysql也有20-30M,太不方便。
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)
相关推荐
C#连接firebird
Firebird .NET Data Provider是一个用来操作Firebird数据库的数据访问组件,目前的版本是1.7。该组件提供了访问和操作Firebird数据库的各种函数,其使用非常简单,使用符合ADO.NET的规范。因此在使用上我们不会有太大的陌生感。 在安装Firebird .NET Data Provider后,其提供了一个SDK文档,通过它,我们可以快速的了解并使用该组件。 在编写一个数据库应用程序的时候,第一步肯定是建立一个和要操作数据库的连接,一般我们都是使用连接字符串,而
Firebird的Case表达式功能
说来惭愧,自从FB1.5出来以后,一直没有顾上很深入的挖掘它的新功能,只是当它是IB的一个延续来对待——只要能平滑移植,就算OK。 说来惭愧,自从FB1.5出来以后,一直没有顾上很深入的挖掘它的新功能,只是当它是IB的一个延续来对待——只要能平滑移植,就算OK。前两天才发现,Firebird 1.5.2里,已经支持了CASE 表达式。在我看来,这是关系型数据库中一个相当重要的功能,因为利用CASE...
Firebird嵌入版本开发方案
firebird(http://www.ibphoenix.com)的使用非常灵活和方便,可以在C/S、B/S系统中使用,也可以使用嵌入版本在桌面系统中使用。结合UIB(http://www.progdigy.com/UIB/)更能将灵活性发挥至极致了。下面是我开发的一个小软件的组合方案,希望给使用Firebird的朋友们一个参考。一、所用软件及VCL1、Delphi7(http://www.bo
Firebird/InterBase内置函数使用说明
加*号为FB2.0加入的函数1. COUNT, AVG, MAX, MIN, SUM说明:通用统计函数,不详细介绍了2. EXTRACT(timestamp_part FROM value)说明:EXTRACT(YEAR/MONTHE/DAY/WEEKDAY FROM 字段名)从日期型字段中分离出年,月,日及一个星期的第几天3. CAST(value AS datatype)说明:转换数...
firebird 连接 lazarus
1. firebird 1.1. 命令行创建数据库 数据库操作教程 1、在开始-程序栏中执行Firebrid ISQL tool工具,出现SQL> 2、命令行中输入: SQL>CREATE DATABASE ‘e:\sams.fdb’; 回车 3、创建数据库成功,没有任何提示,打开E盘一看多了个SAMS.FDB文件,接着再输入 : SQL>SHOW DATABASE; 4、展示了一些关于这个数据库的详细信息,我们先建立数据库表,输入: SQL>CREATE TABLE T1 (F1
FireBird数据库使用指南
FireBird数据库使用指南 一、FireBird数据库简介 二、FireBird数据库的安装 三、FireBird.conf配置文件常用参数 四、Firebird预定义函数的安装 五、Firebird的基本数据类型 六、FirebirdSQL内置函数使用说明 七、FireBird SQL语法
Firebird的基本数据类型
由于排版关系,取幂将用[],比如10[5],表示10的5次方。 INTEGER:长整型,取值范围:-2147483648至2147483647 FLOAT:单精度浮点型,取值范围:1.175*10[-38]至3.402*10[38] DOUBLE PRECISION:双精度浮点型,取值范围:2.225*10[-308]至1.797*10[308] DECIMAL:小数型,可指定有效位数最大
SAP公司间外协业务流程以及配置说明
SAP公司间外协业务流程以及配置说明
Firebird使用入门
安装完成Firebird,其目录为“D:\ProgramFiles\Firebird\Firebird_2_1”,简记为%FIREBIRD_HOME%,其bin目录下有两个文件gsec.exe(主要用于创建、删除数据库用户,修改用户密码)和.isql.exe(数据库相关操作): 使用命令行工具进入%FIREBIRD_HOME%\bin下,以数据库默认管...
华为私有云HCS 8.1.1实战:从镜像制作到云主机发放全流程指南
本文详细解析了华为私有云HCS 8.1.1从镜像制作到云主机发放的全流程实战指南。内容涵盖制作标准化QCOW2镜像、配置云主机规格与主机组、规划外部网络,以及在运营面为租户初始化资源、配置审批流与产品目录。最后,通过用户视角演示了从创建VPC网络到申请、审批并最终绑定EIP访问云主机的完整操作步骤,为运维人员和架构师提供了一套清晰、可落地的HCS部署与管理实践方案。
卡尔曼滤波、互补滤波与Tsinghua滤波:平衡车姿态感知的三大算法对比
本文对比了平衡车姿态感知中的卡尔曼滤波、互补滤波与Tsinghua滤波三大核心算法。互补滤波计算简单,适合入门;卡尔曼滤波理论最优但实现复杂;Tsinghua滤波则是一种面向嵌入式优化的轻量级方案,通过动态权重调整和零偏估计,在资源受限的MCU上实现了性能与效率的平衡,是智能车竞赛等场景的实用选择。
FIREBIRD使用经验总结
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存储过程应该设计在一个事务里
YOLO26 FP16/INT8混合量化实战:精度无损+速度拉满,边缘设备部署最优解
这是混合量化的灵魂,告诉量化器:哪些层不准动,保留FP16。"""判断是否为量化敏感层 → 是则豁免为FP16返回 True=敏感层(FP16),False=可量化(INT8)"""# 1. 检测头回归分支# 2. 小通道1×1卷积# 3. SiLU 激活# 4. 残差ShortcutYOLO26想要在Jetson、RK3588、昇腾、嵌入式NPU上真正落地,FP16/INT8混合量化是唯一最优解。它的核心逻辑不是玄学,而是工程上的精准取舍能量化的层,全部INT8榨性能;
Firebird与MySQL: 钟为谁鸣(转自FireBird论坛)
原地址:http://www.firebird.net.cn/forum_view.asp?forum_id=3&view_id=1339&page=-1Firebird与MySQL: 钟为谁鸣老板要我开发一个LINUX平台上的数据库项目,要求一定要用开源免费数据库。我知道这个数据库必须能够上网操作,同时作为公司的核心骨干数据库,除了必须是稳定的存储数据库外还必须有很强的数据和数据库控管功能。
leaflet 综合教程170+ 【目录 】(已包含162篇文章)
vue+leaflet系列教程旨在为开发者提供简单快捷的,。在每一个示例中,解释相应的API知识点,做到。注意本示例目录中的内容可能加载是vue+openlayers的示例, 本目录是要加载vue+leaflet的示例,只是内容少,逐渐更新中。
《网络安全自学教程》- 防火墙原理分析与Windows防火墙使用配置
防火墙分类及原理,Windows开启防火墙,Windows防火墙添加策略,
Linux下的FireBird安装
由于需要调研了一下linux下的Firebird数据库。第一次接触Firebird是在前年,当时的版本是 1.5.3 ,都是在Windows平台下开发的。记得当初很高兴的发现2.0正式版即将发布的消息,但终究让我等了一年。那么这里就记录一点在Linux下的Firebird相关的事情。毕竟也是第一次接触Linux,确实让我头大一阵。 安装FIREBIRD及FLAMEROBIN
7.26华为OD机试真题 新系统 - 炸弹人的雷区数量 (Java/Py/C/C++/Js/Go)
7.26华为OD机试真题 新系统 - 炸弹人的雷区数量 (Java/Py/C/C++/Js/Go)
[转]FireBird.conf配置文件常用参数
FireBird.conf配置文件常用参数(2009-04-20 10:50:33)转载[from:http://blog.sina.com.cn/s/blog_3fed3a390100d9b0.html]1.RootDirectory "写上Firebird服务器的安装路径" 如果不对FbServer服务是企动会出错的.2.DatabaseAcces 指的是访问Firebird数...
Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)
LocalPort”是PLC的端口,最终的设置如下图所示:(相关的设置都可以查看帮助文档)P#DB1.DBX0.0 BYTE28是以指针形式表示的DB1的DBX0.0开始(在使用的西门子Modbus tcp的程序块中设置的“MB_HOLD_REG”输出寄存器),其有28个字节(28个字节对应14个寄存器),4001是第一个寄存器,往后数14个即可。在上面的基础上,增加一个“DB1”的“组对象”,同时将“MW0”的组对象禁止(双击组对象,“Active”取消勾选),启动之后发现无法连接。
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
Firebird 数据库使用心得
公司一个任务,需要一个免安装的嵌入式关系数据库,在试用了对比了 Access 和 Firebird 之后,选择了更简便、性能更好的后者。 Firebird 简介: firebird是一个真正的关系数据库,支持存储过程、视图、触发器、事务等大型关系数据库的所有特性,它是一个开源的,可以自由使用的数据库(即使是商业上的使用)。具有以下的特点: 支持原子性,并发性
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
FIREBIRD浅历
firebird可以说是这个世界上最小而又支持存储过程的数据库,才3M而已,如果做小型应用,比ms sql(桌面版也有70多M),mysql(20-30M),方便的多。(一)数据库操作在开始-程序-Firebrid_2_0中执行Firebrid ISQL tool 出现SQL>输入SQL>CREATE DATABASE ‘e:/sams.fdb; 回车提示错误,……..,郁闷,一查资
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
4397



被折叠的 条评论
为什么被折叠?



