Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.16.51.3] |
|
Сообщ.
#1
,
|
|
|
Как с помощью SQL запроса к бд Oracle сформировать выпадающий список на базе ComboBox - а???
|
Сообщ.
#2
,
|
|
|
очищаешь Combobox.
становишься на первую запись запроса. циклом все загоняешь в combobox. C:\Program Files\CodeGear\Delphi for PHP\2.0\vcl\samples\ComboBox\ - здесь пример через js |
Сообщ.
#3
,
|
|
|
Цитата Prosto_Coder @ Как с помощью SQL запроса к бд Oracle сформировать выпадающий список на базе ComboBox заполнить из базы Combobox: 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(); } } |
Сообщ.
#4
,
|
|
|
Косяк пошел:
Fatal error: Call to undefined function GetDBModule() |
Сообщ.
#5
,
|
|
|
да
здесь у меня функция возвращала имя модуля где находится TempQuery если у тебя TempQuery в этом же модуле то правильно так: 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(); } } ну или для унивесального заполнения 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); |
Сообщ.
#6
,
|
|
|
А в принципе-то можно в D4PHP связать Combobox с запросом к БД? В инспекторе объекта есть поля DataSource и DataField. Достаточно ли их только указать? У меня не получилось. Запрос к БД работает нормально, проверял с помощью DBGrid'a. Но Combobox не заполняется. Заранее спасибо.
|
Сообщ.
#7
,
|
|
|
у меня не получилось
по этому использовал функцию ничем не хуже загляни в исходник компонента есть ли там использование свойств подключения к DataSource и DataField но в этом сообщнии Компоненты для DelphiForPhp (сообщение #2347965) есть ссылка на такой компонент и он работает а можеш написать свой компонент всего то эту функция туда вставить... |
Сообщ.
#8
,
|
|
|
Как обратиться к полю запроса?
Ругается: Application raised an exception class EPropertyNotFound with message 'Trying to access non-existant property OracleQuery->xName in oracle.inc.php, line 1151.' Добавлено Все, всем спасибо получилось. Я немного доработал универсальную, предложенную vicis-ом public function GetList($TempQuery,$ComboBox,$DataField) { $TempQuery->close(); $TempQuery->open(); $TempQuery->first(); $ComboBox->Clear(); while (!$TempQuery->eof) { $ComboBox->AddItem($TempQuery->$DataField); $TempQuery->next(); } } вызываем так $this->TempQuery->SQL = 'select Car_RegNum as xName from car order by Car_RegNum'; GetListAuto($this->TempQuery,$this->ComboBox1, Car_RegNum ); Добавлено Вопрос решен |
Сообщ.
#9
,
|
|
|
Цитата Prosto_Coder @ вызываем так $this->TempQuery->SQL = 'select Car_RegNum as xName from car order by Car_RegNum'; GetListAuto($this->TempQuery,$this->ComboBox1, Car_RegNum ); наверное всё же так (для последнего варианта) $this->TempQuery->SQL = 'select Car_RegNum from car order by Car_RegNum'; GetList($this->TempQuery,$this->ComboBox1, 'Car_RegNum' ); |