问题标签 [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.
esent - 我应该如何将 Esent 与托管 Esent 包装器一起使用?
我尝试按照示例进行操作,使用 Using 语句打开实例、创建会话、附加到数据库、打开它,然后执行一些操作,例如打开事务和保存记录。但是当我对每个操作都使用这种模式时。每个操作(如保存)大约需要 0.5 秒。所以我认为我做错了。但我不确定我应该怎么做。
我应该只有一个实例吗?如果它们的名称不同,我可以拥有更多吗?
如果我有多个线程,我可以/我应该有更多吗?
我看到我可以同时打开多个会话,我认为可以,但是每个会话都需要附加吗?应该为每个会话打开数据库吗?当我测试这些不同的场景时,我得到的结果不一致,有时我的测试通过有时我得到异常,例如尝试使用已处置的对象或 EsentTempPathInUseException。
那么有什么关于我应该如何使用它的指导吗?
windows-8 - Esent 在 Windows 8 上崩溃
我已经在我的项目中广泛使用 ESENT,我真的很喜欢它的简单和快速。也很稳定!!
但是我对Windows 8有一个巨大的问题!每当我调用 JetSetSystemParameter 以外的东西时,无论我如何链接到 esent.dll(动态或静态),dll 都会崩溃,将我的应用程序拖下悬崖。
事件查看器告诉我以下信息:异常代码:0xc0000090 错误偏移量:0x0003090e esent ver:6.2.8400.0
有人在 Windows 8 上遇到过类似的问题吗?
c#-4.0 - 在 Esent 持久字典中存储对象给出:不支持 SetColumn 参数错误
我正在尝试保存一个实现接口的对象,比如 IInterface。
由于许多类实现了相同的接口(所有这些都需要缓存),因此对于通用方法,我想将 IInterface 类型的 Object 存储在字典中。
这样我就可以在任何地方拉出该对象类型,将其转换为 IInterface 并使用该对象的内部方法实现等。
但是,一旦初始化 Esent 缓存,它就会引发此错误: SetColumn
参数名称
不支持:TColumn
实际值为 IInterface。
我试图不使用XmlSerializer
做同样的事情,但无法反序列化接口类型。此外,[Serializable]
属性不能在接口之上使用,所以我被卡住了。
我还尝试将接口的所有实现(类)[Serializable]
作为垂死的尝试,但没有用。
有人知道出路吗?提前致谢 !!!
delphi - 在 Delphi 项目中,Esent 在 Windows 8 中崩溃
我已经在我的项目中广泛使用 ESENT,我真的很喜欢它的简单和快速。也很稳定!!
但我对 Windows 8 有一个大问题!!!每当我调用 JetSetSystemParameter 以外的东西时,无论我如何链接到 esent.dll(动态或静态),dll 都会崩溃,将我的应用程序拖下悬崖。
不幸的是,我仍然无法让它运行。我的代码在 Windows 7 或更早版本上运行没有问题。但是在 Windows 8 中,当我尝试创建实例(浮点无效操作)时,esent.dll 崩溃。
我尝试了所有可能的调用约定。这绝对不是问题。我尝试了更多并发现了这种奇怪的情况: 1. 我使用 VS 2012 创建了一个演示应用程序,并且 JetCreateInstance 工作得很好。2.在Delphi XE3中完全相同的代码会发送esent.dll崩溃。3.我使用VS 2012创建了一个DLL,导出了在上述演示应用程序中完美运行的方法,认为这是一个Delphi错误。4. 然后我将 DLL 加载到一个演示 Delphi 项目中(尝试使用 6、XE2 和 XE3)。调用方法和 BOOM。同样的崩溃。
现在我的假设是微软不会允许?!?与 esent.dll 一起正常工作的任何其他开发人员环境。这可能吗???
c# - 在 Windows 窗体应用程序中使用 Esent 数据库时出现 EsentTooManyInstancesException
我们正在尝试使用 Esent 数据库作为一个巨大的内存列表的替代品,以在执行应用程序时释放内存。但是由于创建了很多 ESENTDbWrapper(我们对 Esent.Interop 的自定义包装器)的实例,因此在某些时候它会抛出EsentTooManyInstancesException。
那么,最大数量是多少。可以初始化的同时实例数?或者,我们是否缺少任何与配置相关的东西???任何形式的建议表示赞赏。谢谢。
c# - 检查数据库是否存在
如何检查esent中是否存在数据库?
我可以使用Api.JetAttachDatabase
andApi.JetOpenDatabase
打开一个现有的数据库并使用它Api.JetCreateDatabase
来创建一个新的。但我找不到允许我检查数据库是否存在的 API。
我真的必须捕获异常Api.JetAttachDatabase
来检测数据库是否存在吗?
esent - ESENT--读取一个ese数据库文件
我读取的文件的页面大小是 32768。当我将 JET_paramDatabasePageSize 设置为 32768 时,JetInit 返回 -1213。然后,我将 JET_paramRecovery 设置为“Off”,JetInit 成功。但是,当我使用 JetAttachDatabase 时,它返回 -550。
这是我的代码:
它有什么问题?我运行的是 Windows 7 32bit。
esent - 从 Esent 中的表中读取所有行
我是 esent 的新手,我浏览了一些示例代码,发现可以根据键读取行。从任何特定表中读取所有行的方法是什么。就像我们在 sql 中所做的那样
“从表名中选择 *”
c# - 托管 ESENT:以只读方式打开字典以从多个进程访问
如何以只读模式打开持久字典,以便多个进程可以同时从中读取数据?
esent - 执行提交/回滚时是否将 ESENT 记录刷新到磁盘?
我正在使用ManagedEsent接口进行一些测试,我想知道这里是否有人可以澄清这一点:
- 在事务中,我进行更新(插入记录),然后回滚事务
如果我使用EseDatabaseView查看数据库,我可以看到表中列出的“未提交”记录。再次访问 esent.dll并没有给我记录。
因此,使用 esent api 记录未提交(并且不可见);并使用 EDV(我猜它直接从文件中读取)记录就在那里。
这是“正常”行为吗,ESENT 是否“总是”将记录写入文件,如果它没有提交,它只是不读取它?那么它是EDV中的一个错误吗?或者我在这里遗漏了什么?