请选择 进入手机版 | 继续访问电脑版

LibreOffice中文社区

 找回密码
 马上加入

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
开启左侧

[分享] 迁移至firebird引擎一二三

[复制链接]
grassvalley 发表于 2019-11-19 13:59:48 | 显示全部楼层 |阅读模式
本帖最后由 grassvalley 于 2019-11-19 14:03 编辑

这段时间,把原来的hsqldb数据库转换成firebird数据库,中间遇到不少问题,拿来分享一下。

一、在查询中打开 直接执行查询 开关,如果查询中的表、视图、列名包含有 汉字、小写字母 之类的,必须使用双引号包括,否则会提示出错。
二、注意查询中遇到 零除错误 时,Base不会报错,但会卡壳假死。这应该是个bug,遇到这种情况需要检查是否可能产生 零除错误。可以使用NULLIF函数把零转换成空值。在hsqldb中,零除错误会直接转换成空值,比较方便。
三、打开 直接执行查询,可以在查询中使用update、delete、create、alter等非select语句,系统会提示出错,但是只要语句本身没有错误,还是可以正常执行的。
四、通过复制粘贴,把原来hsqldb数据库中的表和数据复制到firebird数据库时,有时会出现错误。可以先复制到电子表格,再进行复制粘贴。注意数字格式,最好不要带千分位。
五、通过sql语句创建表或视图,不会立即显示出来。需要在视图菜单选刷新才可。使用sql语句直接创建的视图图标会显示为表,但没有关系,重新打开数据库就会被识别为视图。




 楼主| grassvalley 发表于 2019-11-21 12:35:43 | 显示全部楼层
六、原来在hsqldb中的函数ifnull需要改为coalesce,locate需要改为position
七、实际运行速度感觉还不如hsqldb
八、涉及NUMERIC类型小数运算比hsqldb更精确。hsqldb在运算过程中也保留小数,导致结果差异大
suokunlong 发表于 2019-12-5 21:39:28 | 显示全部楼层
能否告知您使用的软件版本和操作系统。你提到的是若干个问题。这里使用Base的人估计很少,若可能,我来指导你在bugzilla上报告bug。
开放,包容,奉献。
您需要登录后才可以回帖 登录 | 马上加入

本版积分规则

Archiver|手机版|小黑屋|LibreOffice中文社区 ( 粤ICP备13080851号-4 )

GMT+8, 2019-12-14 04:28 , Processed in 0.086620 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表