|
Проблема с Oracle+ADO.NET+Crystal Report
|
|||
---|---|---|---|
#18+
Добрый день. Столкнулся со следующей проблемой. Есть база на Oracle 11.2, в ней есть табличная функция, а точнее - функция в составе пакета, которая возвращает набор данных. Делаю клиентское приложение к этой базе на Windows Forms+ADO.NET. Мне нужен параметризированный запрос, в котором я этой функции передаю параметр, а она мне возвращает данные. Если я пишу такой запрос в PL/SQL Developer, то все гуд: Код: plsql 1.
'1=1' - это условие фильтрации, единственный строковой параметр функции. Но когда я в приложении WindowsForms по этому запросу с помощью мастера пытаюсь создать DataTable - натыкаюсь на приколы. В схеме Right Click - Add - Table Adapter - Use SQL Statement - пишу вышеупомянутый запрос, хоть с константой '1=1', хоть с параметром :MY_FILTER_CONDITION - натыкаюсь на ошибку парсинга SQL-запроса: Generated SELECT Statement Error in FROM clause: near 'TABLE' Unable to parse query text. Если я пытаюсь создать набор данных, выбирая пункт "use existing stored procedure", то дальше мастер мне не предлагает варианта с типом возвращаемого значения - набор данных. Получается, с помощью мастера я не могу создать типизированный набор данных, используя табличную функцию. Я обошел это, используя нетипизированный набор данных. Мой запрос выполняется, данные возвращаются. Но я не могу привязать к этому набору мой отчет на Crystal Reports. В дизайнере отчетов можно добавлять в отчет поля только из уже созданных типизированных наборов, а не с динамических (возможно, я ошибаюсь, но мой поиск варианта "добавить поле без указания источника данных" не увенчался успехом). Я опять нашел обходное решение - создал DataTable, указав список одноименных полей вручную, натравил на него мой отчет, и потом следующим кодом запихнул туда данные из моего динамического датасета: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
Но это решение корявое, т. к. полей много, и создавать их ручками - дело неблагодарное. Получается, что либо поддержка оракла в среде VisualStudio недоделана, либо я чего-то не знаю. Посоветуйте плиз, как решить эту проблему. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2017, 21:52 |
|
Проблема с Oracle+ADO.NET+Crystal Report
|
|||
---|---|---|---|
#18+
cybert, Уверен что хранимку нельзя заменить вьюхой? Уверен что в отчётнике нельзя внутри записать select ..... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2017, 07:18 |
|
Проблема с Oracle+ADO.NET+Crystal Report
|
|||
---|---|---|---|
#18+
cybert. В дизайнере отчетов можно добавлять в отчет поля только из уже созданных типизированных наборов, а не с динамических Я этот отчётник не знаю. Странно что в него нельзя добавить select .... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2017, 07:22 |
|
Проблема с Oracle+ADO.NET+Crystal Report
|
|||
---|---|---|---|
#18+
cybertПолучается, что либо поддержка оракла в среде VisualStudio недоделана, либо я чего-то не знаю. Если у тебя параметр простое where, то оберни храниику вьюшкой. ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2017, 07:24 |
|
Проблема с Oracle+ADO.NET+Crystal Report
|
|||
---|---|---|---|
#18+
Хранимку обернуть вьюшкой - наверное не вариант. Насколько я знаю, в оракле нет параметризированных вьюшек, а накладывать условие WHERE на вьюшку - тоже не вариант, т.к. в хранимке вытягиваются нужные мне данные из огромных таблиц, находящихся в другой базе. По поводу селекта внутри отчета - спасибо за подсказку, покопаю в этом направлении. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2017, 09:26 |
|
Проблема с Oracle+ADO.NET+Crystal Report
|
|||
---|---|---|---|
#18+
cybertнакладывать условие WHERE на вьюшку - тоже не вариант, смешно. ))) Ты счас доказываешь, что хранимка быстрее select from. Срочно подумай. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2017, 10:02 |
|
Проблема с Oracle+ADO.NET+Crystal Report
|
|||
---|---|---|---|
#18+
cybertнаходящихся в другой базе. Материализованные вьюхи как раз для этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2017, 10:04 |
|
Проблема с Oracle+ADO.NET+Crystal Report
|
|||
---|---|---|---|
#18+
Petro123 Материализованные вьюхи как раз для этого в моем случае материализовывать большие таблицы, которые постоянно обновляются, нет смысла. Petro123 cybert накладывать условие WHERE на вьюшку - тоже не вариант, смешно. ))) Ты счас доказываешь, что хранимка быстрее select from. Срочно подумай. я этого не говорил, с чего Вы взяли? Я лишь имел в виду, что в моем случае мою хранимку вьюшкой не заменишь, и одним селектом не оформишь. Да это и не суть вопроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2017, 12:01 |
|
|
start [/forum/topic.php?fid=17&msg=39541333&tid=1349250]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
185ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 299ms |
0 / 0 |