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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2015, 12:12   #1
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию Правильное заполнение Combobox из запросов

На форме есть 3 Combobox, один из них заполняю при создании формы:
Код:
procedure FullList;
var
  Query : TFDQuery;
begin
  Query := TFDQuery.Create(nil);
  Query.Connection := DM.fdConn;
  Query.SQL.Clear;

  Query.Close;
 Query.SQL.Text := 'SELECT id, name FROM table';
  Query.Open;
	Query.First;
  while not Query.Eof do
    begin
      cbTab1.Items.AddObject(Query.FieldByName('name').AsString, Pointer(Query.FieldByName('id').AsInteger));
      Query.Next;
    end;
  Query.Free;
end;
А вот остальные Combobox - необходимо заполнять из результата выбора значения заполненного при создании формы Combobox, точнее 'id'.
itemIndex отличаются от значения id.

Есть у кого нибудь идеи?
le7o вне форума Ответить с цитированием
Старый 22.11.2015, 13:14   #2
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Вопрос в чем? не умеете еще один запрос делать или что?
come-on вне форума Ответить с цитированием
Старый 22.11.2015, 13:21   #3
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

Запрос умею, как передать правильно id из этого запроса в другой?

cbTab1.itemIndex - вот вместо этого необходимо использовать id из первого запроса, itemIndex - естественно не равен id

Код:
var
  Query : TFDQuery;
begin
  Query := TFDQuery.Create(nil);
  Query.Connection := DM.fdConn;
  Query.SQL.Clear;

  Query.Close;
 Query.SQL.Text := 'SELECT id, name FROM table2 WHERE table_id=:p_table_id';

Query.Params.ParamByName('p_table_id').AsInteger :=cbTab1.itemIndex; 
  Query.Open;
	Query.First;
  while not Query.Eof do
    begin
      cbTab2.Items.AddObject(Query.FieldByName('name').AsString, Pointer(Query.FieldByName('id').AsInteger));
      Query.Next;
    end;
  Query.Free;
end;
le7o вне форума Ответить с цитированием
Старый 22.11.2015, 13:23   #4
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Вы же ид положили в объект итема, вот оттуда и берите, выбранный итем есть, объект у него есть, ид есть, вопросов нет.
come-on вне форума Ответить с цитированием
Старый 22.11.2015, 13:27   #5
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

В том то и дело что после добавления новых данных проскакивает значение объекта = -1

cbCatalogID.Items.IndexOfObject(Poi nter(cbCatalogID.itemindex));

Цитата:
Сообщение от come-on Посмотреть сообщение
Вы же ид положили в объект итема, вот оттуда и берите, выбранный итем есть, объект у него есть, ид есть, вопросов нет.
le7o вне форума Ответить с цитированием
Старый 22.11.2015, 13:32   #6
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

А при чем тут cbCatalogID ? вы иды в cbTab1 итемы положили.

да и IndexOfObject тут при чем, зачем вам индекс если надо объект?
cbTab1.itemIndex выводит на выбранный итем, в нем есть объект т.е. ид. Что то вы сами себя путаете или надо поднять справку по комбобоксам.

Последний раз редактировалось Stilet; 22.11.2015 в 18:13.
come-on вне форума Ответить с цитированием
Старый 22.11.2015, 14:06   #7
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

Вы были абсолютно правы, сам себя запутал...

integer(cbTAB1.Items.Objects[cbTAB1.ItemIndex]) = id

Цитата:
Сообщение от come-on Посмотреть сообщение
да и IndexOfObject тут при чем, зачем вам индекс если надо объект?
cbTab1.itemIndex выводит на выбранный итем, в нем есть объект т.е. ид. Что то вы сами себя путаете или надо поднять справку по комбобоксам.
le7o вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение ComboBox с листа Арианна Microsoft Office Excel 5 09.01.2014 09:27
заполнение combobox из бд Kira_Polyakova Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 19.07.2013 12:28
заполнение combobox с другого листа caught.let Microsoft Office Excel 3 14.03.2012 21:06
Заполнение combobox. NicBor Microsoft Office Word 4 12.11.2010 14:05
Заполнение ComboBox датами segail Microsoft Office Excel 9 12.01.2010 21:47