|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
Здравствуйте. Есть таблица (к примеру asd(id, name, pdate, rdate, pvid)). В блоке 3 поля DateStart, DateEnd, Vid -условия для pdate, rdate, pvid и таблица. Есть кнопка, которая должна загрузить все из asd с условием pdate>:Block.DateStart rdate<:Block.DateEnd pvid=:Block.Vid Делаю триггер на кнопку - WHEN-BUTTON-PRESSED DECLARE CURSOR EE IS SELECT name, pdate, rdate, pvid FROM asd WHERE pdate>:Block.DateStart AND rdate<:Block.DateEnd AND pvid=:Block.Vid; BEGIN OPEN EE; LOOP FETCH EE INTO :BLOCK.name, :BLOCK.pdate, :BLOCK.rdate,:BLOCK.pvid; EXIT WHEN EE%NOTFOUND; END LOOP; CLOSE EE; END ; Проблема в том, что вставляется последняя строка. Подскажите, где я что либо не так сделал, oracle знаю мало. Как сделать EXECUTE_QUERY c условием? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2014, 19:48 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
ramm9999, ну так почитай книжки. что за мода пошла, хвататься за скальпель не выучив даже латынь. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2014, 21:06 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
Лоботомик, спасибо за ответ. Читаю, но времени оч мало. Да и сколько не читаю-каша в голове. Я понять не могу - почему не вся таблица выходит, а последняя строка. Дебагерром посмотрел курсор - вся инфа есть в курсоре, но как ее всю вывести... И как сделать EXECUTE_QUERY c условием? Как устроен EXECUTE_QUERY? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2014, 22:28 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
Можно, конечно, сделать "Запрос"-->"Ввод", но надо через нажатие кнопки. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2014, 22:31 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
ramm9999, У тебя с курсора фетчаться все строки по одной в твои переменные, соответственно последней отфетчиться последняя строка. Формс не знаю, в pl/sql можно FETCH BULK COLLECT INTO в коллекцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2014, 23:01 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
ramm9999 DECLARE CURSOR EE IS SELECT name, pdate, rdate, pvid FROM asd WHERE pdate>:Block.DateStart AND rdate<:Block.DateEnd AND pvid=:Block.Vid; BEGIN go_block(:BLOCK); for x in ee loop create_record; :BLOCK.name:=x.name; :BLOCK.pdate=x.pdate; :BLOCK.rdate:=x.rdate; END LOOP; commit; END ; ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2014, 09:32 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
_мод, commit лишний. Модератор: Тема перенесена из форума "Oracle". ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2014, 10:12 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
Спасибо, все понял,помогло. В свободное время поищу еще способ, найду-напишу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2014, 12:12 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
ramm9999Как сделать EXECUTE_QUERY c условием? условие задается в свойствах блока ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2014, 14:07 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
2 ramm9999 На всякий случай, спрошу - вы уверены, что вам нужна именно такая реализация? Стандартный блок в Forms замечательно поддерживает выборки и условия отбора по ним без этого вашего "велосипедного" кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2014, 15:14 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
Нет, не уверен. Насчет "велосипедности" соглашусь - так как пока вкурил более-менее оракл. Реализация нужна через кнопку, а не в колонке вводить условие выборки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2014, 16:30 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
Ну, тогда, RTFM (concepts по дата-блокам, set_block_property, query_data_source_name, default_where, onetime_where и т.п.) Строить блок, как у вас, никто не запрещает - дело ваше... :) Просто это, так сказать, не совсем по формсовскому фен-шую. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2014, 17:24 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
2 ramm9999 Если данные в блоке не нужно будет редактировать, то... Свойство блока QUERY DATA SOURCE TYPE устанавливаете в значение FROM... В QUERY DATA SOURCE NAME пишете запрос В DEFAULT WHERE - условие (при необходимости можно изменять динамически через вызов SET_BLOCK_PROPERTY('БЛОК', DEFAULT_WHERE, 'УСЛОВИЕ')) На кнопку вешаете триггре GO_BLOCK('БЛОК'); DO_KEY('EXECUTE_QUERY'); Есть еще куча вариантов реализации данной задачи, но это самый простой (ИМХО). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 08:20 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
Спасибо, я уже понял как делать. Именно так и сделал. Стыдно, конечно, за тот код, который сперва хотел использовать. Еще вопрос знатокам. Есть поле, по которому идет фильтрация, pvid. пусть он принимает 3 значения ('aaa','bbb','ccc')-потом может быть больше путем update. Если поле pvid заполнено-то фильтруем по этому значению, если не заполнено-то берем по всем значениям. Как это сделать в oracle forms? Пока мысль ("велосипедность") - сделать аггрегацию строк в одну (через "sys_xmlagg(xmlelement..."), затем применить REGEXP_LIKE. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 10:20 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
эмммм....DEFAULT_WHERE? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 10:24 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
У тебя одно текстовое поле? Как туда пользователь будет вводить значения? Может тебе скинуть книжку по формсам на русском языке? Ты в состоянии конструировать на ходу условие поиска любым удобным для тебя видом, можешь собрать как IN (), можешь запихнуть в массив и обращаться к нему как к таблице, можешь как предложил - все приемлемые. И если не секрет, что за проект, новый или старый? Мне кажется что мы (формсовики) уже сильно вымирающий вид. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 12:54 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
предлагаю заценить велосипед: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
если пользователь ничего не вводит, то выводится все. Прошу прокомментировать, направить на путь правильный. Чтобы не плодить потом "говнокод". Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2014, 11:53 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
вместо currency cur в самом начале ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2014, 11:54 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
Книжку посоветуйте-хороший совет не вредит. Проект тестовый. Я не формсовик-хочу влиться в oracle. До этого с T-SQL был знаком. Пользователь может фильтровать по дате (2 поля -between между датами) и текстовому полю. Если эти поля пустые - то выводится все. Можно, конечно, сделать чтобы пользователь выбирал из списка значений, но я не стал этого делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2014, 12:13 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
Не сохраняется учебник, размер больше Скидывай почту ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 10:37 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
Скинул ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 14:53 |
|
Из курсора в таблицу на форме
|
|||
---|---|---|---|
#18+
ramm9999, Формсы - это не делфи, васик или ява. В формсах за тебя уже вве сделано для работы с бд, нало только знать. При этом надо понимать, что формсы - это не язык программирования, а инстркъумент, со своею логикой работы, а пл/скл при этом выполняет лишь вспомогательную роль. Так что учи сначала, делай потом. Быстро, на лету не получится. Зато потом можно клепать формочки для работы имеено с бд раза в 3 быстрее, чем на лругих технологиях. Единственное ограничение , так как оракел не развивает технологию эту, то клиент и пл/скл остались на уровне оракл 8, поэтому, если надо какие-то новые фичи, то делай вью или пакеты в базе, а не в формсах. А из формсов просто дергай их. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 15:35 |
|
|
start [/forum/topic.php?fid=51&fpage=10&tid=1878234]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 191ms |
0 / 0 |