|
0 / 0 / 0
Регистрация: 06.09.2007
Сообщений: 5
|
|
JDBC: как сделать scrollable ResultSet? - ругается, не дается26.09.2007, 23:34. Показов 3208. Ответов 7
Метки нет (Все метки)
Hi All!
Вводная: Connection к Oracle, ч/з JDBC-ODBC мост. хочу поиметь scrollable ResultSet с запроса strSQL = 'SELECT w.TWork, p.TParam, p.Value FROM Test_Work w, Test_Param p WHERE (w.ID_Test_Point = 2) AND (p.ID_Test_Work = w.ID_Test_Work)' делаю ... Statement stmt = con.createStatement(ResultSet.TYPE_SCROL L_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs = stmt.executeQuery(strSQL); ... и эта бяка при выполнении дает: java.sql.SQLException: [Microsoft][ODBC driver for Oracle]Cannot use Keyset-driven cursor on join, with distinct clause, union, intersect or minus or on read only result set; CONCUR_UPDATABLE в createStatement, and/or con.setReadOnly(false) - не помогает. Я понимаю, что я чего-то не понимаю, но все же: Вопрос: можно ли поиметь scrollable ResultSet с такого запроса, и если да, то как? Oracle JDBC driver не предлагать. Но если очень хочется - предлагать, но ласково ![]() P.S. кстати, если кто знает, какое соотношение по скорости у Oracle JDBC (OCI | Thin) driver и моста JDBC-[ODBC driver for Oracle]?
0
|
|
| 26.09.2007, 23:34 | |
|
Ответы с готовыми решениями:
7
JDBC: ResultSet MS SQL driver type 4 ошибка: [Microsoft][SQLServer JDBC Driver]No ResultSet set was produced.
|
|
mishgun
|
||||||
| 27.09.2007, 01:15 | ||||||
|
скорость у pure jdbc-driver выше чем у jdbc-odbc моста.И вообще весь навороченный мир предлагает использовать вендоровские драйвера а мост только когда работаешь с Акссесом.И потом что ты имеешь ввиду под scrollable ResultSet?Тебе что надо что бы он срускался по рядам?
Тогда пиши так
|
||||||
|
0 / 0 / 0
Регистрация: 06.09.2007
Сообщений: 5
|
||||||
| 27.09.2007, 12:25 [ТС] | ||||||
|
>И потом что ты имеешь ввиду под scrollable ResultSet? Тебе что надо что бы он спускался по рядам?
Хе, нет, конечно. Нужно, что бы он _еще_и_поднимался_. Т.е. чтобы проскролировав ResultSet до конца можно было сказать ему например .beforeFirst(), не опасаясь, что он пошлет тебя на yandex. ![]() A default ResultSet object is not updatable and has a cursor that moves forward only. Это когда делаешь просто
Вот. На счет драйверов: - только что удалось завести Oracle JDBC Thin драйвер, проверю, нет ли у него этих граблей + протестирую, кто быстрее.
0
|
||||||
|
AiK
|
|
| 28.09.2007, 01:06 | |
|
А чем не устраивает многоуважаемого дона вариант выгребания резалтсета в вектор и перемещения по последнему?
|
|
|
0 / 0 / 0
Регистрация: 06.09.2007
Сообщений: 5
|
|
| 29.09.2007, 10:40 [ТС] | |
|
a. скоростью
b. несоответствием условию задачи. Мы тут в детство вдарились - этими самыми мереямся ... скоростями.. Надо, насколько это возможно, написать код, идентичный тестовому ASP'шному, и оценить скорость выполнения.. Кроме того, раз сущетвует возможность делать скролябле-ResultSetы, почему бы не научиться их делать?.. дон Румата - дону AiK
0
|
|
|
AiK
|
|
| 29.09.2007, 14:52 | |
|
В таком случае надо читать документацию к драйверу.
В случае с JdbcOdbc мостиком - доку к ODBC дайверу. 90 к 10, что он не поддерживает скроллабле резалтсеты. Да, открой тайну золотого ключика - зачем понадобилось возвращатся? |
|
|
0 / 0 / 0
Регистрация: 06.09.2007
Сообщений: 5
|
|
| 29.09.2007, 16:16 [ТС] | |
|
Иванова не дура?.. Ну извините.. В смысле, [Microsoft][ODBC driver for Oracle] не поддерживает?? 8 [ ]
Про тайну золотого ключика - Вопрос скорее должен звучать так: 'зачем это понадобилось тому, кто писал ASP-шный пример?'. А в примере производиться хитрый расчет. Считается в два прохода. В первый проход считаеются некоторые суммарные показатели, которые используются при расчете других показателей во втором прогоне. Причем в одной итерации (в обоих проходах), в зависимости от значений параметров (из того же резалтсета), могут использоваться разные функции. В общем случае пытаться что-нить приводить к виду, в котором все считается за один проход - себе дороже (ему дороже, мне надо только тупо сделать то же, но на JSP ). А если добавить необходимость апдэйтить табличку результатами, получаемыми во время второго прохода, то, по-моему, без второго прохода вообще не обойтись.. (- последнее немного путанно, но, я думаю, понятно, что имел ввиду).Вот.
0
|
|
|
AiK
|
|
| 29.09.2007, 17:40 | |
|
Я не знаю, причём тут Иванова (мне Петрова больше нравится
), но вот что об этом пишут в MSDN:When you try to use table aliases in SELECT statements with the Microsoft Oracle ODBC driver and you are using the Keyset cursor type, you receive the following error: [Microsoft][ODBC driver for Oracle]Cannot use Keyset-driven cursor on join, with union, intersect or minus or on read only result set' CAUSE When the driver re-writes the SQL statement to send to the Oracle server it doesn't create the correct syntax. Internally, Oracle returns the following error message: ORA-00964: table name not in FROM list In turn, The Microsoft Oracle ODBC driver maps that error message to the message listed in the SYMPTOMS section of this article. RESOLUTION The solution depends on the nature of the application. If the application needs to use Keyset cursors, it may not use table aliases. If the application must use table aliases, the cursor type must be changed to FORWARD-ONLY or STATIC. Читать доки надо (хоть изредка)
|
|
| 29.09.2007, 17:40 | |
|
Помогаю со студенческими работами здесь
8
IceSqueez ругается с JDBC Jdbc и SQlite. Как лучше сделать? Как сделать подключение драйвера jdbc в netbeans? Как сделать inner join в JDBC при работе с MySQL ? Java + Access bez JDBC-ODBC a srazu 4erez JDBC Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|