Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.128.129] |
|
Данный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Есть куча ComboBox для ввода новых записей в таблицу...
в них в каждом надо отображать возможные поля для ввода, эти возможные поля должны браться из базы (соотв. столбцу). Занесли новое поле в таблицу--->отображение в в ожможных знач. ComboBoxa. Вот такая задача. Я ее реализ считываением пробежкой по всей базе, занесением в Тстринг и убиранием дубликатов. НО, этот процесс занимает достаточно много времени, да и к тому же по каждому расхлапыванию коба не будеш же заново бегать по всей таблице и искать что добавилось.... Кто что может предложить... у кого какие наработки. Мой исходник этой операции: var Sl:TStringList; begin Sl:=TStringList.Create; MasVT.DisableControls; BMVT:=MasVT.GetBookmark; //Ñïèñîê Ïðåäïðèÿòèé â CBVT ... MasVT.First; while not MasVT.Eof do begin CBVT1.Items.Add(MasVT.FieldByName('PR').AsString); CBVT2.Items.Add(MasVT.FieldByName('PS').AsString); CBVT3.Items.Add(MasVT.FieldByName('DN').AsString); CBVT4.Items.Add(MasVT.FieldByName('TIP').AsString); CBVT5.Items.Add(MasVT.FieldByName('ZN').AsString); ..... MasVT.next; end; MasVT.GotoBookmark(BMVT); //Ïåðåõîäèì ïî çàêë. MasVT.FreeBookmark(BMVT); MasVT.EnableControls; With Sl Do try Sorted:=True; Duplicates:=dupIgnore; Sl.Assign(CBVT1.Items); CBVT1.Items.Assign(Sl); //Î÷èùåàì â VT Sl.Assign(CBVT2.Items); CBVT2.Items.Assign(Sl); Sl.Assign(CBVT3.Items); CBVT3.Items.Assign(Sl); Sl.Assign(CBVT4.Items); CBVT4.Items.Assign(Sl); Sl.Assign(CBVT5.Items); CBVT5.Items.Assign(Sl); ..... finally Free; end; |
Сообщ.
#2
,
|
|
|
Я конечно может быть чего не понял, но не проще ли использовать компонент DBComboBox из вкладки DataControls. Там указываешь DataSource (источник-таблица) и DataField (поле из которого выбираются значения). Причем все это работает еще на стадии разработки :).
|
Сообщ.
#3
,
|
|
|
Цитата OlegF, 28.01.03, 14:05:02 Я конечно может быть чего не понял, но не проще ли использовать компонент DBComboBox из вкладки DataControls. Там указываешь DataSource (источник-таблица) и DataField (поле из которого выбираются значения). Причем все это работает еще на стадии разработки . Как по мне, дык ответ исчерпывающий.......зачем колесо изобретать??? |
Сообщ.
#4
,
|
|
|
Да неее.... этот DBCombo привязан к базе, а у меня просто ComboBox и к тому же список то в этих DBCombo все равно надо программно заполнять (автоматом же нет),а для этого все равно надо каждый раз по таблицам бегать....
или я что недопонимаю? |
Сообщ.
#5
,
|
|
|
Есть возможность завязать таблицу со справочником в дата модуле, и подцепить к справочнику комбобокс, (ели просчитал кол-во бо )
|
Сообщ.
#6
,
|
|
|
DBLookupComboBox и DBLookupListBox и их аналоги из RxLib как раз для того и предназначены, чтобы данные из одного датасета можно можно было вставлять в другой (с постановкой или без)... В простейшем случае ни одной строчки текста не требуется...
Изобретаем велосипед ? ;-) |
Сообщ.
#7
,
|
|
|
вообще-то DBComboBox для того и сделан, чтобы его не заполнять ручками.
|