Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2015, 11:50   #1
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию Запись в массив ячеек из DBGrid - Delphi

Добрый День!
Помогите решить очередную задачу...

Есть таблица из которой нужно считать все данные из каждой ячейки в массив, подключение - ADOConnection. ADOTable, DataSource. Так как DBGrid не хранит информацию, а только отображает, и нельзя обратиться к каждой ячейке так как в StringGrid то как прочитать данные со всей таблицы?
Нашел пример, что вот так можно считать в переменные из ячеек в выделенной строке

Код:
a := DBGrid.DataSource.DataSet.FieldByName('Имя').AsString;
b := DBGrid.DataSource.DataSet.FieldByName('Фамилия').AsString;
Но если колонок в таблице например десять и для каждой писать такую
строку то ведь код очень громоздкий получится

Как это в цикле сделать и не для выделенной строки?
И как прочитать с остальных строк если их в таблице может быть пять или семь?

Вот нашел еще пример - копирование содержимого в StringGrid
Может на основании этого примера можно записать и массив?
и здесь используется ADOQuery а у меня ADOTable
Как это сделать, помогите пожалуйста, буду очень благодарен

Код:
StringGrid1.RowCount:=ADOQuery1.RecordCount;
StringGrid1.ColCount:=ADOQuery1.FieldCount;
ADOQuery1.First;
for i:=0 to ADOQuery1.RecordCount-1 do
  begin
    for j:=0 to ADOQuery1.FieldCount-1 do
      begin
        StringGrid1.Cells[j,i]:=ADOQuery1.Fields.Fields[j].AsString;
      end;
    ADOQuery1.Next;
  end;
S_007 вне форума Ответить с цитированием
Старый 07.05.2015, 13:10   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Вот нашел еще пример - копирование содержимого в StringGrid
Может на основании этого примера можно записать и массив?
и здесь используется ADOQuery а у меня ADOTable
вообще всё почти один в один:

Код:
var 
  Massiv : array of array of string;
begin
  ....

  SetLength( Massiv, ADOTable1.RecordCount, ADOTable1.FieldCount);
  ADOTable1.First;

  for i:=0 to ADOTable1.RecordCount-1 do
    begin
      for j:=0 to ADOTable1.FieldCount-1 do
        begin
          Massiv[i,j]:=ADOTable1.Fields.Fields[j].AsString;
        end;
      ADOTable1.Next;
    end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.05.2015, 13:37   #3
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
По умолчанию

Serge_Bliznykov, Я не знаю как благодарить Вас! В один миг вы нашли решение в моей проблеме! Если бы можно было бы, я бы поставил Вам тысячу одобрений!
Спасибо Вам - Это то что надо!
S_007 вне форума Ответить с цитированием
Старый 07.05.2015, 13:44   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да ну что Вы, не за что!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объеденение ячеек dbgrid glebast Помощь студентам 4 14.03.2014 19:55
Активность ячеек в DBGrid ins813 Компоненты Delphi 5 22.05.2012 11:11
DBGrid, Объединение ячеек kuzmich БД в Delphi 5 22.01.2012 23:22
Закрашивание ячеек в DBGRID jimmi З Помощь студентам 2 05.05.2011 06:38
запись ячеек в массив borik120 Microsoft Office Excel 6 26.01.2010 05:36