问题描述
这是一个简单的问题。 启动多设备应用程序,将 TDateEdit 和 DBTable 放置在一个包含 TdateTime 数据的字段中。然后使用 LiveBinding 设计器将数据源字段链接到 TDateEdit.DateTime 属性。但是这个链接是单向的,控件DateEdit可以接受来自Datasource的数据,但是不能更新对datasource的修改。如何更改bidreiction的链接???
解决方法
可能有些东西不是很清楚。
通常 LiveBindings 链接是双向的 - 因此,如果您设置两个 TDateEdit
并将它们绑定在一起,更改一个应该会更改另一个,无论您更改哪个。
您似乎希望更改 TField
会更新数据库表中的数据。
Delphi 中的数据访问组件通常不是这样工作的。
TField
是 TDataSet
的一部分。 TDataSet
有一个 Post
方法可以将更改写入底层数据存储(如果支持)。
数据访问组件非常强大,可以应对许多不同的场景,并允许您通过暴露的事件扩展功能以及对组件进行子类化。
如果你想更新你的底层数据存储,你需要有一个可写的 TDataSet
并且你需要调用它的 Post
来写。
我建议您从 Enbarcadero 的 YouTube 频道中关于如何使用数据 acecss 组件的一些视频开始。这并不难,但超出了这里的答案范围。
,如果您使用 LiveBindings 向导 将 DateEdit 与字段挂钩,它将双向挂钩到 DateEdit 的“虚拟”SelectedDateTime
属性。该属性实际上并不存在于 TDateEdit 中,但 LiveBindings 使用它来映射 DateEdit 的单独日期和时间属性。