Консультация № 72831
27.01.2007, 11:24
0.00 руб.
0 2 2
Добрый день, товарищи эксперты

Вопрос таков: как из ADOQuery данные определенного поля результата запроса занести в динамический массив, без использования цикла? Я немного копался, есть свойство FieldValues которое возвращает Variant а вот что дальше с ним делать, как последовательно получить оттуда данные?

Обсуждение

Неизвестный
27.01.2007, 11:56
общий
это ответ
Здравствуйте, Leshka!
читаем HELP
FieldValues (public) Provides access to the values for all fields in the active record for the dataset
Предоставляет доступ к значениям ВСЕХ полей в активной записи набора данных

а вам если я правильно понял нужен список всех значений ОДНОГО поля во всех записях набора данных
Неизвестный
29.01.2007, 00:41
общий
это ответ
Здравствуйте, Leshka!

Задумал как-то я подобное, да отказался немного поразмыслив за ненадобностью оного. Есть ли смысл в этом ? Тем не менее ответ такой:
var A : Variant; далее

A:=ADODataSet1.RecordSet.GetRows(10,1,VarArrayOf([‘FIeldName1‘,‘FieldName2‘,‘FieldName3‘]));
где первый параметр 10 - это 10 записей, второй параметр - номер записи с какой начать 1, третий параметр список имен полей, значения каких необходимы.

дальше можно работать с вариантным массивом

Label1.Caption:=A[0,0]; - значение первого поля первой записи ,
Label2.Caption:=A[1,0]; - значение второго поля первой записи ,
Label3.Caption:=A[2,0]; - значение третьего поля первой записи .

Надо быть осторожным, используя такой подход, память-то не резиновая и может не поместиться весь массив.
Форма ответа