Posts tagged ‘firebird’

现象

Firebird 数据库表中字段类型为 Float,使用 IBPP set() 函数使用 double 类型设置 Prepared Statement 中对应的 Parameter 时发生错误。因运行时无法看到错误信息,虽然记录不能插入表,但程序也不总是在这个时候崩溃,因此这个问题相当隐蔽。

Continue reading ‘Firebird 字段类型与 IBPP set() 函数参数类型匹配问题’ »

现象

wxWidgets 与 IBPP 一同使用(连接 wxWidgets 库)时,

  • 如果使用 Unicode,则 IBPP 无法编译,错误信息:
    make -f makefile.gcc all
    g++.exe -c -o MinGWUnicodeDebug/all_in_one.o -fno-rtti -fno-pcc-struct-return -fstrict-aliasing -Wall -Wno-write-strings -D__WXMSW__ -D__GNUWIN32__ -D__WIN95__ -DUNICODE  -D__WXDEBUG__ -ggdb -O0 -Wall -Wno-write-strings -I"C:/wx/include" -I"C:/wx/contrib/include" -I"C:/wx/lib/gcc_lib/mswud" ibpp\core\all_in_one.cpp
    In file included from ibpp\core\all_in_one.cpp:35:
    ibpp\core\_ibpp.cpp: In member function `ibpp_internals::GDS* ibpp_internals::GDS::Call()':
    ibpp\core\_ibpp.cpp:142: error: cannot convert `const char*' to `const WCHAR*' for argument `1' to `HINSTANCE__* LoadLibraryW(const WCHAR*)'
    ibpp\core\_ibpp.cpp:162: error: cannot convert `char*' to `WCHAR*' for argument `2' to `DWORD GetModuleFileNameW(HINSTANCE__*, WCHAR*, DWORD)'
    ibpp\core\_ibpp.cpp:170: error: cannot convert `char*' to `WCHAR*' for argument `1' to `WCHAR* lstrcatW(WCHAR*, const WCHAR*)'
    ... ...
  • 如果不使用 Unicode,编译通过,但运行时发生异常退出。

解决方案

针对第二种情况,不使用 wxWidgets 的编译选项 -fno-rtti,重新编译 IBPP(all_in_one.cpp)。

即在 Makefile 里把下面一行:

CPPFLAGS= -fno-rtti -fno-pcc-struct-return -fstrict-aliasing -Wall -Wno-write-strings -D__WXMSW__ -D__GNUWIN32__ -D__WIN95__

改为

CPPFLAGS=-fno-pcc-struct-return -fstrict-aliasing -Wall -Wno-write-strings -D__WXMSW__ -D__GNUWIN32__ -D__WIN95__

故障消除。

Continue reading ‘使用 IBPP 访问 Firebird 数据库’ »

(译自 Client and server combined: Firebird Embedded Server

Continue reading ‘客户端和服务器的结合:Firebird Embedded 服务器’ »

Continue reading ‘Firebird 2 快速上手指南’ »

Continue reading ‘Firebird 两分钟指南’ »

Firebird是一个全功能的、强大高效的、轻量级、免维护的数据库。它很容易让您从单用户、单数据库升级到企业级的应用。一个Firebird数据库服务器能够管理多个独立的数据库,每一个数据库同时可支持多个客户端连结。总之,它是一个开源的、强大的、可以自由使用的数据库系统(即使是商业上的使用)

  • Firebird是一个真正的关系数据库,支持存储过程、视图、触发器、事务等大型关系数据库的所有特性;
  • Firebird支持SQL92的绝大部分命令,并且支持大部分SQL99命令,新版Firebird 2.0对SQL99的支持更完整;
  • Firebird源码基于成熟的商业数据库Interbase,有良好的稳定性,与Interbase有良好的兼容性;
  • 不用考虑授权费用(免费),不用担心将来有一天你或你的客户因为使用盗版而被数据库开发商告上法庭;
  • 发布简易,安装文件只有几M,且高度可定制,客户端的分发也很简单,只需一个DLL文件;
  • Firebird的嵌入式服务器版本,不用安装,直接运行,基于单机开发首选;
  • Firebird的运行效率非常高;
  • 具备高度可移植性,可在Linux,Unix,MacOS,Windows,Solaris系统下运行,而且数据库格式完全一样,不用修改;
  • 开发环境支持良好,Delphi,C++Builder不用通过ODBC连接,直接用原生开发接口开发基于Firebird的程序。

Continue reading ‘关系数据库系统 Firebird 介绍’ »