【问题标题】:Any way to extract values from TDBGrid?有什么方法可以从 TDBGrid 中提取值?
【发布时间】:2019-03-05 21:24:16
【问题描述】:
if(TPoints->Filter == String(Lat1) + String(" < Latitude AND ")+
                  String("Latitude< ")+ String(Lat2) + String(" AND ")+
                  String(Lon2) + String("< Longitude AND ")+
                  String("Longitude < ") + String(Lon2));
else{
    ShowMessage("Invalid Boundries");
}

第一次使用数据访问和控制组件。 TPoints 是一个 TADOTable,结果列在 TDBGrid 中。如果可能的话,我需要做的不仅仅是从数据库中显示过滤结果(上面的过滤代码)。如何转到特定行或单元格并使用它?

【问题讨论】:

    标签: c++builder c++builder-10.2-tokyo


    【解决方案1】:

    要移动到特定记录,您必须设置TADOTableRecNo 属性。

    在数据库中,移动到记录的特定字段(也称为单元格)并没有多大意义,除非您想编辑它的内容。 TADOTableEdit() 方法可以将记录置于编辑模式,但我不确定如何以编程方式选择单元格。这也取决于您的设计。通常,用户可以通过双击一个单元格来启动编辑模式,它会自动处理所有事情。但是,如果您想在用户不输入数据的情况下更改数据,TADOQuerySQL 语句是更好的选择。

    更具体地说明您希望在屏幕上发生的事情和用户的互动。这样,我们可以更好地帮助您。

    顺便说一句,您不是从网格本身提取数据,而是从网格所附加的 DataSet(TADOQueryTADOTable)中提取数据。

    【讨论】:

    • 我通过过滤来限制经纬度区域,并在地图上显示保留在边界纬度和经度中间的点。所以我需要字段中的值,而不是编辑它们。
    • @HasanKaraman 您仍然需要读取来自TADOTable 的值。您可以通过pTable-&gt;FieldByName(Field1Name)-&gt;As...pTable-&gt;Fields-&gt;Fields[i]-&gt;As... 执行此操作。通常在开始时您的 TADOTable 指向第一条记录。从记录中读取数据后,您可以使用Next() 移动到下一条记录。当Eof 为假时,您必须这样做。网格仅用于显示。从 TADOTable 读取数据。
    • 您的评论回答了这个问题,谢谢。您可能需要相应地更新答案。
    猜你喜欢
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    • 2010-10-28
    相关资源
    最近更新 更多