我正在使用embarcadero c ++ builder,我想复制DBGrid中包含的查询的结果,有没有办法从DBGrid获取每一行?
答案 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语句的查询组件的名称。您可以从该组件读取以检索通过执行语句返回的数据。