SAPфорум.RU
https://sapboard.ru/forum/

Произвольный SQL запрос?
https://sapboard.ru/forum/viewtopic.php?f=91&t=81904
Страница 1 из 1

Автор:  Kern [ Вс, апр 07 2013, 08:36 ]
Заголовок сообщения:  Произвольный SQL запрос?

Мне не понятно как запустить произвольный SQL запрос, заданный текстовой строкой, на базе данных устройства. В среде Unwired platform 2.1.3.
Существующие варианты не удовлетворяют наши потребности:
Возможность конструирования запроса составными частями, но при этом нельзя выполнить вычисления в части select.
Возможность выполнения строковых запросов, но при этом необходимо, чтобы возврат строго соответствовал одному из MBO существующих объектов.


В документации описан только такой способ приближенный к динамическим запросам:
Query query = new Query();
query.select("x.fname, x.lname, x.surrogateKey, x.id, x.company_name");
query.from("Customer", "x");
....
QueryResultSet rs = SUP101DB.executeQuery(query);

запуск произвольного текстового СКЛ я нашел в сгенерированном коде в виде (немного порезанный вид) :
com.sup101.android.mbo.intrnl.CustomerMetaData META_DATA = new com.sup101.android.mbo.intrnl.CustomerMetaData();
com.sybase.sup.client.persistence.EntityDelegate DELEGATE = com.sybase.sup.client.persistence.DelegateFactory.createEntityDelegate("Customer", com.sup101.android.mbo.Customer.class, "SUP101.Customer", META_DATA, com.sup101.android.mbo.SUP101DB.getDelegate());
String _selectSQL = "SELECT x.a .... FROM sup101_1_0_customer x WHERE ... AND x.a = ?";
....
com.sup101.android.mbo.Customer customer = (com.sup101.android.mbo.Customer) DELEGATE.findWithSQL(_selectSQL, dts, values, ids, com.sup101.android.mbo.Customer.class);

то есть можно выполнить запрос но строго в терминах MBO. Попытки изменить число колонок приводят к Exception.



Чтобы было понятно что мне требуется, проще всего представить что мне надо выполнить текстовой запрос вида:
String mySQL = "SELECT 2+2, id*99 FROM customer WHERE 2>1 AND id<99999";
QueryResultSet rs = ?????????

Как мне его выполнить?

Автор:  Mobile [ Пн, апр 22 2013, 10:33 ]
Заголовок сообщения:  Re: Произвольный SQL запрос?

ну вообще можно попробовать взять мобильный бизнес объект, перейти на закладку object queries.
Там нажать сгенерировать запрос, а потом в поле query definition вписать что хотите. Поставить return result set, чтобы на возвращаемую струткуру жестко не завязываться и вперед.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/