DBComboBox - че с ним то???
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.249] |
|
|
DBComboBox - че с ним то???
|
Сообщ.
#1
,
|
|
|
|
Да.... я когда-то на этом форуме спрашивал про DBEdit - мне сказали что он может работать только с текущей записью(карточкой) в базе. Ок, но - DBComboBox - он то чего выкалывается???
Объясняю: Нужно что б в этом DBComboBox отображались первые поля ВСЕХ записей базы! Я ставлю в DataSource - DataSource1, а внем - Table1, в котором в свою очередь сама база!(А в Datafield - Name(имя моего поля) Но.... короче он показывает ТОЛЬКО первую запись!!!! Точнее первое поле первой записи!!! Как так??? |
|
Сообщ.
#2
,
|
|
|
|
TDBComboBox - это тот же TComboBox, поэтому он не будет содержать список значений всех полей, а только текущее значение поля.
|
|
Сообщ.
#3
,
|
|
|
|
Я так и думал, хе вот только не понятно нафига он тогда вообще нужен! (могли бы ДБЕдитом ограничиться)
А как же мне тогда сделать??? Как поступить???? |
|
Сообщ.
#4
,
|
|
|
|
Используй TDBLookupListBox или TDBLookupComboBox.
|
|
Сообщ.
#5
,
|
|
|
|
Цитата Для этого у него есть Items которое надо заполнить значениями, и то значение которое выберем из списка сохранится в поле. Awe, 13.07.04, 18:59 Нужно что б в этом DBComboBox отображались первые поля ВСЕХ записей |
|
Сообщ.
#6
,
|
|
|
|
Ok, я попробую с Items... А то этот TDBLookupComboBoх - вообще не работает!
Если заполнить только DataSouce и DataField - то он ничего не отображает! А если еще заполнить FieldSource, то он ругается мол "Circular datalinks are not allowed"З.Ы. С++ просто не на этом компе, я попробую и скажу - вышло или нет! |
|
Сообщ.
#7
,
|
|
|
|
Цитата Awe, 14.07.04, 08:55 DataSouce и DataField Не забудь что еще надо KeyField,ListSources.. |
|
Сообщ.
#8
,
|
|
|
|
Цитата Не забудь что еще надо KeyField,ListSources.. Вот-вот! Когда я их заполняю, то при попытки запуска программы С++ пишет ошибку...(там про то что ошибка в каком-то драйвере), а при проектирование(перед запуком) при попытке активировать Table1 - "Circular datalinks are not allowed" Ах да, про Items - такое есть и в обычном КомбоБоксе, это ведь просто для заполнения полей... Нет, я не против и так, но что тогда надо писать: ![]() ![]() DBComboBox1->AddItems(???); |
|
Сообщ.
#9
,
|
|
|
|
Цитата Ты пытаешься связать скажем таб 1 саму с сабой , что не допустимо.Awe, 14.07.04, 09:21 "Circular datalinks are not allowed" ![]() ![]() DBLookupComboBox1->DataSource=DataSource1; DBLookupComboBox1->DataField=Pole1; DBLookupComboBox1->ListSource=DataSource2; DBLookupComboBox1->KeyField=Pole1; DBLookupComboBox1->ListSource=PoleTxt; ![]() ![]() DBComboBox1->Items->Add("???"); |
|
Сообщ.
#10
,
|
|
|
|
очисть DataSource. Оставь только ListSource, выбери поле ListField, то что запонит значениями твой компонент, выбери KeyField (обычно id ), чтоб точно знать какая запись активна.
|
|
Сообщ.
#11
,
|
|
|
|
Стойте! Стойте! Стойте!
1. Если очистить DataSource - все равно ошибка!!! 2. У меня одна база и одна таблица! Если я делаю два DataSource(естественно сылаясь на одну базу) Он пишет тоже самое!!! 3. Если есть другие варианты, они меня устроят.... (МНЕ НАДО ПРОСТО ВЫВЕСТИ НА КОМБОБОКС ДАННЫЕ ОДНОГО ПОЛЯ ВСЕХ КАРТОЧЕК) (т. е. если Есть Поле Имя, а там "Вася" "Вова" "Петя") То в комбобоксе должно быть НЕ ТОЛЬКО "Вася", а все три... 4. Может кто знает, как переходить к следующей карточке БЕЗ ДБНавигатора(програмно)???(на нем это кнопка Next) |
|
Сообщ.
#12
,
|
|
|
|
Цитата Awe, 14.07.04, 11:34 1. Если очистить DataSource - все равно ошибка!!! ну так DataField тоже очисть Цитата Awe, 14.07.04, 11:34 4. Может кто знает, как переходить к следующей карточке БЕЗ ДБНавигатора(програмно)???(на нем это кнопка Next) ![]() ![]() DataSet->Next(); |
|
Сообщ.
#13
,
|
|
|
|
Цитата Awe, 14.07.04, 10:34 У меня одна база и одна таблица! Если я делаю два DataSource(естественно сылаясь на одну базу) Он пишет тоже самое!!! Такого не должно быть , потому что этого не может быть никогда. Нельзя делать поля замены из одной и тойже БД (Lookup-переведи на русский язык и будет озарение) Добавлено в : Цитата Awe, 14.07.04, 10:34 (МНЕ НАДО ПРОСТО ВЫВЕСТИ НА КОМБОБОКС ДАННЫЕ ОДНОГО ПОЛЯ ВСЕХ КАРТОЧЕК) (т. е. если Есть Поле Имя, а там "Вася" "Вова" "Петя") То в комбобоксе должно быть НЕ ТОЛЬКО "Вася", а все три... ->Items->Add(); #9 |
|
Сообщ.
#14
,
|
|
|
|
Ок, всем всем всем спасибо!!!
Все, я уже разобрался! ![]() Наконец-то все заработало!!!! Но вот, хоть может не совсем по теме - но новый топик зачем открывать? ![]() ![]() float A; float B; try{ A = B/0} catch (...) { Application->MessageBox("Деление на ноль", mnOK} Я пробовал catch (EDivisionbyZero), в книге написано что "..." - самое верное! А то что в MessageBox - тоже не важно(я по памяти пишу, в проге там все ок). Проблема то в том что С++ пишет типа - эта операция не подходит для типа float, и даже не смотрит на мой catch........ как буд-то его там и не было!!! |
|
Сообщ.
#15
,
|
|
|
|
Цитата А зачем делить на 0? Awe, 14.07.04, 16:38 float A,B,C=0; try{ A = B/C} catch (...) { Application->MessageBox("Деление на ноль"," ",MB_OK);} |
|
Сообщ.
#16
,
|
|
|
|
Вот как написано конкретно у меня:
![]() ![]() try{mid = summary/(all-count)} catch (...) {//bla-bla-bla;} Просто в результате подсчетов знаменатель оказался нулём! И даже это не важно, ведь суть-то в том что есть ошибка, так чего он вместо того что б делать то что написано в catch - выкалывается??? |
|
Сообщ.
#17
,
|
|
|
|
+1
Все нормально, отключи галочки Tools->Debuger Options...->Languange Exceptions Stop on Delphi and C++ Exception. |