Как получить каждую строку из TDBGrid в c ++

Я использую embarcadero c ++ builder, и я хочу скопировать результат запроса, содержащегося в DBGrid, есть ли способ получить каждую строку из DBGrid?

c++builder,tdbgrid,

0

Ответов: 2


0

Это зависит от того, что вы подразумеваете под «копией результата», а также с тем, какую базу данных вы используете. TDataSet , как правило , используется для отображения и редактирования данных визуально. Это не самый эффективный способ получить информацию из базы данных и поместить ее в структуру данных.

Итак, если вы хотите (не визуально) выполнять некоторые действия для каждой строки набора результатов SQL, вероятно, вы должны использовать TSQLQuery . Этот объект имеет полезные методы и свойства (то есть First (), Next () и Eof), которые позволяют выполнять итерацию по набору результатов.


0

Вы не получаете результат от TDBGridнепосредственно; вы получаете его от TDataSourceприкрепленного к тому, TDbGridчто связано с TDbGrid. IOW, вы читаете его непосредственно из того, TQuery/TADOQuery/TSQLQueryчто вы используете для выполнения запроса. Поскольку вы не указали, какие СУБД и компоненты данных вы используете, невозможно быть более конкретным.

Вы можете найти компонент, выполняющий запрос во время разработки (в среде IDE), щелкнув по сетке и проверив его DataSourceсвойство на странице свойств объекта Inspector , которая даст вам имя TDataSourceкомпонента. Нажав на этот источник данных и проверив его DataSetсвойство, вы получите имя компонента запроса, на котором выполняется оператор SQL. Вы можете прочитать этот компонент, чтобы получить данные, возвращаемые при выполнении инструкции.

C ++ Builder, TDBGrid,