标签: interbase

哪个版本的Interbase或Firebird是在哪个数据库下创建的?

我有一个扩展名的文件.ib.我猜它是InterbaseFirebird文件,但我无法确切地解决哪个问题.此外,尚不清楚确切地使用哪个版本的Interbase(或Firebird)来创建文件.

到目前为止我发现了什么:

我已经尝试了各种不同的软件来读取这个文件(FlameRobin,Firebird的isql.exe以及最新版本的Interbase),我得到的错误消息告诉我ODS("On Disk Structure")是版本9.这是相当旧的,并且约会Firebird从Interbase分叉的时间.

我已经设法连接到数据库并使用Firebird查询它,但是我得到的一些错误让我相信它实际上是一个Interbase数据库(如果需要,我可以进一步解释)

是否有一种简单的方法来确定我正在处理的数据库到底是什么类型的?即它是一个Interbase或Firebird文件,如果是这样,它是用哪个版本编写的?

编辑:gstat.exe -h使用Firebird 2.5运行的输出:

Database header page information:
    Flags           0
    Checksum        12345
    Generation      7558
    Page size       4096
    ODS version     9.1
    Oldest transaction  7506
    Oldest active       7544
    Oldest snapshot     7544
    Next transaction    7549
    Bumped transaction  1
    Sequence number     0
    Next attachment ID  5
    Implementation ID   16
    Shadow count        0
    Page buffers        0
    Next header page    0
    Database dialect    1
    Attributes      force write

    Variable …
Run Code Online (Sandbox Code Playgroud)

firebird interbase

6
推荐指数
1
解决办法
7772
查看次数

使用.NET C#连接到Interbase 7.1的最佳方法

有人可以解释使用.NET/C#连接到Interbase 7.1数据库的最佳方法吗?

该应用程序将安装在许多最终用户计算机上,因此我需要使用我的应用程序打包的"附件"越少越好.

.net c# interbase

5
推荐指数
1
解决办法
9068
查看次数

如何限制为Interbase 7.1返回的记录数?

我们有一个Interbase 7.1数据库,我正在试图弄清楚如何将查询返回的记录数限制为1.我真的只需要知道上一条记录中的事件代码,其中查询将返回数百条记录,如果我不能做某种限制.

提前致谢!

sql interbase limit

5
推荐指数
2
解决办法
1万
查看次数

是否可以调整 TStringField 以像 Delphi 中的 TWideStringField 一样工作?

我们想要在 Delphi 2009 和 Interbase 中使用 Unicode,并发现要将字符编码从 WIN1252 切换到 UNICODE_FSS 或 UTF8,我们首先必须在所有数据模块中将 TStringField 的所有实例替换为 TWideStringField。对于大约 60 个数据模块,我们不能简单地在一个周末完成这一工作。我只能看到迁移策略的两个选项:

  • 找到一种解决方法,允许使用现有的 TStringField 字段而不触发“expected: TWideStringField”错误

或者

  • 删除所有持久字段以避免字符串类型冲突

据我所知,持久数据库字段的字段类型是在某种类注册表中注册的。我们可以使用它来让 Delphi 相信 TStringField 对于具有 UNICODE_FSS 或 UTF8 编码的 Interbase 字符列来说是可以的吗?

或者我们可以使用在这两种情况下都可以与 TStringField 一起使用的商业 dbExpress 驱动程序吗?

另请参阅我的相关问题:Delphi dbExpress 和 Interbase:UTF8 迁移步骤和风险?


更新:在所有 DFM 和 PAS 文件中将所有出现的 TStringField 替换为 TWideStringField 后,我们发现现在还需要在大约 100 个位置将 TWideStringFields 的“Size”属性值乘以四(如果我们使用 UTF8)。所以我开始悬赏寻找一种减少修复 DFM 的手动工作的方法

migration delphi unicode interbase dbexpress

5
推荐指数
1
解决办法
2424
查看次数

如何加速 Interbase/Firebird 中的 Count(*)

Interbase 是一个分代数据库。

这很好,因为回滚几乎是瞬时的,但count(*)需要永远。
例如 MySQL不同,其中 count 可以使用索引。

我一直不知道为什么,直到我看到这个:

即使 COUNT 中包含的一个或多个列上的索引可用,也必须访问所有记录以查看它们在当前事务隔离下是否可见。

在维基百科上:http : //en.wikipedia.org/wiki/InterBase

关于如何在 Interbase/Firebird 中进行快速计数的任何提示

firebird interbase count

5
推荐指数
1
解决办法
3401
查看次数

与Zend Framework中的Firebird适配器的数据库连接

我刚刚开始了解ZF和Firebird,因为我被分配了一个项目.我一直试图在两者之间建立联系,但我还没有成功.我用PDO_Mysql尝试了ZF,它运行得很好,因为它与PHP的Firebird连接(出自ZF),但当我尝试在ZF中与Firebird适配器建立连接时,它会一直显示各种错误.

所以,只是为了检查.要使用Firebird在ZF中建立连接,应该使用我在application.ini中配置的适配器(Firebird.php)来完成连接.我在application.ini中有这样的东西:

**resources.db.adapter = "Firebird"
resources.db.params.host = "localhost"
resources.db.params.dbname =  "C:/wamp/www/WebTH/application/data/THDATA.gdb"
resources.db.params.username = "sysdba"
resources.db.params.password = "masterkey"**
Run Code Online (Sandbox Code Playgroud)

结果错误: ...Firebird.php): failed to open stream: No such file or directory in ...\Loader.php

我还看到需要在Bootstrap.php中添加一个函数.如果我在bootstrap.php中添加函数initDb,如下所示:

 **protected function _initDb()
{
    $this->bootstrap('config');
    $config = $this->getResource('config');
    $db = Zend_Db::factory('Firebird', array(
        'host' => $config->Database->Server,
        'username' => $config->Database->Username,
        'password' => $config->Database->Password,
        'dbname' => $config->Database->DBName,
        'adapterNamespace' => 'ZendX_Db_Adapter'
    ));
    return $db;
}**
Run Code Online (Sandbox Code Playgroud)

我收到错误: ...Uncaught exception 'Zend_Application_Bootstrap_Exception' with message 'Resource matching "config" not found' in ...\BootstrapAbstract.php

我想知道为了使连接正常工作我真正需要做什么.很抱歉,如果这太明显了,但我找不到Zend Framework和Firebird特有的基本连接案例,因此我不确定应该做什么以及应该去哪里.

firebird interbase database-connection zend-framework

5
推荐指数
1
解决办法
1497
查看次数

打开 .gdb 数据库文件

我正在尝试打开一个旧的 interbase.gdb文件。这对我来说是一个新的步骤,我不知道从哪里开始任何建议都会有很大帮助,过去几天我一直在互联网上搜索,但我仍然需要知道如何去做。

interbase data-access data-extraction

5
推荐指数
1
解决办法
3万
查看次数

查找旧版firebird/Interbase数据库密码

我的客户有一个旧的不存在的应用程序; 他与提出申请的公司有问题,他们不会透露他的数据库密码.他意识到他签了一份合同(当时),他说他有点"租用"申请,他们无权透露任何内容.该客户发现他不是唯一一个与该公司有同样问题的人.他是一名牙医,其他同样旧应用的牙医在尝试购买新软件并尝试将患者迁移到新系统时遇到了同样的问题.

在任何一种情况下,他都想打开他的小火鸟数据库,所以我们至少可以将一些数据提取到我们的SQL Server中.我尝试使用默认的'masterkey'(事实上,由于8 char限制,'masterke')无济于事.

现在我知道他可以合法并试图强迫公司发布他的信息,但我想在短期内做到这一点.有没有人知道一个可以暴力/破解传统Firebird密码的应用程序?

谢谢.

编辑:遗留软件是"STOMA-W",我甚至无法在互联网上找到它.它们位于西班牙阿斯图里亚斯.

legacy firebird interbase brute-force forgot-password

4
推荐指数
2
解决办法
1万
查看次数

如果根据Firebird/Interbase中的检查约束它们是否有效,我如何在表之间复制记录?

我想将临时表中的一堆记录复制到目标表.问题是某些记录可能违反了目标表中的检查约束,因此我想插入可能的所有内容,并在其他地方为无效记录生成错误日志.

如果我执行:

INSERT INTO target_table
  SELECT ... FROM temp_table
Run Code Online (Sandbox Code Playgroud)

如果任何记录违反任何约束,则不会插入任何内容.我可以制作一个循环并逐个手动插入,但我认为性能会更低.

database firebird interbase check-constraints

4
推荐指数
1
解决办法
2196
查看次数

Interbase XE7 和实体框架 6.1.2

目前我正在开发一个项目,我想使用实体框架为 Interbase 数据库创建一个数据库层。唯一的问题是我无法让它工作,所以我求助于我心爱的 SO 合作用户。

我目前正在使用:

  • Visual Studio 2013 高级版

  • Interbase XE7 开发版(在此下载

  • 实体框架 6.1.2

  • Interbase ADO.NET 驱动程序随 Interbase XE7 安装一起提供

在这个例子中,我创建了一个非常简单的数据库,其中只有 1 个UserTypes包含ID和 的表Description

我编写了以下代码来表示我的UserTypes模型和我的上下文(这确实非常基本):

public class MyContext : DbContext
{
    public MyContext(DbConnection connection)
        : base(connection, true)
    { }

    public virtual DbSet<UserTypes> UserTypes { get; set; }
}

public class UserTypes
{
    [Key]
    public int ID { get; set; }

    [StringLength(40)]
    public string Description { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

c# interbase entity-framework

4
推荐指数
1
解决办法
630
查看次数