问题标签 [fibplus]

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 投票
1 回答
1191 浏览

delphi - 使用 Zeoslib 在参数化查询中确定参数数据类型

是否可以使用 Zeoslib 和 Firebird 在参数化查询中确定参数数据类型?

我正在从 FibPlus 迁移到 Zeoslib。

带有类似“从注册 > :since 和国籍 = :country 的成员中选择姓名、姓氏、年龄”之类的语句

使用 FibPlus 我这样做:

使用 Zeoslib 我试过这个:

但 Q1.Params[i].DataType 总是 ftUnkown。

0 投票
1 回答
586 浏览

delphi - 是否有适用于 Delphi XE5 的 FIB Plus 组件?

在我当前使用 Firebird 最新版本的项目 Delphi 2010 中。还使用 FIB Plus 7 连接到 firebird。

有一个计划去 Delphi XE5。

任何建议是否支持带有 FIB Plus 的 Delphi XE5 或任何好的替代方案以及从 FIB plus 组件的转换?

提前致谢。

最诚挚的问候。

维沙尔

0 投票
1 回答
132 浏览

sql - 调用 isc_dsql_sql_info() 导致临时目录溢出

有一个 SQL 查询连接一个临时表和一个视图(连接两个表):

它有一个查询计划,对我来说看起来不错:

在我的数据库 IDE(即 IBExpert)中,此查询的执行速度足够快(不到一秒)。但是在客户端应用程序中会发生这种情况:当查询被执行时,服务器临时目录完全运行。之前大约有 23 GB 的可用空间。一旦没有可用空间,应用程序就会崩溃。

起初,我认为是查询导致的。但后来我检查,当通过我的数据库 IDE 执行并使用具有良好索引的查询计划时,它运行速度很快(不会溢出临时目录)。此外,我认识到这不是在打开查询时发生的,而是在打开查询后isc_dsql_sql_info()FIBPlus数据库组件进行 API 调用时发生的(为了获取别名 - 我想)。

函数请求参数填充如下:

这个 API 调用的某些原因导致 Firebird 需要大量的临时空间。不幸的是,我几乎没有发现任何关于这个函数的信息(除了这个Interbase API 指南,它没有告诉我任何关于请求值的信息)。

Maybe there are some Firebird or Interbase experts here, who can help me to find out what causes this problem. I use Firebird (classic server) 2.5.5.26952 and fbclient.dll 2.5.5.26952

0 投票
1 回答
781 浏览

delphi - 使用 disablecontrols 发布正确数据的问题

Disable/EnableControls()在迭代数据集时遇到了一些问题,即更新字段时。

两个更新的字段似乎发生了什么,它们都在使用相同的数据。看起来正在为所有行输入帖子的最后一个值。因此,假设我们有 3 条记录,它们更新了 1、2 和 3 的值(在我的情况下,所有字段都发布了 3),而我期望最后一个字段是 1、2 和 3。

例如,我的数据集中有 10 条记录。我运行这个函数,在查看网格和持久化数据时Cost,每一行的列值都是相同的,即使我已经逐步检查了getNewDataValue函数,它们是不同的值。

我正在使用 Delphi 2010、DevExpress Quantum Grid 和 FIBPlus 数据集,访问 Firebird 数据库。

查看文档,我可以看到当DisableControls()被调用时,TDataSet.DataEvent不会将事件传递给数据源,并且所有主从关系都被破坏,直到EnableControls()被调用。会不会是我通过 DataSource 访问 DataModule 上的 DataSet?我已经尝试过了,它没有任何区别。

不使用Disable/EnableControls(),速度无法使用。因此,任何建议或快速迭代大型 DataSet 的替代方法都会有所帮助。

0 投票
1 回答
637 浏览

delphi - 如何使用 FireDAC 提取存储过程 DDL

我正在从 FIBPlus 更改为 FireDAC,我需要的大多数功能都在 FireDAC 中,我只是在努力寻找 TpFIBDBSchemaExtract 和 TpFIBScripter 的 FIBPlus 等效项,用于将存储过程提取为 DDL。

FireDAC 是否有办法从数据库中提取存储过程 DDL?

例如,看起来像:

0 投票
1 回答
1059 浏览

delphi - 如何在不打开数据集的情况下添加所有字段?

我正在使用TFIBDataSet(Firebird 数据集组件)并且我试图在运行时自动创建所有字段,而不将任何记录加载到数据集中。

这是我的测试代码:

前面的代码'0'作为输出产生..

我试过使用它,Dst.Open()它产生'5',但它也执行 SQL 查询。

0 投票
1 回答
234 浏览

delphi - 如何在 TpFIBDataSet SQL 查询中使用参数?

我正在使用 FIBPlus 库和 Delphi 10.3 Rio。

在我的项目中,我有 TpFIBDataSet 组件。

在 SQL 生成器下,我使用“where 子句”定义了 SQL Select,而在“where 子句”中,我有一个参数。

我的 SQL 选择和名为 ':BROJ' 的参数

如何在我的代码中使用该参数,以及如何将值传递给该参数?

0 投票
0 回答
105 浏览

performance - AnyDAC 组件执行 SQL 查询比 FIBPlus 组件慢

以下 SQL 命令返回大约 4.500 条记录,并包含整数、字符串和 blob(文本)值。所有索引都设置正确。此外,我们知道in子句不是最好的,但现在不应该打扰我们。SQL 命令在 firebird 3.0 服务器上执行:

我们在外部应用程序(我们知道该应用程序使用FIBPlus组件)和我们非常基本的示例Delphi7 应用程序(使用原始AnyDAC数据库组件版本 8.0.5)中执行 SQL 命令。如果我们将所有记录提取到一个网格中,我们有以下性能:

  • 使用 FIBPlus 的外部应用程序 ~ 200 – 400 毫秒
  • 带 AnyDAC 的 Delphi7 ~ 3.500 – 4.500 毫秒

在我们的 Delphi7 程序中,我们将TADQuery连接到它自己的TADTransaction。两个组件都使用默认设置,除了 TADTransaction 的 ReadOnly 属性,我们将其更改为 True

现在我们想知道为什么外部应用程序比我们的 Delphi7 程序快大约 10 倍?有没有我们可以修改的属性来加速我们的 Delphi 7 程序?

任何帮助表示赞赏...