问题标签 [btrieve]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2900 浏览

c# - 没有 Pervasive 的 Btrieve?

是否有任何库可以在不从 Pervasive 购买东西的情况下查询 Btrieve 数据库?我正在寻找用 C# 或 Python 编写代码。

0 投票
1 回答
327 浏览

c# - 确定文件中更改的字节的开始和结束范围

我正在开发一个在我们公司内部使用的小型实验实用程序,它可以索引存储在我们的自定义 CRM 软件中的笔记以进行全文搜索。这些笔记存储在 Btrieve 数据库(一个名为 NOTES.DAT 的文件)中。可以使用 Pervasive 的 ADO.NET 提供程序连接到数据库并检索注释以进行索引。但是,索引器当前循环遍历每个注释并每 5 分钟重新索引一次。这似乎非常低效。

不幸的是,我们的 CRM 软件无法向索引服务发出通知已更改注释,因为数据库可能存在于远程计算机上(并且开发人员不会编写与我的通信的过程)通过网络提供服务,因为它现在只是一个爱好项目)。

与其放弃,我想借此机会了解更多关于原始 Btrieve 数据库的知识。所以,这是我的计划...

NOTES.DAT 文件必须共享,因为我们的 CRM 软件使用 Btrieve API 而不是 ODBC 驱动程序(这意味着客户端安装必须能够在网络上看到文件本身)。我想监视这个文件(使用 FileSystemWatcher 之类的东西?),然后确定被更改的字节。使用该信息,我将尝试计算该位置的记录并获取其主键。然后索引器将使用 Pervasive 的 ADO.NET 提供程序仅更新该记录。

问题(除了我不太了解 Btrieve 文件的结构,或者是否可以从原始数据确定主键)是我不知道如何确定字节的开始和结束范围在 NOTES.DAT 中进行了更改。

我可以区分两个版本,但这意味着在某处存储 NOTES.DAT 的副本(它可能非常大,因此需要全文索引服务)。

最有效的方法是什么?

谢谢!

编辑:在一个事务中添加、编辑或删除多个注释是可能的,因此如果可能,该方法需要能够确定多个单独的字节范围。

0 投票
1 回答
410 浏览

c - 为 C DLL 编写替代品?

我想为 w3btrv7.dll 编写一个非常简单的替代品,这样我就可以将 Btrieve API 调用传递给另一个库(用 .NET 编写并通过 COM 调用)。基本上,我需要在 C 中模仿 BTRCALL 函数的签名。但是,我根本不是 C 程序员……。我想我对如何编写导出函数的 DLL 有一个很好的想法,但除此之外,我迷路了。

基本签名如下所示:

操作码- 整数

位置块- 128 字节数组

数据缓冲区- 我找不到有关此的许多详细信息,但我假设它是一个字节数组,其长度由数据缓冲区长度参数指定。

数据缓冲区长度- 同样,没有太多信息,但我假设这是一个指定前一个字节数组长度的整数。

Key Buffer - 最大大小为 255 字节的字节数组

Key Buffer Length - 前一个字节数组的长度

密钥号- 2 字节整数

任何人都可以在 C 中建议一个与此签名匹配的函数吗?

0 投票
2 回答
654 浏览

ruby - Btrieve/Pervasive db 和 Ruby

是否有任何解决方案可以从 Ruby 级别使用 Btrieve/Pervasive db?有什么宝石吗?也许有人对这样的事情有一些经验?

或者也许通过 Jruby 使用一些 Java 库?我从来没有用过Jruby

0 投票
1 回答
1547 浏览

vb.net - 使用 VB.Net 读取 .btr 文件

我需要使用 VB.net 将数据从 .btr 文件 (text.btr) 导入 Access 数据库。我在谷歌搜索但没有找到任何解决方案。

任何帮助都会受到高度评价。

谢谢,瑜伽士

0 投票
2 回答
1922 浏览

date - Btrieve 日期整数

这是我的问题:

我正在通过 Pervasive Control Center 从 Btrieve 文件 (.dat) 迁移数据,并且有一个字段类型定义为整数,但它是一个日期,例如日期“31/12/2009”(在旧系统中看到)导出时将其视为数字 733772。

旧系统正确显示日期,但我不能以相同的格式导出它,或者至少我不能转换它。有人知道如何通过 Excel 或其他东西转换这个数字吗?

0 投票
1 回答
303 浏览

vb6 - Btrieve GetNextExtended 状态 62

我无法让 GetNextExtended(36) 操作在 Btrieve 中工作。这是返回状态码 62 的调用:

在对代码进行搜索后,我发现许多网站指出该代码表明数据缓冲区中存在错误,存储在 m_byteRecordBuffer 中。以下是存储在该变量中的值:

我希望我只是缺少一些简单的东西。任何帮助将不胜感激。

0 投票
1 回答
1961 浏览

odbc - Btrieve(文件)所有者问题

我的任务是从 Btrieve (Pervasive) 数据库中导出一堆表,但其中一个表正在打架。我正在使用 Pervasice 控制中心,但是当我运行时,SELECT * FROM <troublesome table>我收到了这个错误:

我用谷歌搜索了这个,发现 DDF 文件可能有一个“所有者”,但如果我理解正确,所有表都在该文件中。但是只有一个表导致了这个错误,所以我不知道发生了什么。

有人可以提供一些帮助。

0 投票
1 回答
524 浏览

vb6 - Btrieve GetNextExtended 'UC' 选项重复仅返回一条记录

我正在研究 Pervasive SQL 2000i SP4 并通过 Btrieve API 访问我的数据。最近我深入研究了GetNextExtended操作并使用了“EG”选项,但总是忽略其中的第一条记录。考虑到第一条记录,我决定切换到“UC”选项,但这导致重复返回相同的记录。我生成的数据缓冲区不包含“条款”。

任何帮助将不胜感激。

这是 MKDE 跟踪日志的摘录,其中使用了“UC”选项,这导致重复返回相同的记录:

只是在跟踪日志上的一个注释,从事务 0008 到 0011,所有数据都与 0007 完全相同,因此为了一些急需的简洁性,这些条目被省略了。在 0011 之后,我手动停止了循环,因为它会无限期地继续返回相同的记录。

0 投票
1 回答
2375 浏览

sql - 如何将一堆 .btr 和 .lck 文件转换为可读的 SQL?

我有一堆 .btr 和 .lck 文件,我需要将它们导入 SQL Server 数据库。

我怎样才能做到这一点?