问题标签 [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.
delphi - 使用 Zeoslib 在参数化查询中确定参数数据类型
是否可以使用 Zeoslib 和 Firebird 在参数化查询中确定参数数据类型?
我正在从 FibPlus 迁移到 Zeoslib。
带有类似“从注册 > :since 和国籍 = :country 的成员中选择姓名、姓氏、年龄”之类的语句
使用 FibPlus 我这样做:
使用 Zeoslib 我试过这个:
但 Q1.Params[i].DataType 总是 ftUnkown。
delphi - 是否有适用于 Delphi XE5 的 FIB Plus 组件?
在我当前使用 Firebird 最新版本的项目 Delphi 2010 中。还使用 FIB Plus 7 连接到 firebird。
有一个计划去 Delphi XE5。
任何建议是否支持带有 FIB Plus 的 Delphi XE5 或任何好的替代方案以及从 FIB plus 组件的转换?
提前致谢。
最诚挚的问候。
维沙尔
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
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 的替代方法都会有所帮助。
delphi - 如何使用 FireDAC 提取存储过程 DDL
我正在从 FIBPlus 更改为 FireDAC,我需要的大多数功能都在 FireDAC 中,我只是在努力寻找 TpFIBDBSchemaExtract 和 TpFIBScripter 的 FIBPlus 等效项,用于将存储过程提取为 DDL。
FireDAC 是否有办法从数据库中提取存储过程 DDL?
例如,看起来像:
delphi - 如何在不打开数据集的情况下添加所有字段?
我正在使用TFIBDataSet
(Firebird 数据集组件)并且我试图在运行时自动创建所有字段,而不将任何记录加载到数据集中。
这是我的测试代码:
前面的代码'0'
作为输出产生..
我试过使用它,Dst.Open()
它产生'5'
,但它也执行 SQL 查询。
delphi - 如何在 TpFIBDataSet SQL 查询中使用参数?
我正在使用 FIBPlus 库和 Delphi 10.3 Rio。
在我的项目中,我有 TpFIBDataSet 组件。
在 SQL 生成器下,我使用“where 子句”定义了 SQL Select,而在“where 子句”中,我有一个参数。
如何在我的代码中使用该参数,以及如何将值传递给该参数?
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 程序?
任何帮助表示赞赏...