DBGrid - 如何将两个相邻行中的列值之间的差异显示为另一列?

Maw*_*awg 0 mysql delphi tdbgrid geographic-distance

假设我每分钟左右记录一下我的汽车的纬度和经度,每次都会在表格中添加一行.

我想拥有一个包含4列的数据库网格

  1. 纬度
  2. 经度
  3. 自上次测量以来的距离
  4. 如果知道的话,可以看到街道地址

4号,我可以尝试从谷歌地图中检索,我得到一个文本或空白,所以让我们忽略它.

我如何获得#3?我应该在我的应用程序或MySql中计算它(使用存储过程还是只是复杂的SELECT)?

无论哪个答案,有人可以提供一些示例代码或示例链接吗?谷歌今天不是我的朋友:-(

Ken*_*ite 5

你可以这样做:

  • 在查询中计算它,并将其显示在计算列中(例如显示您要显示的行总计时)ITEM_PRICE, QUANTITY, ITEM_PRICE * QUANTITY AS LINE_COST.

  • 使用计算字段在应用程序中计算它(双击TTable组件以打开字段编辑器,添加字段,将类型设置为ftCalculated,并在OnCalcEvent中为该计算字段编写代码.

第一种选择通常是可取的,因为DB在数据集上执行这些操作时通常比在代码执行时更有效.(设置操作显然比行操作更有效.)