问题标签 [firedac]

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 回答
1455 浏览

sql - SQL 转换错误/如何将参数插入到 select 语句中?

我正在运行一个通过 FireDAC 连接的 IB 数据库。

以下动态查询有效:

A_INDEX我在 RELATIONS (Integer) 中添加一列。对于本专栏,我想提供一个参数,所以我这样做:

然而,这不起作用。出于某种原因,当我执行查询时,它抱怨CATEGORYparam 存在转换错误。

这是此查询操作的完整代码:

在此处输入图像描述

我仍在学习 SQL、数据库和 FireDAC,所以我真的不明白为什么它允许我在 select 语句中输入直接值,但参数是不行的。

A_INDEX我还能如何使用第一个查询将参数动态插入到列中?

0 投票
1 回答
1247 浏览

sql - 尝试使用 Delphi FireDac 连接到 Windows Azure SQL 数据库时出现错误“没有这样的表 CUSTOMERS”

我是远程数据库连接的新手,我想设置一个非常简单的单表 Delphi XE6 项目来查看我刚刚在小型 Windows Azure SQL 数据库中创建的表('CUSTOMERS')。我计划稍后在 Android 上对 VCL 代码和 FireMonkey 使用此访问权限。我可以使用 Azure 仪表板查看和编辑表格。

为了测试 VCL 代码,我在我的表单上放置了一个带有 TFDTable、TDatasource 和 TDBGrid 的 FDConnection。我在这里看到了示例连接信息,但这指的是我认为我没有的 MSSQL 驱动程序,因为我使用的是 XE6 Professional。所以我使用了 TFDPhysSQLiteDriverLink 并尝试使用带有连接参数的 SQLite 驱动程序:

我的表是 CUSTOMERS,它位于 TFDTable 的表名属性中。当我运行该项目时,我没有收到任何连接错误,但确实收到“[FireDAC][Phys][SQLite] ERROR@ no such table CUSTOMERS”。这是否表明我在尝试使用该驱动程序时很愚蠢?如果是这样,我有什么方法可以使用 FireDAC 访问我的数据库吗?

0 投票
1 回答
8458 浏览

delphi - 在 Delphi XE5 中使用 TFDQuery 执行 SQL 查询时如何避免沙漏鼠标光标

我在表单上有网格控制,当当前记录更改时,我需要加载存储在 DB 中的 RTF。它通常工作正常,但是当我切换记录时,我可以看到鼠标光标变为沙漏并返回常规:

如果我评论“SelectQuery.Open;” 然后光标不会切换。我认为 TFDQuery (或连接)中应该有选项,但我找不到任何东西。有什么帮助吗?

更新。正如 TLama 建议的那样,我将 WaitCursor:TFDGUIxWaitCursor 放在我的表单中(应用程序的一个位置)并以这种方式使用它:

UPDATE2:另外两种方法。

  1. 设置TFDQuery.ResourceOptions.SilentMode=True(为特定查询禁用沙漏光标的最简单方法,属性名称不好,但根据文档它不会阻止任何对话框,只会更改光标)。
  2. 从单元 FireDAC.UI.Intf设置全局变量FADGUIxSilentMode=True(不是最好的,但可能是为 FireDAC 全局禁用光标更改的最简单方法)。
0 投票
1 回答
632 浏览

delphi - FireDAC 与同一台机器上的多个 Delphi 版本冲突

我知道通常总是可以在一台计算机上并行安装多个 Delphi 版本。自从 Delphi 1 以来,我经常这样做。

但是,在安装了 XE6 的计算机上安装 Delphi XE7 后,我在尝试使用 XE7 中的 FireDAC 或 FDExplorer 时遇到了一些错误(例如 AV)。乍一看一切正常,但是当尝试连接到数据库时,连接“挂起”,或者你得到一个 AV。

XE6 一切正常。

XE7 的安装使用默认设置完成,并且安装了 XE6,包括安装 XE7 之前的所有更新。

有什么建议吗?

0 投票
1 回答
862 浏览

delphi - 通过 Firedac 替换 IBX 中的 TIBDatabaseInfo 获取数据库信息

我需要将IBX(Interbase/Firebird)连接迁移到 Firedac,但是我如何才能获得特定的供应商信息,就像我们通过 Firedac 的TIBDatabaseInfo组件获得的那样?我对计数器 BackoutCount、DeleteCount、ExpungeCount 感兴趣...

如何通过 Firedac 检索此信息?

0 投票
1 回答
423 浏览

c++ - 如何使用 FireDAC 从 C++ XE3 迁移到 XE7?

我有一个用 C++ Bulder XE3 编写的应用程序,现在我想升级到 XE7。但我使用 FireDAC 与 PostgreSQL 连接,在 XE3 中,该连接称为 ADConnection 并查询 ADQuery,在 XE7 FDConnection 和 FDQuery 中。我要找到一种简单的方法来做到这一点,而无需重写所有内容。谢谢你的时间。

0 投票
1 回答
2376 浏览

json - 如何在 XE4 中使用 TFDJSONDataSets 或类似的?

解释

今天我发现了调用的 Delphi XE6 示例FireDACJSONReflect,我会使用它在 datasnap 服务器和客户端之间进行通信的方式,我想在Mine 应用程序上使用TFDMemTableTFDJSONDataSets(不是真的需要,但如果有另一种使用方式我想看到的另一个组件)。

** 我的应用程序是一个服务器和一个客户端 **

问题

顺便说一句,我的应用程序确实使用 Delphi XE4 而不是 Delphi XE6,并且想知道如何以相同的方式在 datasnap 服务器和客户端之间进行通信,FireDACJSONReflect但我看到TFDJSONDataSets我的项目使用列表中没有。

  • 我可以TFDJSONDataSets在 Delphi XE4 上使用吗?
  • 我可以TFDMemTable在不使用的情况下使用TFDJSONDataSets数据填充它吗?

一些代码

我在delphi xe6上运行正常的代码行,我想在xe4中做同样的事情:

还有一个问题:为什么我想要结果TFDJSONDataSet

这是因为我TFDMemTable在我的 delphi xe6 客户端应用程序上有一个我想要的.appendData,它需要一个TFDJSONDataset来做它(也许另一种附加数据的方法很有用)。

有什么帮助吗?

0 投票
2 回答
4214 浏览

sqlite - 以编程方式使用 fireac 在 Delphi XE6 中显示 sqlite 数据库

我是使用 Delphi 的数据库新手。实际上我需要使用firedac在gridview中显示所有表格及其数据。youtube 和 docwiki 上的几个视频教授了如何通过可视化组件访问数据库,即在表单上抛出 FDConnetion、FDTable、DataSource 等。

但我想以编程方式做同样的事情,以便我可以更多地专注于编码并将表单与业务逻辑分开。

这是我在访问 MSAccess 数据时在 C# 中所做的:

我想在 delphi 中为 sqlite 数据库做类似的事情。这是我尝试过的(已编辑)。

每当我运行此代码时,都会出现错误对话框,显示:$ 759AF097 的第一次机会异常。带有消息“[FireDAC][Phys][SQLite] 错误:没有这样的表:STUDENTS”的异常类 ESQLiteNativeException。处理 Project1.exe (3836)

虽然表中存在相同的表名并使用可视化的 fireac 组件,但我可以看到数据网格很容易填充。

0 投票
1 回答
575 浏览

delphi - 当 2 个事务打开(使用 FireDac 组件和 FireBird dbms)时,如何防止 Delphi 引发异常?

我使用 FireDac 和 HTTPServer 组件使用 Delphi 构建了一个 Web API:该应用程序使用由 firebird 驱动的 dbms。

在我开始模拟对同一个 API 端点的多个请求之前,一切都运行良好。这会导致内部服务器异常报告在已经打开事务时正在打开第二个事务。

我知道所有连接在使用后都将被关闭,并且对象正在被销毁以防止内存泄漏,但我不明白为什么应用程序会触发异常。

有什么帮助或困难可能促使我找到解决方案吗?

0 投票
1 回答
4002 浏览

sql - Delphi Firedac:等待打开 TFDQuery

我将 Delphi XE2 与 Firedac 组件一起使用。我有一个很奇怪的问题。我有自定义组件,它使用自己的 Firedac TQuery 组件来搜索一些数据。奇怪的是,打开查询后 - 它还没有激活。

使用这部分代码,我在消息中有“False”。它接缝 TQuery.Open 方法运行一些线程来打开它。有人可以告诉我,在运行 FunctionToDoAfter 之前,我该如何等待打开查询?

最好的问候, 皮奥特