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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2016, 21:42   #1
drofus
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию Получить данные из таблицы в DBGrid1

Как получить в таблице BD DBGrid1 ADOQuery1 нужное поле, раньше в лист вью делал так
Код:
for i:=0 to ListView1.Items.Count-1  do
 begin
If pos(uslugi.Text, ListView1.Items[i].Caption)>0 then
 begin
if Combobox1.Text = '' then exit else
Cena.Caption:= ListView1.Items[i].SubItems.Strings[ComboBox2.ItemIndex];
Как переделать ? BD DBGrid1 ADOQuery1 пока не дружу, хотя бы схематически я потом доделаю сам
drofus вне форума Ответить с цитированием
Старый 14.07.2016, 22:21   #2
drofus
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию

Так ошибка List Index out of bounds(5) в таблице 5 полей подскажите куда хоть смотреть
Код:
var
 i : integer;
 s : integer;
 o : integer;
begin
for i:=0 to Form3.ADOQuery1.FieldCount -1  do
Form3.ADOQuery1.Active := TRUE;
begin
If pos(usluga.Text, Form3.ADOQuery1.Fields[i].AsString)>0 then
begin
 if Label19.Caption = '' then exit else
      Label12.Caption:= Form3.ADOQuery1.Fields[i].AsString[StrToInt(Label19.Caption)];
    Form3.ADOQuery1.Next;

Последний раз редактировалось drofus; 14.07.2016 в 22:25.
drofus вне форума Ответить с цитированием
Старый 15.07.2016, 09:05   #3
drofus
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию

Вот так сделал.. Не знаю но мне кажется что не надежно
Код:
var
 i : integer;
begin
i:= usluga.ItemIndex;
if i = 0 then i:=1 else exit;
  Form3.DBGrid1.DataSource.DataSet.RecNo:= i (номер строки);
Label12.Caption:= Form3.DBGrid1.DataSource.DataSet.Fields.Fields[StrToInt(номер колонки)].Value;
Может посоветуете вариант получше ?
drofus вне форума Ответить с цитированием
Старый 15.07.2016, 09:18   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

1. либо напрямую из набора данных ( как и было указано раньше)
Код:
Label12.Caption:= Form3.ADOQuery1.Fields[i].AsString;
2. либо через поля связанные с колонками.
Код:
Label12.Caption:= Form3.Dbgrid1.Columns[i].Field.AsString;
3. использовать DBText и др. компоненты настроенные на тот же НД.
используя либо один и тот же Datasource (как правило это удобнее и меньше вероятность "случайного рассинхронивания")
либо два и более Datasource, но ссылающиеся на один и тот же DataSet(Query).
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 15.07.2016 в 09:25.
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные из DBGrid1 перенести в Memo1. Turbo Delphi! KYLOMASSA БД в Delphi 2 28.06.2016 09:18
Получить данные из TWebBrowser Pcrepair Общие вопросы Delphi 8 05.11.2013 08:49
получить данные с бд megostudent БД в Delphi 5 14.05.2013 11:30
Данные из таблицы в список, если в ячейке таблицы стоит количество oleg_sh Microsoft Office Excel 4 08.10.2012 14:52
Данные из двух полей исх. таблицы в одно поле сводной таблицы Strelec79 Microsoft Office Excel 2 02.08.2009 13:59