Articles of firebird

获得Mono和Firebirdembedded式Linux的工作

我最近正在研究embeddedFirebird作为一个可以取代我的项目中的SQLite的产品。 事情是,我希望能够在Windows和Linux上使用我的应用程序的相同的编译,不幸的是与SQLite是不可能的。 尽pipe如此,我还是无法使用Mono在Linux上运行Firebird(还没有尝试过Windows)。 我做的事情: 从NuGet安装Firebird ADO.NET Provider 。 为Windows库下载了32位embedded式客户端,并提取到我的bin目录中: fbembed.dll , firebird.cfg , firebird.msg , ib_util.dll , icudt30.dll , icuin30.dll , icuuc30.dll 。 创build连接string: string fbConnectionString = String.Format ("ServerType=1;User=SYSDBA;" + Password=masterkey;Dialect=3;Database={0};Charset=UTF8", _dbFile); FbConnection.CreateDatabase (fbConnectionString); 不过,我得到的错误,在path中找不到fbembed.dll 。 我该怎么办?

如何在没有运行服务的情况下使用embedded在IBPP Linux上的firebird?

我们即将通过IBPP在我们的软件中整合一个Firebird数据库。 根据火鸟文献,这应该是可能的。 我们已经设法在服务运行时通过IBPP使用firebird数据库。 但是,我们希望避免运行服务。 在windows上,我们已经完成了这个工作 – 但是在Linux方面有两个主要的区别: 安装 在Windows上, 不需要进行安装。 在Linux上,似乎是,正如文档所说: 最后,您不能只将libfbembed.so与您的应用程序一起发送,并将其用于连接到本地数据库。 在Linux下,你总是需要一个正确安装的服务器,无论是经典还是超级。 这是真的? 我发现firebird的文档有时过时了。 如果这仍然有效,如何处理这个安装? 我们可以在客户的电脑上运行吗? 我看了一下shell脚本。 它启动一项服务。 对我来说,似乎在安装过程中需要运行此服务。 无论如何,如果这个服务仅仅是为了安装而运行的话,这将是没有问题的,事后也不需要这样做 – 但我不确定这一点。 IBPP 在windows上,你只需通过loadlibrary加载DLL:我们把fbembed.dll,icuuc30.dll和icudt30.dll放在any_dirctory上,改变了IBPP里的embedded式DLL调用loadlibary(“any_directory \ fbembed.dll”)添加any_directory PATHvariables。 现在一切正常。 (另外:通过这样做,可以通过我们使用IBPP创build的DLL来调用数据库,这个DLL可以被我们给客户的每个EXE所使用,同时也关心EXE所在的path)。 但在Linux上,我没有find这个代码。 在这个HOWTO中 ,似乎需要一个特殊的目录结构。 这真的需要吗? 是否有可能将.so文件放在any_directory上并从another_dirctory运行应用程序? 是否需要在IBPP的Linux部分添加loadlibary? (顺便说一句:我的问题是我不能真正地testing的东西,因为Linux集成为我做别人)。

火鸟:fbexport无法导出数据

我有一个奇怪的问题。 在Windows下创build数据库。 现在在FreeBSD下,我试图将数据导出到csv。 Fbexport是在Linuxulator(Linux二进制)下工作的。 从isql-fb我可以连接到数据库,并执行任何操作像SELECT ,但从fbexport – 无法。 root@sms# fbexport -Sc -D /home/sms2/DB2.FDB -H 127.0.0.1 -U 'SYSDBA' -P 'masterkey' -F full.txt -A "WIN1251" -B ::: -Q "SELECT * FROM AGENTS;" Connecting to: '127.0.0.1' as 'SYSDBA'…ERROR! *** IBPP::SQLException *** Context: Database::Connect Message: isc_attach_database failed SQL Message : -551 This user does not have privilege to perform […]

如何连接Raspbian上的TA +数据库(Firebird)?

我们目前正在Windows机器上使用Safescan的TA +软件,但是尝试将数据库(TADATA.FDB)移动到小型Linux服务器上,这就是为什么我们购买了Raspberry Pi2并在其上安装了Raspbian和Firebird 2.5 Super。 之后,我们将TADATA.FDB文件从Windows 7机器复制到Pi,并将SYSDBA密码设置为“masterkey”。 如果我尝试使用Windows机器连接到上述数据库 CONNECT "C:\Program Files (x86)\SafeScan\TA4\TADATA.FDB" user 'SYSDBA' password 'masterkey' 一切工作正常,我可以访问数据库。 但是,如果我使用等效的命令 CONNECT "/var/lib/firebird/2.5/data/tadata.fdb" user 'SYSDBA' password 'masterkey' 在树莓上,我得到以下回应: Statement failed, SQLSTATE = HY000 file /var/lib/firebird/2.5/data/tadata.fdb is not a valid database 如果我尝试使用他们提供的语法(SERVERIP:/var/lib/firebird/2.5/data/tadata.fdb)通过Safescan软件连接,程序会给我这个错误信息: The settings of the provided database couldn't be opened (Error: file /var/lib/firebird/2.5/data/tadata.fdb is not a valid database […]

Linux中的Firebird UDF设置为通过引用返回时崩溃服务器

我正在尝试在Linux中为firebird创build一些简单的UDF(用GCC编译的C语言)。 问题是,当我把“返回机制”设置为“引用”的时候,当我调用这个函数的时候,服务器崩溃了。 当它是“按价值”,没有问题。 这里是我尝试写在C中的函数: 这个工作: double round(double *); double round(val) double *val; { *val = *val * 100; *val = (*val>= 0) ? (long)(*val + 0.5) : (long)(*val – 0.5); *val = *val / 100; return *val; } 但是这个在调用时崩溃了服务器: char * proper_case(str) char * str; { return str; } 这里是DDL: DECLARE EXTERNAL FUNCTION "ROUND" DOUBLE […]

编译Qt 5.5.1(msvc2010)的ibase驱动

我需要Qt的ibase驱动程序来处理Firebird数据库。 我已经安装了: Windows 7 SP1 32位 QT 5.5.1-0(msvc2010 32bit) 源代码组件/ Essentials(5.5.1-0) 火鸟2.1.5 32位 我尝试把它作为一个官方网站描述 ,但取而代之 cd %QTDIR%\qtbase\src\plugins\sqldrivers\ibase qmake "INCLUDEPATH+=C:/interbase/include" "LIBS+=-lfbclient" ibase.pro 用它:在c:\ windows \ system32中创build库fbclient.dll C:\Program Files\Firebird\Firebird_2_1\bin\instclient if 比编译驱动程序ibase: C:\Qt\5.5\Src\qtbase\src\plugins\sqldrivers\ibase>qmake INCLUDEPATH+='C:\Program Files\Firebird\Firebird_2_1\include'" "LIBS+=-LC:\Windows\system32\fbclient.dll" ibase.pro Project ERROR: Cannot load qmodule.pri! Error processing project file: ibase.pro 在我尝试使用qt 5.1.0(mingw32)编译它之前,没有错误。 但用qt 5.1.0(mingw32)我不能链接fbclient.dll(可能是用MSVS编译)。 由于编译器的不同 (用MSVC编译的firebird,而且是用qt mingw)决定切换到QT 5.5.1(使用msvc2010)。 如果我用-d比运行qmake C:\Qt\5.5\Src\qtbase\src\plugins\sqldrivers\ibase>qmake "INCLUDEPATH+='C:\Program […]

Delphi中带有数据库连接的Windows服务

我只想要一个关于情况的小费。 我创build了一个Windows服务来完成我的应用程序的任务pipe理。 该服务连接到数据库(Firebird)并调用执行任务pipe理的组件。 该过程工作正常,但是,在Windows 10中,服务不会在重新启动计算机后自动启动。 在其他版本的Windows中,一切正常。 在testing中,我发现如果我对调用任务执行的方法发表评论,服务通常从Windows 10开始。 Procedure TDmTaskService.ServiceExecute(Sender: TService); Begin Inherited; While Not Terminated Do Begin //Process; Sleep(3000); ServiceThread.ProcessRequests(False); End; End; 问题是组件或服务中没有任何exception。 通过分析Windows事件监视器,我发现与我的服务发生的错误是超时,在这种情况下服务无法连接到服务pipe理器的时间限制。 没有更多的例外生成。 有没有人有任何关于在Delphi中连接到数据库的Windows服务? 我的源代码示例: **Base class:** unit UnTaskServiceDmBase; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs; type TDmTaskServicosBase = class(TService) private { Private declarations } public function GetServiceController: TServiceController; […]

加载pdo_firebird.dll

我想运行PHP扩展,能够连接到firebird数据库。 在php.ini中,启用了行扩展名= pdo_firebird.dll,并且该文件存在于其他扩展名(在/ ext目录中)。 每次我重新启动Apache(和PHP)时,我都看不到在phpinfo()中加载的扩展名。 为什么? 我使用PHP 5.4在Windows 8上运行Apache 2.2。

PHP的firebird插入blob文件到数据库apache突然停止工作

我目前正在firebird数据库上插入图像,它工作正常,请参阅下面的代码。 $dbh = ibase_connect($host, $user, $pass); $blh = ibase_blob_create($dbh); ibase_blob_add($blh, $data); $blobid = ibase_blob_close($blh); $sql = "INSERT INTO blobtable(blobfield) VALUES (?)"; $sth = ibase_query($dbh, $sql, $blobid); 但是当我在插入语句上添加一些数据时突然发生apache崩溃并停止工作。 添加新数据时请参阅下面的代码。 $dbh = ibase_connect($host, $user, $pass); $blh = ibase_blob_create($dbh); ibase_blob_add($blh, $data); $blobid = ibase_blob_close($blh); $sql = "INSERT INTO blobtable(name, desc, blobfield ) VALUES (?, ?, ?)"; $sth = […]

问题与QIBASE(火鸟+ Ubuntu)

早上好。 我尝试编译QIBASE驱动程序,使用%QTDIR / demo中的sqlbrowser访问FireBird数据库。 但是当我填充sqlbrowser的所有领域,并按下确定button程序崩溃消息: /opt/qt-everywhere-opensource-src-4.7.3/demos/sqlbrowser-build-desktop/sqlbrowser: symbol lookup error: /usr/lib/qt4/plugins/sqldrivers/libqsqlibase.so: undefined symbol: isc_attach_database 编译QIBASE驱动我已经完成了以下步骤: 将FirebirdCS-2.5.0安装到/ opt / firebird。 将qt源文件解压到/ opt / qt4。 编译QIBASE驱动程序: cd / opt / qt / src / plugins / sqldrivers / ibase qmake -o Makefile“INCLUDEPATH + = / opt / firebird / include”“LIBS + = – L / opt / firebird […]