|
Datastore Android
|
|||
---|---|---|---|
#18+
Начал выкладывать на https://github.com/shishkin1966/shishkin1966.git перенос объекта Datastore на платформу Android 2.33 - 4.* Проект Datastore представляет попытку переноса функциональности объекта Datastore проекта PowerBuilder. Текущая реализация включает в себя следующие возможности: выполнение запросов к БД поддерживающим интерфейс ODBC: UltraLiteJ, H2, SQLite через библиотеку SQLDroid переключение между БД не приводит к изменению кода получение результатов запросов отображение результатов запросов в виде объекта ListView или наборов объектов EditText редактирование данных в объекте ListView сохранение результатов редактирования в БД объявление правил проверки измененных данных в процессе редактирования выполнение запросов синхронно/асинхронно сортировка/фильтрация/поиск/добавление данных в результатах запроса. Возможно использование программных методов(наложение Comparator'ов) или динамическое изменение запроса. поддержка больших запросов(более 20 тысяч записей) через механизм курсорного чтения данных двойная буферизация выборки данных и динамическое изменение размеров буфера чтения поддержка буферов объекта Datastore: Full, Primary, Delete, Filter, Original поддержка объектов поиска и диалогов фильтрации результатов запроса использование объекта контроллер (Controller) для связывания объектов данных и визуальных объектов ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2014, 22:17 |
|
Datastore Android
|
|||
---|---|---|---|
#18+
Лучше назовите объект как-то по другому , а то САП засудить может. Datastore, Datawindow это запатентованные технологии. Идея хорошая, но мне кажется что в андроиде можно обойтись меньшим количеством классов. Мне хватило написать обертку для работы с базой ( не ORM, но жизнь облегчает ). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2014, 12:26 |
|
Datastore Android
|
|||
---|---|---|---|
#18+
Реально действующий релиз намного проще. В данной реализации уже добавлена двойная буферизация(для толстых запросов с количеством записей > 5000), независимость от БД, идеология контроллера(MVC). Немного позже я выложу объект Datawindow - простой объект связи ListView и Datastore. Плюс добавлена заглушка на обновление Datastore через HTTP запросы. Была версия Datastore полностью на HTTP запросах. Что не будет выложено: конвертор отчетов PowerBuilder 11.5 -> Powerbuilder 9 формирование многостраничных отчетов (из файлов SRD) на Android просмотр отчетов печать отчетов на bluetooth/wifi/network принтерах HP PCL/Epson/Zebra/Intermec ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2014, 12:44 |
|
Datastore Android
|
|||
---|---|---|---|
#18+
Кстати там есть весь функционал для выполнения простых запросов к БД и получения результатов в виде String/Int/Double/Map/List/List<ArrayList> ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2014, 12:50 |
|
Datastore Android
|
|||
---|---|---|---|
#18+
Просто стояла задача переноса приложения на PowerBuilder на мобильную платформу. И реально сейчас windows powerbuilder код переносится на Android почти без изменений - copy/paste. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2014, 13:01 |
|
Datastore Android
|
|||
---|---|---|---|
#18+
Oleg Shishkin, А тесты/примеры есть для проекта, чтобы посмотреть как работает? Oleg Shishkinподдержка объектов поиска и диалогов фильтрации результатов запроса А что-то я там не заменил в результате беглого осмотра обработки скобочек для задания приоритетов например - это not supported? (ну и еще много чего по выражениям). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2014, 13:35 |
|
Datastore Android
|
|||
---|---|---|---|
#18+
просто качаете,собираете проект и запускаете. В поле для поиска (Look for Customer) набираете: % - будет выбираться и отображаться весь список Customers иное - например "b" - отобразяться Customer начинающиеся на b или будет искаться запись начинающаяся на введенное нажимаете на CheckBox Filter - появляется диалог фильтрации, которая выбирает уже по вхождению сбоку есть Spinner - он тоже выбирает как фильтр Позднее обновлю проект: - c прямым редактированием поля в этом же окне и update Datastore (DS.update()) - с окном редактирования Customer - групповой EditText - редактирование и сохранение в БД Чуть позднее выложу доку по каждой функции (JavaDOC) - только вопрос на каком языке русский/английский? Наименование методов у Datastore старался сохранять (кроме обращения - DS.object.column[row] -> DS.get(row,column)/DS.set(row.column,value)/DS.get(row,column,buffer)/DS.get(row,column,buffer,boolean original)) Просто вырезаю и шлифую (отсекаю лишнее) из другого проекта (проект вероятней всего закроется) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2014, 13:53 |
|
Datastore Android
|
|||
---|---|---|---|
#18+
Локшин МаркOleg Shishkin, А тесты/примеры есть для проекта, чтобы посмотреть как работает? Oleg Shishkinподдержка объектов поиска и диалогов фильтрации результатов запроса А что-то я там не заменил в результате беглого осмотра обработки скобочек для задания приоритетов например - это not supported? (ну и еще много чего по выражениям). В поле поиска не используются регулярные выражения - клиенты вообще не представляют что это такое. Используется поиск по совпадению начала строки (like 'value%'). Для организации нормального поиска в datastore - встроен интерфейс IExpression/класс FindExpression ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2014, 14:04 |
|
Datastore Android
|
|||
---|---|---|---|
#18+
Выложил пример DBListStore (переименовал) в 2 вариантах: c объектом Controller - по методике MVC на базе обычной Activity и объекта DBListView (расширяет DBListStore и связывает с ListView) оба варианта поддерживают редактирование данных в ListView и сохранение в БД по нажатию кнопки Save Если кому интересно развитие и объяснение режимов работы - прошу в личку. Текущая версия построена на курсорном чтении данных и поддерживает толстые выборки (тестировалось на 20000 строках). Из главных особенностей - объект хранит в себе все изменения и при повторной выборке данных - накладывает их. Изменения хранятся естественно до команды update или reset. В настоящее время не выкладываю пример использования групповых EditText полей для редактирования одиночной записи. Если кому интересно - выложу. Сразу говорю - область применения объекта - это толстые и меняющиеся запросы. Для обычного (простого) связывания данных и визуальных объектов лучше использовать шаблоны DAO( http://ru.wikipedia.org/wiki/Data_Access_Object ). Объект поддерживает функциональность Datastore проекта PowerBuilder: выбирает данные из БД возможна вставка/копирование/удаление строк редактирование и сохранение данных в БД фильтрация и сортировка через БД и специальными программными способами обычный поиск по вхождению или началу, а также специальные объекты для сложного поиска в таблице Не будет выложено формирование/печать отчетов на базе SRD формата отчетов PowerBuilder 9 (совместимого с PocketBuilder 2.5) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2014, 00:33 |
|
|
start [/forum/topic.php?fid=15&msg=38569233&tid=1335351]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 237ms |
total: | 503ms |
0 / 0 |