На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
  
> ComboBox , Как с помощью SQL запроса к бд Oracle сформировать выпадающий список на базе ComboBox - а
    Как с помощью SQL запроса к бд Oracle сформировать выпадающий список на базе ComboBox - а???
      очищаешь Combobox.
      становишься на первую запись запроса.
      циклом все загоняешь в combobox.
      C:\Program Files\CodeGear\Delphi for PHP\2.0\vcl\samples\ComboBox\ - здесь пример через js
        Цитата Prosto_Coder @
        Как с помощью SQL запроса к бд Oracle сформировать выпадающий список на базе ComboBox


        заполнить из базы Combobox:
        ExpandedWrap disabled
                         function GetListAuto()
                          {
           
                          $query ='select Car_RegNum from car order by Car_RegNum';
                          GetDBModule()->TempQuery->close();
                          GetDBModule()->TempQuery->SQL = $query;
                          GetDBModule()->TempQuery->open();
                          GetDBModule()->TempQuery->first();
                          $this->ComboBox1->Clear();
                          while (!GetDBModule()->TempQuery->eof)
                            {
                            $this->ComboBox1->AddItem(GetDBModule()->TempQuery->Car_RegNum);
                            GetDBModule()->TempQuery->next();
                            }
           
                          }
          Косяк пошел:
          Fatal error: Call to undefined function GetDBModule()
          Сообщение отредактировано: Prosto_Coder -
            да
            здесь у меня функция возвращала имя модуля где находится TempQuery

            если у тебя TempQuery в этом же модуле
            то правильно так:

            ExpandedWrap disabled
                             function GetListAuto()
                              {
               
                              $query ='select Car_RegNum from car order by Car_RegNum';
                              $this->TempQuery->close();
                              $this->TempQuery->SQL = $query;
                              $this->TempQuery->open();
                              $this->TempQuery->first();
                              $this->ComboBox1->Clear();
                              while (!$this->TempQuery->eof)
                                {
                                $this->ComboBox1->AddItem($this->TempQuery->Car_RegNum);
                                $this->TempQuery->next();
                                }
               
                              }


            ну или для унивесального заполнения

            ExpandedWrap disabled
                             function GetListAuto($TempQuery,$ComboBox)
                              {
               
                              $TempQuery->close();
                              $TempQuery->open();
                              $TempQuery->first();
                              $ComboBox->Clear();
                              while (!$TempQuery->eof)
                                {
                                $ComboBox->AddItem($TempQuery->xName);
                                $TempQuery->next();
                                }
               
                              }
               
              вызываем так
               
              $this->TempQuery->SQL = 'select Car_RegNum as xName from car order by Car_RegNum';
              GetListAuto($this->TempQuery,$this->ComboBox1);
              А в принципе-то можно в D4PHP связать Combobox с запросом к БД? В инспекторе объекта есть поля DataSource и DataField. Достаточно ли их только указать? У меня не получилось. Запрос к БД работает нормально, проверял с помощью DBGrid'a. Но Combobox не заполняется. Заранее спасибо.
                у меня не получилось
                по этому использовал функцию
                ничем не хуже

                загляни в исходник компонента
                есть ли там использование свойств подключения к DataSource и DataField

                но в этом сообщнии Компоненты для DelphiForPhp (сообщение #2347965) есть ссылка на такой компонент
                и он работает

                а можеш написать свой компонент
                всего то эту функция туда вставить...
                Сообщение отредактировано: vicis -
                  Как обратиться к полю запроса?

                  Ругается:
                  Application raised an exception class EPropertyNotFound with message 'Trying to access non-existant property OracleQuery->xName in oracle.inc.php, line 1151.'

                  Добавлено
                  Все, всем спасибо получилось.
                  Я немного доработал универсальную, предложенную vicis-ом

                  ExpandedWrap disabled
                       public function GetList($TempQuery,$ComboBox,$DataField)
                                    {
                     
                                    $TempQuery->close();
                                    $TempQuery->open();
                                    $TempQuery->first();
                                    $ComboBox->Clear();
                                    while (!$TempQuery->eof)
                                      {
                                      $ComboBox->AddItem($TempQuery->$DataField);
                                      $TempQuery->next();
                                      }
                     
                                    }



                  вызываем так

                  ExpandedWrap disabled
                    $this->TempQuery->SQL = 'select Car_RegNum as xName from car order by Car_RegNum';
                    GetListAuto($this->TempQuery,$this->ComboBox1, Car_RegNum );


                  Добавлено
                  Вопрос решен
                  Сообщение отредактировано: ViktorXP -
                    Цитата Prosto_Coder @
                    вызываем так

                    $this->TempQuery->SQL = 'select Car_RegNum as xName from car order by Car_RegNum';
                    GetListAuto($this->TempQuery,$this->ComboBox1, Car_RegNum );

                    наверное всё же так (для последнего варианта)
                    ExpandedWrap disabled
                      $this->TempQuery->SQL = 'select Car_RegNum from car order by Car_RegNum';
                      GetList($this->TempQuery,$this->ComboBox1, 'Car_RegNum' );
                    Сообщение отредактировано: vicis -
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0377 ]   [ 15 queries used ]   [ Generated: 27.04.24, 00:08 GMT ]