FireBird最小客户端究竟需要什么?

coaco 2004-04-01 08:56:07

应用程序使用IBX控件。

如果是IB,主要是gds32.dll,另外还要设定3050的端口,等等.

但是FirdBird就不同,一直有人说FireBird的GDS32.DLL是一个代理空壳,而FBClient.dll才是真正的有用的,但是试验结果是:仅仅使用GDS32.DLL就可以建立远程连接,不需要FBClient.dll,这和网上流传已久的说法矛盾,不知哪位比较了解这究竟是怎么回事?
...全文
393 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
coaco 2004-04-05
  • 打赏
  • 举报
回复
哇,给错分了,下次补给版主吧:) 相信版主也不会在意的.
coaco 2004-04-05
  • 打赏
  • 举报
回复
感谢版主的热心回贴,结帐了
coaco 2004-04-02
  • 打赏
  • 举报
回复
谢谢这么详细的回答。


>>其实在它的正式发行 install 中调用过的,不需要你手工运行而已.
如此说来就是在客户端的Setup程序中必须运行一次'instclient.exe' ,或者说不运行这个程序不行? 等我找到了"干净"的机器试一试.

>>我看可能是你某些不正当操作的原因,否则它通过不了一般测试就出来"混"?

言重了,不过IB/FB相对其它的数据库损坏的情况确实多一些,当然可以说是用户的问题,比如"非法操作"、强行关机等等,也有人说是Linux平台上才稳定,但是做为个人版,用户的条件比服务器的条件就会差很多,以它在服务器上的“口碑”放到客户端上,“混混”是可以的,正式使用,还是缺乏说服力的。或者是普通用户的操作达不到FB的标准?这恐怕一时半会儿解决不了。
coaco 2004-04-02
  • 打赏
  • 举报
回复

不是很主观,其实把SQL甚至于Informix做为单机用户的恐怕不多,好像太奢侈了吧? 呵呵

IB/FB毕竟当初不是为单机设计的,Embedded Firebird毕竟是新生事物,我觉得恰恰相反,除非有权威的证据显示它足够强壮才值得向单机版用户推荐(这里指的是Embedded Firebird)

ACCESS在这方面是不错的,虽然也会损坏,但一方面很少见,另一方面修复很容易,至少它比FOXPRO和PARADOX强得多.

可能我对Embedded Firebird确实有偏见,不过有些版主可能是误解了,比如"所以上面的解释似乎也不准确."这句话可能是我的表达不准确,我的原意是说,在没有运行“instclient.exe”我居然成功了,问题可能在这儿吧,呵呵
CuteBit 2004-04-02
  • 打赏
  • 举报
回复
一些关于 数据库 的题外话
强行关机和非法操作对于任何数据库来说都是一个灾难.应该 ib/fb 有个用于优化性能的写缓冲选项,如果这个选项打开,强行关机和非法操作损坏数据库的几率高许多.
其实 ib/fb 在国外一些专业网站上被提到时都会提到它的稳定性.在单机我的 paradox/access/msSQL/oracl 都完蛋过,,甚至在台 4-16 颗 CPU 的机器上的 informix 也垮了两次之多.
我的意思不是说数据库跨掉是正常的,也不是说 fb/ib 比一般的强壮.因为我没有权威数据说明这些.如果你有实际的测试对比数据,我愿意看看.
只是觉得你的一些评论有很主观.
CuteBit 2004-04-01
  • 打赏
  • 举报
回复
关于连接字符串:

# ibx 数据库连接字符串:
192.168.0.1/3051:[数据库文件或别名]

# jdbc:
jdbc:firebirdsql:192.168.0.1/3051::[数据库文件或别名]

>>"现在的FB可以把它(GDS32.DLL或者FBClient.DLL)直接放在应用程序目录中就可以使用"
如果你的系统中存在多个版本的上述 dll 在操作系统的库装载搜索路径,操作系统根据路径次序决定装载的 dll.windows 会首先搜索程序工作目录的,所以是没有问题.

>>"所以上面的解释似乎也不准确."
呵呵,release notes 是经过 fb 核心开发者确认的.其实在它的正式发行 install 中调用过的,不需要你手工运行而已.

>>"embedded firebird似乎还很不成熟,极容易出现数据库损坏的情况"
embedded firebird 是个很新颖有用的便携式单机数据库.它是第一次出现在 ib/fb 家族中.它的拥有 c/s 式的 server 的一个子集.目前不提供安全和远程模块.另外也不提供多线程同时操作的支持.但"极容易..."我看可能是你某些不正当操作的原因,否则它通过不了一般测试就出来"混"??为什么?钱吗??
fb 小组打算在将来的 fb2 中继续发展和加强 embedded 版本.

>>它也不能做为"服务器端"的"客户端"
是这样的.因为目前 fb 不支持分布式数据库.

coaco 2004-04-01
  • 打赏
  • 举报
回复
对了,所谓"客户端"不是指的embedded firebird,而是相对于"服务器端"而言的,embedded firebird似乎还很不成熟,极容易出现数据库损坏的情况,而且它也不能做为"服务器端"的"客户端"
coaco 2004-04-01
  • 打赏
  • 举报
回复
我的E文不太好,有时候无法确切理解文中的意思.

不过关于最少客户端的信息我在FirdBird上面也没有找到比较清楚的答复,我觉得问题应该分两个部分,一部分是面对旧的InterBase用户的升级,另一部份应该是完全没有用过InterBase的用户.

在release 版本里我感到奇怪的一个是FBClient.dll完全可以不安装,这与RC(x)版本有了差异,上文提到了一个'instclient.exe' 我也没有使用(因为是拷贝的),所以上面的解释似乎也不准确.

使用GDS32.DLL还是使用FBClient.DLL倒是无所谓,现在的FB可以把它(GDS32.DLL或者FBClient.DLL)直接放在应用程序目录中就可以使用(是吗? 好象是可以的),主要是目前如何制作客户端的Install最少需要些什么?
还有一个就是3050端口的问题,FB似乎是通过修改firebird.conf文件来确定端口的,但是客户端呢?客端又通过什么方法使用新的端口?

CuteBit 2004-04-01
  • 打赏
  • 举报
回复
呵呵...这不是什么神秘的故事~
在 firebird RC(X) 下的客户接口顺序如下:
ibx --> gds32.dll --> fbclient.dll --> fbserver
这里的 gds32.dll 是指 firebird RC(X) 包下的那个,很小.

但在 release 版本里,他们做了小小的改变,在 release notes 里说得很清楚了
Traditionally, applications that use InterBase or Firebird have expected to load the gds32.dll client
library from the <system> directory. Firebird 1.5 ships a tool named 'instclient.exe' that can install a
clone of fbclient.dll to the Windows System directory. This clone gets patched on the fly so that its file
version information begins with "6.3", to provide compatibility for old applications that check the
GDS32.DLL file version and can not make sense of a number string such as "1.5".

所以其实就是不用代理,用 clone 类似改名的方法了.
erickleung 2004-04-01
  • 打赏
  • 举报
回复
现时的Firebird还可以和interbase兼容. 但Firebird1.5以後, 他和Interbase便会分道扬缥, 最终会成为不同的产品, 因此需要用不同的gds32.dll(fbclient.dll)和不同的端囗.

只要你的开发工具, 容许你使用你指定的用户端的文件或档名. 你便不容易使用错的library了.

最少的Firebird, 应该是embedded firebird, 你得把embedded Server文件改名为gds32.dll便可以提供单机的数据库了.
firebird可以说是这个世界上最小的支持存储过程的数据库。Firebird是一个跨平台的关系数据库系统,目前能够运行在Windows、linux和各种Unix操作系统上,提供了大部分SQL-99标准的功能。它既能作为多用户环境下的数据库服务器运行,也提供嵌入式数据库的实现。 1、Firebird是一个真正的关系数据库,支持存储过程、视图、触发器、事务等大型关系数据库的所有特性;2、Firebird支持SQL92的绝大部分命令,并且支持大部分SQL99命令,新版Firebird 2.0对SQL99的支持更完整;3、Firebird源码基于成熟的商业数据库Interbase,有良好的稳定性,与Interbase有良好的兼容性;4、不用考虑授权费用(免费),不用担心将来有一天你或你的客户因为使用盗版而被数据库开发商告上法庭;5、发布简易,安装文件只有几M,且高度可定制,客户端的分发也很简单,只需一个DLL文件;6、Firebird的一嵌入式服务器版本,不用安装,直接运行,基于单机开发首选;7、Firebird的运行效率非常高;8、具备高度可移植性,可在Linux,Unix,MacOS,Windows,Solaris系统下运行,而且数据库格式完全一样,不用修改;9、开发环境支持良好,Delphi,C++Builder不用通过ODBC连接,直接用原生开发接口开发基于Firebird的程序。 1、只读数据库我们可以把数据库存放在CD中,形成一个只读数据库。如果我们的应用程序也在光盘上,再加上嵌入式的FB数据库服务器,便可以得到一个无与伦比的CDLIVE(即只用光盘就可以运行起来)应用。2、全事务控制一个客户端可以存在多个并发的事务。并且每一个事务都可以独立的进行控制,两段提交功能可以保证数据库的一致性。锁优化机制也支持多个事务的保存点。3、在线备份不需要停止数据库即可进行备份,一个备份进程产生一个数据库当前的快照。因此,用户可以在备份期间持续的工作,即实现24x7(每天24小时,每周7天) 的操作。4、触发器每一个表可以有多个并发的行级触发器,可以在插入前,插入后,更新前,更新后,删除前,删除后进行触发。我们可以在触发器中写入PSQL语句,默认值,产生异常,firebird现在支持统一触发器,即可以一个触发器中,一次性管理插入,更新,删除的操作。5、扩展函数我们可以使用C语言,C++,DELPHI写UDF,使用UDF(用户定义函数库)可以很容易的挂入数据库引擎中以扩展我们需要的功能6、字符集Firebird实现了很多国际标准的字符集,包括Unicode。7、SQL标准兼容Firebird 实现了全部SQL92所要求的功能,实现了SQL99最常用的的要求。包括但不限于"FULL/LEFT/RIGHT [OUTER] JOIN , UNION, DISTINCT ,子查询(IN, EXISTS),内部函数 (AVG, SUM, MIN, MAX, COALESCE, CASE, ..), 主键,外键,唯一索引以及所有通用的数据类型。Firebird还实现了域,字段级别的约束,视图,异常,规则和权限管理,更多的详细信息,请参考Firebird发布通知和参考手册。 本易语言 模块,使用Firebird API直接连接,如果使用本地版,直接附带一个fbclient.dll即可,如果连接远程服务端,只需在连接数据库文件路径前添加"远端服务器ip:"即可. 新版:Firebird-3.0.4.33054-0_Win32,可以静默安装,也可以自行安装(不用选择,直接下一步下一步就完成了服务端的安装) 链接:https://pan.baidu.com/s/1Mr_1hsblBDvRpx-E8ofFXg 提取码: gmvq 这里有客户端dll文件,api的c语言示例和头文件(iberror.h是错误码对照;ibase.h是所有函数常量等的头文件)。

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧