На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> DBComboBox - че с ним то???
    Да.... я когда-то на этом форуме спрашивал про DBEdit - мне сказали что он может работать только с текущей записью(карточкой) в базе. Ок, но - DBComboBox - он то чего выкалывается??? >:(

    Объясняю: Нужно что б в этом DBComboBox отображались первые поля ВСЕХ записей базы! Я ставлю в DataSource - DataSource1, а внем - Table1, в котором в свою очередь сама база!(А в Datafield - Name(имя моего поля) :) Но.... короче он показывает ТОЛЬКО первую запись!!!! Точнее первое поле первой записи!!!

    Как так???
      TDBComboBox - это тот же TComboBox, поэтому он не будет содержать список значений всех полей, а только текущее значение поля.
        Я так и думал, хе вот только не понятно нафига он тогда вообще нужен! (могли бы ДБЕдитом ограничиться) :D

        А как же мне тогда сделать??? Как поступить???? :blink:
          Используй TDBLookupListBox или TDBLookupComboBox.
            Цитата
            Awe, 13.07.04, 18:59
            Нужно что б в этом DBComboBox отображались первые поля ВСЕХ записей
            Для этого у него есть Items которое надо заполнить значениями, и то значение которое выберем из списка сохранится в поле.
              Ok, я попробую с Items... А то этот TDBLookupComboBoх - вообще не работает! :( Если заполнить только DataSouce и DataField - то он ничего не отображает! А если еще заполнить FieldSource, то он ругается мол "Circular datalinks are not allowed"

              З.Ы. С++ просто не на этом компе, я попробую и скажу - вышло или нет!
                Цитата
                Awe, 14.07.04, 08:55
                DataSouce и DataField

                Не забудь что еще надо KeyField,ListSources..
                  Цитата
                  Не забудь что еще надо KeyField,ListSources..


                  Вот-вот! Когда я их заполняю, то при попытки запуска программы С++ пишет ошибку...(там про то что ошибка в каком-то драйвере), а при проектирование(перед запуком) при попытке активировать Table1 - "Circular datalinks are not allowed"

                  Ах да, про Items - такое есть и в обычном КомбоБоксе, это ведь просто для заполнения полей... Нет, я не против и так, но что тогда надо писать:
                  ExpandedWrap disabled
                     DBComboBox1->AddItems(???);
                  :blink:
                    Цитата
                    Awe, 14.07.04, 09:21
                    "Circular datalinks are not allowed"
                    Ты пытаешься связать скажем таб 1 саму с сабой , что не допустимо.
                    ExpandedWrap disabled
                      DBLookupComboBox1->DataSource=DataSource1;
                      DBLookupComboBox1->DataField=Pole1;
                      DBLookupComboBox1->ListSource=DataSource2;
                      DBLookupComboBox1->KeyField=Pole1;
                      DBLookupComboBox1->ListSource=PoleTxt;

                    ExpandedWrap disabled
                      DBComboBox1->Items->Add("???");
                    Сообщение отредактировано: Bas -
                      очисть DataSource. Оставь только ListSource, выбери поле ListField, то что запонит значениями твой компонент, выбери KeyField (обычно id ), чтоб точно знать какая запись активна.
                        Стойте! Стойте! Стойте!

                        1. Если очистить DataSource - все равно ошибка!!! :wall:
                        2. У меня одна база и одна таблица! Если я делаю два DataSource(естественно сылаясь на одну базу) Он пишет тоже самое!!! :wall:
                        3. Если есть другие варианты, они меня устроят.... :unsure:
                        (МНЕ НАДО ПРОСТО ВЫВЕСТИ НА КОМБОБОКС ДАННЫЕ ОДНОГО ПОЛЯ ВСЕХ КАРТОЧЕК) (т. е. если Есть Поле Имя, а там "Вася" "Вова" "Петя") То в комбобоксе должно быть НЕ ТОЛЬКО "Вася", а все три...
                        4. Может кто знает, как переходить к следующей карточке БЕЗ ДБНавигатора(програмно)???(на нем это кнопка Next) :huh:
                          Цитата
                          Awe, 14.07.04, 11:34
                          1. Если очистить DataSource - все равно ошибка!!!

                          ну так DataField тоже очисть
                          Цитата
                          Awe, 14.07.04, 11:34
                          4. Может кто знает, как переходить к следующей карточке БЕЗ ДБНавигатора(програмно)???(на нем это кнопка Next)

                          ExpandedWrap disabled
                            DataSet->Next();
                            Цитата
                            Awe, 14.07.04, 10:34
                            У меня одна база и одна таблица! Если я делаю два DataSource(естественно сылаясь на одну базу) Он пишет тоже самое!!!

                            Такого не должно быть , потому что этого не может быть никогда.
                            Нельзя делать поля замены из одной и тойже БД (Lookup-переведи на русский язык и будет озарение)

                            Добавлено в :
                            Цитата
                            Awe, 14.07.04, 10:34
                            (МНЕ НАДО ПРОСТО ВЫВЕСТИ НА КОМБОБОКС ДАННЫЕ ОДНОГО ПОЛЯ ВСЕХ КАРТОЧЕК) (т. е. если Есть Поле Имя, а там "Вася" "Вова" "Петя") То в комбобоксе должно быть НЕ ТОЛЬКО "Вася", а все три...

                            ->Items->Add(); #9
                              Ок, всем всем всем спасибо!!!
                              Все, я уже разобрался! :)
                              Наконец-то все заработало!!!!

                              Но вот, хоть может не совсем по теме - но новый топик зачем открывать?

                              ExpandedWrap disabled
                                 float A;
                                       float B;  
                                       try{ A = B/0}
                                       catch (...) { Application->MessageBox("Деление на ноль", mnOK}

                              Я пробовал catch (EDivisionbyZero), в книге написано что "..." - самое верное! А то что в MessageBox - тоже не важно(я по памяти пишу, в проге там все ок). Проблема то в том что С++ пишет типа - эта операция не подходит для типа float, и даже не смотрит на мой catch........ как буд-то его там и не было!!!
                                Цитата
                                Awe, 14.07.04, 16:38
                                float A,B,C=0;
                                try{ A = B/C}
                                catch (...) { Application->MessageBox("Деление на ноль"," ",MB_OK);}
                                А зачем делить на 0?
                                Сообщение отредактировано: Bas -
                                  Вот как написано конкретно у меня:


                                  ExpandedWrap disabled
                                     try{mid = summary/(all-count)}
                                            catch (...) {//bla-bla-bla;}
                                     


                                  Просто в результате подсчетов знаменатель оказался нулём!
                                  И даже это не важно, ведь суть-то в том что есть ошибка, так чего он вместо того что б делать то что написано в catch - выкалывается??? :'(
                                  Сообщение отредактировано: Awe -
                                    +1 ;)
                                    Все нормально, отключи галочки Tools->Debuger Options...->Languange Exceptions
                                    Stop on Delphi and C++ Exception.
                                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                    0 пользователей:


                                    Рейтинг@Mail.ru
                                    [ Script execution time: 0.0764 ]   [ 16 queries used ]   [ Generated: 24.07.26, 09:00 GMT ]