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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2014, 07:53   #1
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию Работа с данными через ADO

Юзаю компоненты ADO. SQL запросом с помощью ADOQuery и DataSource, подгрузил в DBGrid. Изначально ещё подумал, что с графическим компонентам будет не очень работать, но пренебрёг опасениями и решил делать так. В процессе выяснил, что в DBGrid я не могу прочитать ячейку по координатам и надо скакать по всей таблице, что не есть комильфо.

Дак вот допустим, мне нужно в цикле пробежать по всем строка столбца, или прочитать конкретную строку из столбца, то мне надо пройтись по всем ячейкам. Какой компонент нужно использовать, что бы свободно читать ячейки?

Или же напрямую как-то, минуя DBGrid?
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 22.06.2014, 08:10   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

DBGrid - это средство ВИЗУАЛИЗАЦИИ (отображения) данных, которые находятся в свазанном с гридом датасете (DataSet == набор данных).

Скорее всего, Вам нужно именно с этим датасетом и работать:
Код:
DatasetX.First; //перейти на первую запись в датасете
while Not DatasetX.EOF do begin
   получить данные из нужного поля датасета через FieldByName, например
   DatasetX.First; // перейти на следующую запись в датасете
end;
Андерстенд?..

Hint. во время цикла по датасету грид лучше временно отключать. Иначе будет видно, как мы пробегаем по всем данным..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.06.2014, 08:36   #3
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
DBGrid - это средство ВИЗУАЛИЗАЦИИ (отображения) данных, которые находятся в свазанном с гридом датасете (DataSet == набор данных).

Скорее всего, Вам нужно именно с этим датасетом и работать:
Код:
DatasetX.First; //перейти на первую запись в датасете
while Not DatasetX.EOF do begin
   получить данные из нужного поля датасета через FieldByName, например
   DatasetX.First; // перейти на следующую запись в датасете
end;
Андерстенд?..

Hint. во время цикла по датасету грид лучше временно отключать. Иначе будет видно, как мы пробегаем по всем данным..
Что касается того, что DBGrid является средством визуализации это понятно. Вопрос в том, можно ли сделать что - то вроде:
Код:
StringGrid.Cells[5,5];
Или мне придётся в цикле пять шагов делать?

И вот ещё, выполняю:
Код:
ADOQuery.FieldList.Fields[0].AsString;
Получаю, что и просил. 1 столбец, 1 строка.
Как на вторую строку переместиться?
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 22.06.2014, 08:48   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Как на вторую строку переместиться?
Код:
ADOQuery.Next;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.06.2014, 09:58   #5
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Цитата:
Сообщение от Tip.the.besT Посмотреть сообщение
Или мне придётся в цикле пять шагов делать?
Да, в пять шагов. Будет говнокод. А чтобы не писать говнокода, нужно переделать базу данных, чтобы не приходилось обращаться по ячейкам произвольно. В реляционных СУБД нет такого понятия, как порядок значений в таблице.
Vapaamies вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение таблицы данными через SQL запрос nata-khramenkova Помощь студентам 3 18.03.2014 13:55
Обмен данными с устройством через Com port qwertyui123 Работа с сетью в Delphi 15 09.09.2013 08:20
Обмен данными через LPT Vovan91 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 17.02.2011 03:30
Управление данными через запросы. prosport91 SQL, базы данных 1 24.03.2010 17:06
работа с БД (компонент ADO,dbGrid) через dll oWish Помощь студентам 4 29.02.2008 12:23