Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ComboBox и БД [D7, IB6.x]


Russko ©   (2005-01-18 12:20:00) 

Подскажите каким образом я могу проще и быстрее данные из одного столбика БД перенести в выпадающий список ComboBox.
Мне не нужен DBComboBox, мне нужно перенести данные именно в обычный ComboBox


Desdechado   (2005-01-18 13:02:00) [1]

2 Russko
отключи сортировку списка перед закачкой, включи после - так будет быстрее


msguns   (2005-01-18 12:37:00) [2]

Если записей в справочнике много (речь идет о таблице типа справочника, я правильно понял ?), то ИМХО, нужна модальная форма с полноценным гридом и хорошим сервисом (поиск, фильтрация, сортировка). Список типа комбобокса в этом случае крайне неудобен для юзера.
Кроме того, справочник можно сделать древовидным - в этом случае выборка данных с сервера существенно ускорится, т.к. качаться будут только те записи, которые попадают в выбранную узером группу. Кроме того, в гриде можно показать все поля справочника, а не только типа "наименование", что также может быть весьма не лишне.


ЮЮ   (2005-01-18 12:35:00) [3]

отключи у DataSet-а обработчики и контролы (DisableControls), ибо и они тоже выполняются при DataSet.Next;


Соловьев   (2005-01-18 12:35:00) [4]

ну можно еще и DBLookupCombobox юзать


Russko   (2005-01-18 12:31:00) [5]

У меня так и есть (( но это долго


ЮЮ   (2005-01-18 12:27:00) [6]

>Подскажите каким образом я могу проще и быстрее

procedure FillComboboxFromDataSet(
DataSet: TDataSet; FieldIndex: integer; ComboBox: TComomboBox
);
begin  
 ComboBox.Items.Clear;
 if DataSet.Stae = dsInactine then
   DataSet.Open
 else
   DataSet.First;
 while not DataSet.EOF do begin
   ComboBox.Items.Add(DataSet.Fields[FieldIndex].AsString);
   DataSet.Next;
 end;
end;


Соловьев   (2005-01-18 12:24:00) [7]

ручками в цыкле


Наверх

Титульная страница Поиск, карта сайта Написать письмо