问题标签 [nexusdb]
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.
sql - SQL问题:排除记录
我有一个数据库(NexusDB(应该符合 SQL-92)),其中包含 Item 表、一个 Category 表和一个多对多 ItemCategory 表,它只是一对键。如您所料,项目被分配到多个类别。
我希望所有最终用户选择所有项目
物品编号 | 分类号
--------------------------------
01 | 01
01 | 02
01 | 12
02 | 01
02 | 02
02 | 47
03 | 01
03 | 02
03 | 14
等...
我希望能够选择分配给类别 X、Y 和 Z 但未分配给类别 P 和 Q 的所有 ItemID。
例如,对于上面的示例数据,假设我想获取分配给类别 01 或 02 但不是 12 的所有项目(产生项目 02 和 03)。类似于以下内容:
SELECT ItemID WHERE (CategoryID IN (01, 02))
...并从该集合中删除 SELECT ItemID WHERE NOT (CategoryID = 12)
这可能是一个非常基本的 SQL 问题,但它现在难倒我。任何帮助 w/b 表示赞赏。
java - 从 Java 访问 NexusDB
我正在尝试使用 java 从名为 NexusDB 的嵌入式数据库中获取信息。
备选方案 1:
我在NexusDB 网站上读到有一个 ODBC 驱动程序,所以我可以将它与 unixODBC 一起使用。然后我需要按照此处所述进行 JDBC-ODBC 桥接。
备选方案 2:
获取某种应用程序以将 NexusDB 数据库迁移到另一个数据库。想知道一个。
我想知道是否有人遇到过这种情况,最好的解决方案是什么?
谢谢阅读。
delphi - Firebird 或 NexusDB
我知道有很多与 Delphi 数据库相关的问题,但我只考虑这两个数据库。我将需要查询大约 100.000 条记录。
根据您的经验,哪个更快:
- 作为嵌入式
- 作为C/S
谢谢。
import - 如何打开 .DB7 数据文件?
我有一堆来自客户软件的带有 DB7 扩展名的文件。它们中的每一个都与一个数据库表相关。我想要的是以更实用的格式导出数据,例如 CSV。
阅读文件的标题,我向 NexusDB 发送了一些内容,但我无法打开这些文件。你对此有什么建议吗?
delphi - DBLookupComboBox 和刷新内容
我有 Delphi 7,我正在使用 NexusDB 作为数据库。
我有一个主窗体,其中有一个 DBLookupComboBox 来列出表的内容。
如果我按下表单上的一个按钮,将新项目添加到列表中(打开第二个对话框),然后返回主表单,我希望新添加的项目立即显示
我似乎无法让它发挥作用。
我尝试刷新 ListSource 对象下的 DataSet。
有人有想法么?
谢谢,大卫
delphi - TDataSource TDBMemo 不在插入或浏览模式下
我有一个 DBLookupComboBox,它列出了我从中选择一个值的 1 个表中的值。
选择该值后,我希望我必须能够输入/编辑 2 个 DBMemo 框以将其插入/更新到另一个表中。
但他们不允许我进入他们。我假设是因为它的状态是 dsInactive。
我该怎么做呢?
谢谢!
sql - 检索 TQuery 结果的元数据
在我们的应用程序中,用户可以输入 SQL 代码来从 NexusDB 数据库中检索数据。我们希望在不实际执行查询的情况下确定此类查询结果的元数据。我们使用元数据来确定字段的数量和每个结果字段的数据类型。
[补充] 我们将此功能用作用户定义的转换过程的一部分。实际的转换稍后在类似批处理的过程中完成,但我们需要事先元数据,因此用户可以在转换中指定其他字段特征或修改,如应用插件、创建父子关系等。 [/addition ]
到现在为止,我们基本上是通过添加WHERE FALSE
到 SQL 查询或将所有已经存在WHERE
的语句替换为WHERE FALSE AND
. 但当然,我们必须解析整个 SQL 以确定要调整的正确 where 子句的确切位置,同时考虑注释、嵌套的 SELECTS、JOIN 和其他子句。这种方式变得相当复杂:-(
另一个缺点是,大多数时候查询的执行仍然需要很长时间,即使我们事先知道结果集是空的。
我们想知道是否有另一种方法可以实现这一目标。
即 TQuery 对象必须有自己的解析器,将 SQL 语句拆分为不同的子句。如果我们可以在执行之前更改 where 子句,我们就不必自己进行解析。但是我们有点急于深入 TQuery 对象的内部,只是为了发现没有办法以我们想要的方式使用它。
有人对此有任何建议吗?
delphi - 快速读取 Nexus 数据库表
我想尽快将表的全部内容读入内存。我正在使用 Nexus 数据库,但我可能会使用一些适用于 Delphi 中所有数据库类型的技术。
我正在查看的表有 20 列的 60,000 条记录。所以不是一个庞大的数据集。
从我的分析中,到目前为止,我发现了以下内容:
直接使用 TnxTable 访问表并不比使用 SQL 查询和“SELECT * FROM TableName”快或慢
在不实际读取或复制任何数据的情况下循环遍历行的简单操作会占用大部分时间。
我得到的表现是
- 循环遍历所有记录需要 3.5 秒
- 遍历所有记录,读取值并存储它们,需要 3.7 秒(即仅多 0.2 秒)
我的代码示例
在 60,000 行表上,这需要 3.5 秒。
这种表现听起来合理吗?还有其他方法可以让我更快地读取数据吗?
我目前正在从同一台计算机上的服务器读取数据,但最终这可能来自 LAN 上的另一台服务器。
delphi - 在 TQuery 结果集中找到记录的最快方法
我想知道最好的(阅读:最快的)方法是在 Tquery SQL 语句的结果集中找到一条记录。
到目前为止,我使用的是 TQuery.Locate,如果我是对的,那是唯一可用于在结果集中搜索的语句。那么我们该如何优化呢?
我有一些想法,但还没有时间在大型数据集上比较它们:
假设我们有一个包含以下字段的表:
以及以下查询:
我们想在结果集中通过它的 ID 来定位一条记录
- 如果 aTable 在 ID 上有索引,定位会更快吗?
- 如果我在 SQL 语句中添加“Order By ID”,定位会更快吗?
对此有什么想法吗?
[编辑] 澄清其用途:查询由 Reportbuilder 数据视图执行,然后通过数据管道(即 TQuery.Dataset)提供。在自定义报告中,我需要根据一些更高级别的 ID 遍历管道。所以不使用查询在这里不适用。我只是想知道我上面的任何建议是否会加快速度。
string - Delphi/Query 组件 - 将长字符串(800 个字符)分配给 sql.text 属性,仅将 sql 修剪为 326 个字符
我使用 Delphi/NexusDB 并在运行时构建 SQL(大约 800 个字符长),然后将其传递给 nexusdb query.sql.text 属性以执行它,但我发现执行时令牌无效的错误。
我这样传递SQL
当我追踪时,我发现 Query.SQL.Text 中的 SQL 字符串被修剪为 326 个字符!虽然保存 SQL 的字符串变量是完整且正常的,但是当我将该变量分配给 query.sql.text 时,只传递了 326 个字符,当然这会导致无效 SQL 语法错误
请告知为什么这样修剪 SQL 字符串?
更新: *我尝试了 memo1.lines.text := VarStrSQL 并且备忘录组件也显示了修剪的字符串!我的字符串中有可能是一个字符吗?Delphi 2010 中导致 TStrings 修剪我的字符串的错误?*
谢谢