问题标签 [esent]

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 投票
2 回答
2428 浏览

esent - Esent database engine limited to specific page sizes?

I had a problem opening an esent database (Windows.edb) due to some problem with the page size. The pagesize of the Windows.edb on my system is 32K. When I set this via JET_paramDatabasePageSize JetInit would return the error -1213 (The database page size does not match the engine). Laurion Burchall suggested to turn off JET_paramRecovery once I need only a ReadOnly access to the database. That solved my problem.

Until now. I have a not perfectly shutdown database. I assume that, with JET_paramRecovery=On, JetInit would automagically do the recovery and let me read the database. But if I try that I get that old -1213 error.

Now I can fix my file with ESENTUTL but the dummy user of my app won't be able to. Is there some way to have recovery on and still be able to define ANY DatabasePageSize? There are no log files present at the location of the database (and I set the Logpath to the same directory to make sure they aren't written anywhere else).

Does this mean that the engine on my machine does not support the page size or the database? Or could I solve the problem with setting another magic switch?

0 投票
1 回答
137 浏览

.net - 可扩展数据库引擎;表是否可以关联

ESE 表可以相互关联吗?

0 投票
1 回答
374 浏览

c++ - 缺少 esent.h

我正在尝试运行此程序,但我不断收到错误“esent.h 没有这样的文件或目录”

可能是什么问题呢?。

0 投票
1 回答
2821 浏览

c++ - 为 c++ 示例设置基本 Esent

我正在为 c++ 开发人员尝试这个esent 示例。我安装了最新的 Windows SDK,我正在使用 Dec C++。我在 C:\Dev-Cpp\include 有我的包含。我尝试将 esent.h 复制到我的包含目录但我仍然得到很多错误。这是整个代码。

我需要做什么才能使我的代码成功编译?

以下是一些编译器错误:

0 投票
2 回答
1375 浏览

sqlite - ESENT 性能 Vista 与 XP

我正在为我的公司测试 Microsoft 的 ESENT(可扩展存储引擎)。但是,我有奇怪的性能结果。

与同类技术(SqlLite)相比,读取数据时性能很弱。

在我的性能测试中,我或多或少地随机读取了数据库中的所有数据。我不会两次读取相同的数据,所以我认为缓存无法帮助我。我多次运行测试以获得数据“热”时的速度。我在 long 类型的 id 上使用索引。我使用以下函数:JetSetCurrentIndex、JetMakeKey、JetSeek 和 JetRetrieveColumn 来读取。

在 Windows Vista 中,我激活了参数 JET_paramEnableFileCache,它创造了奇迹,甚至比 SqlLite 还要快。

但是,由于此参数在 Windows Vista 或更高版本上可用,因此在 Windows XP 中的性能无法与 SQlite 相比(比如慢 15 倍)。它每次都在磁盘上读取。在 Windows XP 上使用 Sqlite 时,所有读取测试(第一个除外)都不会在磁盘上读取。

我是否缺少另一个参数或会有所作为的东西?

非常感谢 !

0 投票
2 回答
595 浏览

exchange-server - 如何获取 Edb 文件的 Msg Table 结构?

我正在尝试读取离线 edb 文件。我现在拥有的是 edb 文件的表格,我想知道表格的结构。任何帮助

0 投票
2 回答
615 浏览

windows - ESENT 发行权

我想知道 esent.dll(可扩展存储引擎)的分发权限。

我知道它包含在 Windows 中,但根据 Windows 的版本,它并不相同。

例如,在 Windows 2000 中,初始化是不同的,而在 Windows Vista+ 中,添加了一些有趣的参数。

那么,与其根据客户端操作系统对我们的软件进行不同的编程,我们是否可以只使用最新版本的 esent.dll 并将其与我们的软件一起分发?

0 投票
1 回答
1413 浏览

windows - edb 数据库中的事务日志文件

在我尝试从各种 edb 数据库集合中提取数据(转储和选择性读取列)时,我遇到了一个基本问题。我有一个带有几个日志文件的 edb 数据库。我知道数据库中有什么信息,但我只提取了一半。我担心剩下的一半睡在日志文件的某个地方。我假设 EDB 引擎知道日志文件的位置,并在附加数据库时自动加载它们(正确设置了 JET_paramSystemPath、JET_paramLogFilePath 和 JET_paramBaseName)。这是一个错误的假设吗?如果是这样,我应该怎么做才能加载日志?

或者,是否可以简单地将事务提交到 EDB 文件并删除日志?

0 投票
1 回答
1106 浏览

database - 转储表索引的条目

我试图在客户 EDB 数据库上的表的主索引中寻找。我失败得很惨。我使用JetGetIndexInfo检索了索引信息,并且了解索引的所有信息(它是主索引,我知道所使用的列)。现在我想在该索引上寻找已知值和现有值以最大化性能,但JetSeek声称它找不到我想要搜索的键。

现在我正在寻找一种方法来转储索引键。这样我就可以查看是否应该在我正在使用的密钥中添加一些内容或以某种方式对其进行转换(我绝对确定它是正确的密钥)。还是有其他技巧可以找出问题所在?

可能是我失败原因的一个细节可能是MSysObjects表中KeyFldIDs列中的条目。特定的索引在那里有一些条目。如果我自己创建索引,该字段通常为空白。它有什么作用?


更新@Laurion:我已经设法在数据库上运行dbutil。这是相关的摘录:

0 投票
2 回答
2372 浏览

c# - C# - ESENT db 内存泄漏?

我刚开始使用 ESENT ManagedInterface (http://managedesent.codeplex.com/)。我想知道它是否有内存泄漏问题。

我正在做的事情相当简单。我遵循示例代码,但我在每一行中放置了一个相当大的字符串数据(10KB+),总共产生了 10000 行。

插入更多行时,内存使用量会增加。如果我插入 100,000 行,程序将占用 1 GB 内存并死掉。

这是代码。

在上面的代码中,它上升到大约 100 MB。只有当我执行 Api.JetTerm(instance) 时,内存才会被释放

在我的实际问题中,我必须不断地多次插入大量数据行,所以这种方式对我不起作用,因为内存最终会被吃掉。

谁能帮我解决这个问题?

**为什么即使我提交了事务,esent 也会保留内存?

我怀疑是 esent 里面的 undo 东西保存了内存,如果是,如何关闭它?我不需要撤消操作。**

谢谢

PS:我在 32 位和 64 位 Windows 中都尝试过这个 test() 方法,两者都有相同的内存问题。