问题标签 [data-aware]

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

delphi - ItemIndex 是否有 TDBComboBox 等价物?

在 TDBComboBox 的帮助文件条目中,它表示所选选项的文本成为该字段的新值。是否有任何类似的控件通过 ItemIndex 而不是文本?(例如,表示枚举类型。)

0 投票
1 回答
995 浏览

delphi - 是否存在按 ItemIndex 的启用数据的单选组组件?

我正在用启用数据的版本替换我的一个表单中的几个组件,当我的新 TDBRadioGroup 没有与分配给它的数字字段链接时,这有点令人惊讶。事实证明,TDDBRadioGroup 的“值”不是通过 ItemIndex 属性存储在您必须手动填充的 TStrings 中。我可以理解这在某些情况下会很有用,但是当它只是链接到数字字段时,必须执行以下操作:

有点矫枉过正。有谁知道将使用 ItemIndex 作为其值参数的启用数据的无线电组组件?

0 投票
3 回答
935 浏览

vb6 - 你使用数据感知类吗?

我正在使用VB6。

数据感知类是指设置了 DataBindingBehavior 或 DataSourceBehavior 属性的类。

我从 MSDN 学到了这个概念,并且通常想知道我们什么时候应该使用这种数据感知类技术?或者就像大多数开发人员忽略的数据环境设计器一样?

0 投票
9 回答
16122 浏览

delphi - 有没有好的免费/便宜的 Delphi 网格控件?

近十年前我放弃了 Delphi 的 DBGrid,因为它根本就不好。从那以后,我使用了 Virtual TreeView,它提供了很多价值,但也存在一些问题。就像当前的开发状态(例如无)和没有好的数据绑定版本一样。DevExpress 的 QuantumGrid 以丰富的功能集而闻名,但确实非常昂贵。我认为它庞大的功能集对于 95% 的数据绑定网格控件的一般用例来说可能是多余的。

有谁知道具有以下功能的数据绑定网格控件:

  1. 布尔字段的复选框。这有多明显?
  2. 更有效的与编辑打交道的方式,即无需点击三四次即可显示选择列表。
  3. 必须是数据绑定的。
  4. 外观现代。可能使用 XP 主题,但更可取的是可换肤。
  5. 灵活的所有者绘图。这是 Virtual Treeview 的一大特色——您可以从字面上替换单元格绘图的任何部分,而不会破坏其余部分。绘画是在一系列图层中完成的,您可以选择仅替换需要修改的图层。
  6. 可环绕的行,或者至少是弹出并显示已被截断以显示内容的工具提示。

我很少在网格控件中使用编辑,所以编辑功能不需要太棒了。

有什么好的建议吗?

0 投票
5 回答
5660 浏览

database - 使用事务和数据感知组件编写 Delphi 数据库应用程序的首选方法

使用事务和数据感知组件编写 Delphi 数据库应用程序的最佳方法是什么?

我必须编写一个访问 InnoDB 表的客户端应用程序,并在事务中做一些主从类型的事情。在对事务做了一些研究(从一般的角度)之后,我谦虚地得出结论,非数据感知组件和手工编码的 SQL 将是事务的“完美匹配”;但数据感知组件不会。他们似乎不是为彼此而生的。

我确实需要使用事务,但另一方面,我不能仅仅抛弃数据感知组件,因为它们极大地简化了事情。

有人可以启发我吗?我一直在谷歌搜索它,但我没有找到任何有用的答案。也许是因为我的英语不够好,所以我的关键词有限。

顺便说一句,我正在使用 Delphi 7,目前正在评估 UniDAC 作为数据访问库。

谢谢你。

编辑

描述我的问题的一个方面的示例:

想象一个上面有 2 个 DBGrid 的表单。第一个网格是 MasterGrid,上面是这些按钮:添加、编辑和删除。第二个网格是DetailGrid。如果用户单击添加,那么它会像这样:

  • Connection.StartTransaction
  • Master.Append 然后 Master.Post 然后 Master.Edit (因此主数据集具有自动增量主键,现在可以编辑)
  • 以模态方式显示编辑表单,用户在其中填写主记录,并使用另一个表单添加一些详细记录。
  • 如果用户单击确定,应用程序将执行 Master.Post 和 Connection.Commit。如果用户单击取消,则应用程序将执行 Connection.Rollback。

我知道事务应该尽可能短,但是您可以在上面看到事务仅与用户填写表单的速度一样短。

如果我使用的是非数据感知组件,我会根据用户输入自定义插入 SQL,然后在 StartTransaction 和 Commit 之间执行 SQL。所以我可以实现非常短的交易。

编辑 2

我感谢大家的友好参与。我从 vcldeveloper 中选择答案,因为它是最接近我当前需求的解决方案。

0 投票
2 回答
1396 浏览

delphi - Delphi 重构示例,涉及可直接访问数据库表的数据感知控件和数据模块

我正在尝试定义重构我正在从事的项目的最佳方式。

由于缺乏良好的设计,几乎所有项目都由以下部分组成:

1) 包含业务逻辑的表单

2)巨大的数据模块(每个表格1个+一些额外的)

3)一些包含公共代码的单元(库)

没有OOP(除了一些小领域),代码重用它处于最低水平。

一个问题还在于使用了数据感知控件,因此将许多数据集+数据源放在数据模块上并以高度耦合的方式直接链接到数据库非常简单。

理想情况下,我想提取诸如 TCustomer、TEmployee 之类的类,以获得优势 os 封装,并使将来可以在不复制所有代码的情况下创建新的 UI。

无论如何,我的问题是:我如何才能继续处理数据感知控件?我是否应该实现一个返回数据集的函数,并将 dataawarecomponent.datasource 链接到函数结果?

?

0 投票
1 回答
433 浏览

delphi - 我可以在 Qt 中设置数据库连接而不编写代码(如在 Delphi 中)吗?

尽管用 C++ 编写比用 Pascal 编写起来相对困难,但我真的被 Qt 的多平台支持所吸引。我可以从 Linux 连接到在 Win2003 服务器上运行的 MSSQL 服务器,或者我可以连接到在 Linux 上运行的 PostGreSQL 服务器。与 Delphi 相比,这是一个加分项。

我正在尝试编写示例程序以适应 Qt 和 C++。到目前为止,我对布局和信号槽机制感到满意(尽管仍然双击按钮来编写事件代码:))。我希望我在我的程序中使用 SQL 数据就像在 Delphi 中一样容易。

有什么方法可以让我将一些连接对象、一个数据源、一个 DBGrid 和一个 DBNavigator 放到一个表单上,并且无需编写代码就可以继续操作吗?(对于某些表格真的很省时间,一个300+表格的项目可以做的更快)

我想听听人们使用 Qt 处理来自 SQL 服务器的数据。

0 投票
2 回答
1524 浏览

delphi - 如何确定一条记录何时插入 TDataSet?

我正在编写一个网格控件,它将显示 TDataSet 或 TObjectList 的内容。当你只需要支持 TDataSet 时,事情就很简单了:

  1. 通过 TDataLink 后代链接到数据集。
  2. 在绘制网格的内容时,您可以使用缓冲在该 TDataLink 中的记录来绘制您需要的内容。
  3. 不需要在某处有单独的对象来表示 TDataSet 中的行,因为您总是只在缓冲区中绘制行。

在我的例子中,我还需要接受来自其他几个来源的数据,这意味着我需要一个代表每一行的对象(也因为控件需要相当多的行状态)。

但这会导致上述模型出现问题。因为我有一个代表每一行的对象,所以需要在从 TDataSet 添加或删除记录时通知我。我只是看不出该怎么做。

显然,我不想挂在数据集事件上;它们可能已经在使用中,并且 TDataLink 旨在成为我的控件和数据集之间的中介。我尝试使用 DataEvent 虚拟方法失败了,因为它根本不会告诉您是否正在添加/删除记录。

有任何想法吗?

0 投票
7 回答
3242 浏览

oracle - 使用 Delphi 数据感知组件 - 优点和缺点

我想知道您对在项目中使用数据感知组件的看法。使用 Delphi 和数据感知组件(来自 Delphi 的标准套件或第三方)开发应用程序(win32 和 web)的“优势”和“劣势”是什么?

使用 FireBird,我在 IBObjects 上做了很多工作,IBObjects 是一套成熟的组件并且运行良好。

但也有很多其他 RDBMS(MySQL、MSSQL、DB2、Oracle、SQLite、Nexus、Paradox、Interbase、FireBird 等)。如果您开发了大型项目,并且在其中使用了很多数据感知组件,请回答数据库类型和数据感知组件套件名称。

我也对 DB2 (AS400) 感兴趣。您成功使用了哪些组件,或者哪些组件真的很难使用?

0 投票
1 回答
885 浏览

javascript - Delphi 7 - TMS Intraweb DB 感知网格

我正在使用 Delphi 7 和 Intraweb 的 TMS 套件制作一个 Web 应用程序。我有几个客户端数据集组件,我使用 TTIWDBAdvWebGrid 来显示数据。TTIWDBAdvWebGrid 是一个数据感知组件,但是当我修改网格中的某些值时,数据不是持久的(在单元格事件中,单元格的值是旧的,而不是我设置的值)。

有任何想法吗?