![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBComboBox
Andrewtitoff © (2009-11-02 15:39:00)Здравствуйте!, подскажите пожалуйста как сделать что бы в DBComboBox работал выпадающий список?, не ручным заполнением, т.к. у меня в таблице 80 полей и 7тысяч записей, а при ручном заполнении получается приличная тормозня т.к. при ручном заполнении приходится еще и проверять на наличие уже такой записи в DBComboBox-е (в таблице только одно поле ключевое и уникальное, все остальные могут повторяться сколько угодно хоть все 7тыс одинаковые...), или может быть что то другое использовать, а не DBComboBox, но нужна возможность редактирования...
Andrewtitoff (2009-11-06 11:19:00) [41]
> Andrewtitoff © (06.11.09 11:15) [110]
> > Сергей М. © (06.11.09 11:13) [109]> > с номером комбовокса
> то как быть?Пронумеруй-проинтексируй > их тем или иным образом
> либо создай массив из ссылок на > них - тогда к ним можно
> будет обращаться в цикле.Они у меня пронумерованы по номеру
> поля, а поля, нужные, идут не попорядку... =((((А как в
> принципе тобращаться то в цикле к таким вещам?, меня этот
> вопрос давно интересует!
т.е. ComoBox1 заполняется значениями Form1.ADOQuery1.Fields[1].AsString и.т.д. ComoBox N -> ADOQuery1.Fields[N]
Andrewtitoff (2009-11-06 11:17:00) [42]А можно как нибудь сделать цикл подряд, с условием что если комбо-бокс с таким номером существует - то заполнять его, а если нет - пропускать?, т.е. что бы просто пустить цикл от 0 до 80?...
Andrewtitoff (2009-11-06 11:15:00) [43]
> Сергей М. © (06.11.09 11:13) [109]
> > с номером комбовокса то как быть?Пронумеруй-проинтексируй
> их тем или иным образом либо создай массив из ссылок на
> них - тогда к ним можно будет обращаться в цикле.
Они у меня пронумерованы по номеру поля, а поля, нужные, идут не попорядку... =((((
А как в принципе тобращаться то в цикле к таким вещам?, меня этот вопрос давно интересует!
Сергей М. (2009-11-06 11:13:00) [44]
> с номером комбовокса то как быть?
Пронумеруй-проинтексируй их тем или иным образом либо создай массив из ссылок на них - тогда к ним можно будет обращаться в цикле.
Andrewtitoff (2009-11-06 11:09:00) [45]
> clickmaker © (06.11.09 11:06) [105]
> > [103] Andrewtitoff © (06.11.09 10:55)подсказкаForm1.
> ADOQuery1.SQL.Text := Format('select distinct %s from lift',
> [FieldNames[i]]);
Ну с этим то болеменее все ясно, хотя не совсем ясно как пропустить некоторые поля, мне же не все нужны....
а вот с этим совсем непонятно:
Form2.DBComboBox1.Items.Add(Form1.ADOQuery1.Fields[0].AsString);
_______^^^^^^^^^__________________
с номером комбовокса то как быть?
clickmaker (2009-11-06 11:08:00) [46]кстати, есть такая фишка, как множественные рекордсеты.
т.е. в запросе можно написать сразу все селекты, а обращаться к ним одним ADOQuery безо всяких циклов. см. NextRecordset в справке
Andrewtitoff (2009-11-06 11:06:00) [47]
> Сергей М. © (06.11.09 11:03) [104]
> Ну почему же нельзя ?Можно и засунуть)
ОЙ, а как?, а то чет я ни как не соображу, расскажите пожалуйста!, заранее очень признателен!
clickmaker (2009-11-06 11:06:00) [48]> [103] Andrewtitoff © (06.11.09 10:55)
подсказка
Form1.ADOQuery1.SQL.Text := Format('select distinct %s from lift', [FieldNames[i]]);
Сергей М. (2009-11-06 11:03:00) [49]Ну почему же нельзя ?
Можно и засунуть)
Andrewtitoff (2009-11-06 10:55:00) [50]2 Сергей М. ©
Да, действительно значительно быстрее и вполне приемлимо по скорости получилось! =)))
> Какое такое "все дело" ?)
Ну вот жто дело:
Form1.ADOQuery1.SQL.Text := 'select distinct STREET from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do begin
Form2.DBComboBox1.Items.Add(Form1.ADOQuery1.Fields[0].AsString);
Form1.ADOQuery1.Next;
end;
60 раз подряд для каждого нужного поля..., как то совсем не гуд...
Сергей М. (2009-11-06 10:50:00) [51]
> Andrewtitoff © (06.11.09 10:41) [101]
Какое такое "все дело" ?)
Andrewtitoff (2009-11-06 10:41:00) [52]2 Сергей М. ©
А это все дело ни как нельзя в цикл засунуть?
Andrewtitoff (2009-11-06 10:23:00) [53]2 Dennis I. Komarov ©
А что я не так сказал?
Andrewtitoff (2009-11-06 10:22:00) [54]Да, так, все работает, сейчас скопирую для каждого поля и и отпишусь что получилось по скорости
Dennis I. Komarov (2009-11-06 10:22:00) [55]
> Andrewtitoff © (06.11.09 09:40) [91]
>
> > Dennis I. Komarov © (05.11.09 12:22) [88]
> > > А вообще самое первое поле нулевоеу меня ключевоеЭто
> > как?
>
> В смысле как? ?, ну поле к которому можно обратиться ADOTable4.Fields[ 0] называется "REGNUM"
И пойми тебя...
Andrewtitoff (2009-11-06 10:19:00) [56]
> Сергей М. © (06.11.09 10:07) [96]
> > Написал вот так:> Form1.ADOQuery1.SQL.Text := 'select
> distinct field1 from > lift';Тогда что такое field1 ?Никакими
> "field1" в [95] даже близко не пахнет ..
Ой, точно, я дебил... =)))
Сергей М. (2009-11-06 10:07:00) [57]
> Написал вот так:
> Form1.ADOQuery1.SQL.Text := 'select distinct field1from
> lift';
Тогда что такое field1?
Никакими "field1" в [95] даже близко не пахнет ..
Andrewtitoff (2009-11-06 09:58:00) [58]Это все поля, которые есть в таблице, табблица называется "LIFT":
REGNUM STREET HOUSE CORP PARNUM REGION PLACE BRIGADE HOLDER BELONG CONTRACT DEU ZSK BUILDING MAKER DATE NUMBER EXPLOAT FLOOR STOP WEIGHT SPEED DOOR LOCATION ENTRANCE MINE SH_SIZE HEIGHT CAB_SIZE FENSE LINK CONTROL LINKTYPE LIFTTYPE COMCIR CIRCUIT BLOCK REDUCTOR TRANSFER SET ENGINE ENGINEFO DRIVE DOORSFOR KVDIAM KVNUM BLOCKDIAM ROPEDIAM ROPELEN BREAKS CONSTRUCT LOADCOUNT RECONSTRUC CHANGE REVISION REPAIRDATE PERIOD NEXTDATE SERVCOST DBEGIN DEND ISROUND SERVERSERVE TESTED OBOSN S2 BALANCE_ID BALANCE PANEL DEXP NUMBERE EWHO EXPIRATIONDATE UBLTYPE UBLWHEN PRODLENOMK NEXTEXP EXPS FERBOTTEN OSVCOST
Andrewtitoff (2009-11-06 09:55:00) [59]
> Сергей М. © (06.11.09 09:46) [93]
> > Andrewtitoff © (06.11.09 09:40) [91]На [86] ответить
> сподобишься ?
Ой, извиняюсь что не пометил, я следующим постом [87] и отвечал на него, в общем я незнаю что это такоее, вот структура таблицы:
Рег.номер Улица Дом Корп Пар Район Участок Бригада Владелец Ведомство Договор ДЭУ ЖСК Здание Изготовитель Дата изготовления Зав № Дата ввода в эксплуатацию Этажей Остановок Грузоподьемность Скорость Тип дверей Расположение МП Вход в МП Шахта размер высота Размер кабины Ограждение кабины Связь Пульт Тип (связи) Тип лифта Единая сх. Упр Схема управл Блок парной работы или гр Редуктор Передаточное число Компоновка Дв-ль гл прив Форма исп. двигателя главного привода Дв-ль привод форма исполнения привода дверей КВШ Кол-во ручьев Блоки/диам Диаметр каната несущего Длина каната несущего Тэл-Магнит Констр пола Контр загр Дата модерн Выполненная модернизация Освидетельствование Дата проведения кап. Ремонта Периодичность кап. Ремонта Дата следующего кап. Ремонта Ктоимость КТО Начало действия договора Конец действия договора Округление (КТО) Кто обслуживаетОбслуживается = 1, нет = 0 ??? Обоснов ра Площадь ??? Противовес Шкаф управл Дата последней экспертизы Номер эксп Кто проводил Действует до (экспертиза) Тип УБЛ Когда установлен УБЛ Продлен срок очередной эксплуатации МК до Дата очередной экспертизы МК История экспертиз ??? Стоимость освидетельствования
REGNUM STREET HOUSE CORP PARNUM REGION PLACE BRIGADE HOLDER BELONG CONTRACT DEU ZSK BUILDING MAKER DATE NUMBER EXPLOAT FLOOR STOP WEIGHT SPEED DOOR LOCATION ENTRANCE MINE SH_SIZE HEIGHT CAB_SIZE FENSE LINK CONTROL LINKTYPE LIFTTYPE COMCIR CIRCUIT BLOCK REDUCTOR TRANSFER SET ENGINE ENGINEFO DRIVE DOORSFOR KVDIAM KVNUM BLOCKDIAM ROPEDIAM ROPELEN BREAKS CONSTRUCT LOADCOUNT RECONSTRUC CHANGE REVISION REPAIRDATE PERIOD NEXTDATE SERVCOST DBEGIN DEND ISROUND SERVERSERVE TESTED OBOSN S2 BALANCE_ID BALANCE PANEL DEXP NUMBERE EWHO EXPIRATIONDATE UBLTYPE UBLWHEN PRODLENOMK NEXTEXP EXPS FERBOTTEN OSVCOST
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 6263 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
Anatoly Podgoretsky (2009-11-06 09:46:00) [60]Судя по количеству сообщений в данной теме, не то что бы не то делаешь, а вообще слабо представляешь, что делаешь.
Не помню предлагали ли уже пригласить программиста или нет, но это самое правильное решение.