如何从c ++中的TDBGrid获取每一行

时间:2016-10-13 17:49:12

标签: c++builder tdbgrid

我正在使用embarcadero c ++ builder,我想复制DBGrid中包含的查询的结果,有没有办法从DBGrid获取每一行?

2 个答案:

答案 0 :(得分:0)

这取决于“复制结果”的含义,以及您使用的数据库类型。 TDBGrid通常用于直观地显示和编辑数据。这不是从数据库获取信息并将其放入数据结构的最有效方式。

因此,如果您想要(非直观地)对SQL结果集的每一行执行某些操作,则应该使用TSQLQuery。该对象具有有用的方法和属性(即First(),Next()和Eof),允许您遍历结果集。

答案 1 :(得分:0)

您无法直接从TDBGrid获得结果;您是从TDataSet附加到与TDataSource相关联的TDbGrid获取的。 IOW,您直接从用于执行查询的TQuery/TADOQuery/TSQLQuery中读取它。由于您没有提到您正在使用的DBMS和数据组件,因此无法更具体。

您可以在设计时(在IDE中)找到正在执行查询的组件,方法是单击网格并在Object Inspector的 Properties 页面中检查它的DataSource属性,这将为您提供TDataSource组件的名称。单击该数据源并检查它的DataSet属性将为您提供运行SQL语句的查询组件的名称。您可以从该组件读取以检索通过执行语句返回的数据。