我有一个扩展名的文件.ib.我猜它是Interbase或Firebird文件,但我无法确切地解决哪个问题.此外,尚不清楚确切地使用哪个版本的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) 有人可以解释使用.NET/C#连接到Interbase 7.1数据库的最佳方法吗?
该应用程序将安装在许多最终用户计算机上,因此我需要使用我的应用程序打包的"附件"越少越好.
我们有一个Interbase 7.1数据库,我正在试图弄清楚如何将查询返回的记录数限制为1.我真的只需要知道上一条记录中的事件代码,其中查询将返回数百条记录,如果我不能做某种限制.
提前致谢!
我们想要在 Delphi 2009 和 Interbase 中使用 Unicode,并发现要将字符编码从 WIN1252 切换到 UNICODE_FSS 或 UTF8,我们首先必须在所有数据模块中将 TStringField 的所有实例替换为 TWideStringField。对于大约 60 个数据模块,我们不能简单地在一个周末完成这一工作。我只能看到迁移策略的两个选项:
或者
据我所知,持久数据库字段的字段类型是在某种类注册表中注册的。我们可以使用它来让 Delphi 相信 TStringField 对于具有 UNICODE_FSS 或 UTF8 编码的 Interbase 字符列来说是可以的吗?
或者我们可以使用在这两种情况下都可以与 TStringField 一起使用的商业 dbExpress 驱动程序吗?
另请参阅我的相关问题:Delphi dbExpress 和 Interbase:UTF8 迁移步骤和风险?
更新:在所有 DFM 和 PAS 文件中将所有出现的 TStringField 替换为 TWideStringField 后,我们发现现在还需要在大约 100 个位置将 TWideStringFields 的“Size”属性值乘以四(如果我们使用 UTF8)。所以我开始悬赏寻找一种减少修复 DFM 的手动工作的方法
Interbase 是一个分代数据库。
这很好,因为回滚几乎是瞬时的,但count(*)需要永远。
这与例如 MySQL不同,其中 count 可以使用索引。
我一直不知道为什么,直到我看到这个:
即使 COUNT 中包含的一个或多个列上的索引可用,也必须访问所有记录以查看它们在当前事务隔离下是否可见。
在维基百科上:http : //en.wikipedia.org/wiki/InterBase
关于如何在 Interbase/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特有的基本连接案例,因此我不确定应该做什么以及应该去哪里.
我正在尝试打开一个旧的 interbase.gdb文件。这对我来说是一个新的步骤,我不知道从哪里开始任何建议都会有很大帮助,过去几天我一直在互联网上搜索,但我仍然需要知道如何去做。
我的客户有一个旧的不存在的应用程序; 他与提出申请的公司有问题,他们不会透露他的数据库密码.他意识到他签了一份合同(当时),他说他有点"租用"申请,他们无权透露任何内容.该客户发现他不是唯一一个与该公司有同样问题的人.他是一名牙医,其他同样旧应用的牙医在尝试购买新软件并尝试将患者迁移到新系统时遇到了同样的问题.
在任何一种情况下,他都想打开他的小火鸟数据库,所以我们至少可以将一些数据提取到我们的SQL Server中.我尝试使用默认的'masterkey'(事实上,由于8 char限制,'masterke')无济于事.
现在我知道他可以合法并试图强迫公司发布他的信息,但我想在短期内做到这一点.有没有人知道一个可以暴力/破解传统Firebird密码的应用程序?
谢谢.
编辑:遗留软件是"STOMA-W",我甚至无法在互联网上找到它.它们位于西班牙阿斯图里亚斯.
我想将临时表中的一堆记录复制到目标表.问题是某些记录可能违反了目标表中的检查约束,因此我想插入可能的所有内容,并在其他地方为无效记录生成错误日志.
如果我执行:
INSERT INTO target_table
SELECT ... FROM temp_table
Run Code Online (Sandbox Code Playgroud)
如果任何记录违反任何约束,则不会插入任何内容.我可以制作一个循环并逐个手动插入,但我认为性能会更低.
目前我正在开发一个项目,我想使用实体框架为 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)