masters писал(а):Че-то не понял как работать с Columns ... Как номер ячейки задавать?
У DBGrid, в отличие от StringGrid'а, нет собственного хранилища данных, поэтому вопрос "Как номер ячейки задавать?" применительно к DBGrid'у звучит полностью бессмысленно. Если хотите работать с ячейками набора данных, которые отображаются в DBGrid'е, то непосредственно с набором данных и работайте.
К примеру Ваш DBGrid берёт данные из Query1, тогда обращение к текущей строке какой-то определённой колонки будет выглядеть так:
- Код: Выделить всё
Query1.FieldByName('Имя_поля').AsНужный_Вам_тип_данных
masters писал(а):И можно-ли результат запроса вывести в структуру или массив?
Можно, если только Вы работаете с набором данных как я описал выше.
- Код: Выделить всё
For i:=0 To Query1.RecordCount-1 Do
SendMail(Query1.FieldByName('e-mail').AsString);
Здесь мы предполагаем, что электронные адреса хранятся в поле таблицы под названием "e-mail". Соответственно в цикле проходим все записи набора данных, который делает запрос из Вашей таблицы с адресами, от нулевой записи до RecordCount-1, т.е. кол-во записей всего минус один. И из указанного поля берём адреса, которые там содержаться. Если нужно занести данные в массив - поступаем аналогично.
Со структурой работа несколько иная. Каждая запись структуры - это определённое поле
одной строки таблицы. Поэтому делаем так:
- Код: Выделить всё
Structura.Field1:=Query1.FieldByName('Название_поля1').AsНужныйВамТипДанных;
Structura.Field2:=Query1.FieldByName('Название_поля2').AsНужныйВамТипДанных;
Structura.Field3:=Query1.FieldByName('Название_поля3').AsНужныйВамТипДанных;