问题标签 [unidac]
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.
mysql - 如何在控制台应用程序中创建 UniDac MySQL 组件?
作为初步信息:我从未使用过可以在控制台应用程序中拖放到公式设计器的组件。
目前我使用:
- 单连接
- 统一查询
- 统一数据源
- MySQLUniProvider
我现在的问题是:如何在控制台应用程序中创建这 4 个组件以及如何正确使用它们?
提前致谢
sql - Delphi - 查询运行缓慢
我的查询,运行时大约需要 7 秒来完成应该做的事情。但是,由于它插入了大约 30 条记录,我认为它太慢了。现在,要么我运行写得不好的查询,要么它确实需要这么多时间。但这会很奇怪。底层数据库是 SQLite,查询如下所示:
那么有人可以告诉我这是否可以或我错过了什么?除了布尔值(真/假)的“a4”之外,所有字段都是文本。
修改后的答案(基于 LS_dev 的建议):
sql - RecordCount 与 UniDAC 数据集组件
我正在使用 UniDAC 的 TUniQuery 组件。我想显示我有多少记录,所以
我已将以下代码显示在状态栏中:
UnyQuery1.RecordCount 始终返回零。但是,如果我从按钮单击事件运行此代码,它就可以工作。
我做错了什么?
multithreading - 如何在不冻结的情况下阅读 blobfield?
我想从客户端(通过网络)读取 blobfield(使用 blobstream),但应用程序在获取数据时冻结。如何在不冻结并使用进度条显示百分比的情况下阅读 blobfield。(我正在使用 Delphi 和 Firebird)
我正在使用独特的组件。我从以下网址找到了这段代码:http ://forums.devart.com/viewtopic.php?t=14629
但它不能正常工作:
PS:我已经设置了独特的选项:
在 repeat-until 循环的第一步中,Blob.Read 方法读取了所有流,因此无法正常工作。
delphi - 对基于 TDictionary 的记录进行排序的最佳选项
从一个复杂的评分过程中,我有一个 TDictionary 结构:
键代表 MySQL 表中记录的 id。从那个 id 我可以检索一个文件日期和一个文件名。我需要提供按以下选项之一排序的这些结果:
我正在考虑使用 TVirtualTable(来自 Devart),因为我已经在这个项目中使用了 UniDAC。有人可以建议一种更快、更灵活、更原生的方法吗?
sql - 防止插入重复记录
为了学习,我在 SQLite 中创建了两个相同的表,并试图弄清楚如何防止将重复项从一个表插入到另一个表。我正在使用此查询来尝试在发布记录之前找出是否存在重复项。但是,它不能正常工作,因为仍然会插入重复项并且不会出现警告消息。
有人可以启发我如何正确地做到这一点吗?表只有 3 个字段:ID (Autoinc)、DATE(date) 和 USER (char)。两者是相同的。所以基本上我希望程序告诉我 USER 和 DATE 已经存在于我试图发布相同记录的表中。
编辑 ; 使用 Sir Rufos 查询奇怪的事情发生了:
sql - UniDac 找不到存储过程架构
我已经为 Delphi 使用 UniDac VCL 组件一年了,但最近使用 SQL Server 2012 开始了一个相当大的项目,我想以不同的方案分离表和存储过程,我的整个逻辑都在存储过程中,所以程序中没有查询存储过程名称和参数。
问题是,当我将存储过程架构从更改dbo
为假设SchemaA
然后尝试从 Delphi 运行它时,TUniStoredProc
组件会发现它,ProcedureName
而不是SchemaA.ProcedureName
抛出异常,即在执行时找不到存储过程。
我不能将不同的模式分配给不同的用户作为他们的默认方案,因为根据权限,有些用户使用 4-6 个方案。我已经尝试过的是手动输入SchemaA.ProcedureName
,并且效果很好,但是为约 150 个组件这样做会花费很多时间,所以我正在寻找更好的解决方案。
有什么想法吗?
delphi - 大循环内存泄漏
我有一个小程序可以从数据库中检索一些文本。该函数在一个周期内被调用数千次。
上面的过程在这个内部被调用:
主循环如下所示:
我的应用程序内存使用量不断增加 4k,直到挂起。我知道这不是一个具体的问题,但我找不到泄漏。谁能指出我做错了什么?
delphi - 从 DevArt UniDac 迁移到 FireDac
我已经使用 UniDac 2 年了,它对我来说是最好的解决方案,但是因为它不支持异步查询,所以我必须继续使用 FireDac 是否有任何快速迁移向导或我可以使用的东西,因为我有我的表单中有大约 200 多个 TUniStoredProc 组件,我想将它们转换为 TFDStoredProc,手工完成每一个都需要花费大量时间,而我没有,我想用 TFDStoredProc 替换旧的 TUniStoredProc
我的设置:
Embarcadero Rad Studio XE5
组件连接到 MSSQL 数据库
delphi - Delphi FormatFloat 不同的行为(变量和数据集)
我发现 Delphi 的 FormatFloat 函数有一个奇怪的行为。让我展示一下案例研究。
要转换的值:129809.495
所需的格式化输出:129,809.50
案例1:从字符串转换
案例 2:从双变量转换
案例 3:从数据集的字段转换
我一直在使用 SQL Server 2008 和 Firebird 1.5 测试这种行为。
使用的组件是 ADO 组件和 UniDAC 组件(由 DevArt 提供),并且都具有相同的行为。
我试过做这些:
- FormatFloat(',0.00', Dataset.Field[0].AsFloat);
- FormatFloat(',0.00', StrToFloat(Dataset.Field[0].AsString));
- val := Dataset.Field[0].AsFloat; FormatFloat(',0.00', val);
- str := Dataset.Field[0].AsString; FormatFloat(',0.00', StrToFloat(str));
- val := StrToFloat(Dataset.Field[0].AsString); FormatFloat(',0.00', val);
但都导致相同的错误转换 0.49 而不是 0.50
一种有效的方法是
有没有人为这种行为找到解决方案?因为强制转换 StrToFloat 然后重新格式化变量/输出的工作量太大。并且此解决方法不能应用于使用 FormatFloat 的第 3 方组件
任何帮助表示赞赏。谢谢