Перейти к содержанию
Fire Monkey от А до Я

kudatsky

Пользователи
  • Постов

    10
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные kudatsky

  1. Перехожу с Delphi 10.4 на Delphi 11.3.

    Там все работало. На 11.3 компиляция и deploy идет нормально,

    run тоже работает и приложение стартует, главное окно появляется,

    разрешения запрашивает. Но дальше главное окно глухо зависает и IDE

    зависает. Если приложение вырубить и запустить вручную, без IDE,

    то оно стартует, не виснет, но сбоит по другим причинам.

     

  2. SQLite-файлы создаются на компе и разными путями (шнурок, mail, viber)

    передаются на смартфон в каталог Documents. Приложение для работы с ними

    разрабатывалось несколько лет назад для одной из предыдущих версий андроида.

    Сейчас андроид обновился до версии 13 и приложение перестало видеть эти файлы.

    Я  внес небольшие изменения, список файлов теперь создается так:

    FPermissionRead := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE);  

    PermissionsService.RequestPermissions([FPermissionRead], nil,nil);

    for S in TDirectory.GetFiles(DBDir,'*.*') do //далее по тексту

    но это не помогает.

    Видимо, проблема в ограничениях, накладываемых новыми версиями андроида.

    Что можно сделать?

     

     

  3. Мне нужно в Run Time переключать фонт с жирного на нежирный и наоборот.

    В диалоге выбора фонта в Design Time есть множество стилей:

    Light,  Licht Italic, ...  Bold и т.д.

    В свойстве TextSettings.Font.Style для Design Time я нахожу только 4 стиля:

    fsBold, fsItalic, fsUnderline, fsStrikeOut

    А где остальные ?

  4. Vitaldj>

    Я проверил предположение о том, что причина в разности версий БД. Для этого я написал

    программу, которая полностью создавала БД нужной мне структуры  через SQL запросы

    и заполняла её тестовыми данными. Эту программу я запустил на смартфоне.

    Всё стало работать нормально. Вы были правы. Большое спасибо.

  5. В 04.05.2019 в 18:09, #WAMACO сказал:

    Это все происходит из-за разницы версий SQLite, поэтому обменивайтесь бэкапами, тобишь после того, когда заполнили данные на смартфоне и собираетесь переписать на РС, сначала забэкапьте, потом копируйте бэкап и на РС разверните. Также назад.

    Ошибки не будет. 

    Как я понял из документации по Firedac, backup-файл SQLite -это просто копия исходной БД,

    полученная с 'осторожностью'. Эту фичу я сделал,  но никакого развёртывания не требуется.

    Backup как любой SQLite-файл прекрасно читается и под андроид и под Windows.  Да и

    компонента SQLiteRestore в Firedac нет.

  6. 22 часа назад, Vitaldj сказал:

    Просто sqlite база данных не относится к клинт-серверным и значит не подразумевается такое использование. Только в монопольным режиме. Тем более, если ты использует firedac, а она вроде бы как использует для коннекта библиотеку. Так вот, не факт, что при дисКоннекте, закрываются все токены БД. Вот у тебя и ошибка. БД думает, что с ней еще работают клиент, ведь по логике БД он должен быть только один. 

    Все запросы к БД на смартфоне выполняются так:

    - создаётся соединение компонентом TFDConnection

    - стартует транзакция

    - выполняется запрос

    - подтверждается транзакция

    - разрывается соединение

    т.е. после каждого запроса БД освобождается.

    Как БД после этого может думать, что с ней ещё работают - непонятно.

    Я для эксперимента пробовал стартовать транзакцию и выполнить запрос

    не открывая БД - ничего не получается.

  7. В 01.05.2019 в 11:45, Vitaldj сказал:

    Это как? Поподробнее об этом...

    Есть два приложения, работающие с одной и той же БД SQLite - десктопное и мобильное.

    Обмен базами данных между ними происходит через USB. Сначала  десктопное приложение

    загружает инфу в БД, через USB БД перекачивается в смартфон, в смартфоне заполняется

    и передается через USB обратно на комп.

    БД на смартфоне помещаю в каталог Documents. Его адрес получаю функцией

    TPath.GetSharedDocumentsPath() из ioUtils.

  8. De

    В 30.04.2019 в 05:42, Vitaldj сказал:

    Какие компоненты используешь? И каким это образом ты ее обратно на комп тащишь??? 

    Delphi, fmx, Firedac. На комп тащу так же как и на смартфон - через USB.

    Я эту проблему вроде как решил, только всё как-то странно. Нужно перегрузить смартфон.

    Другое решение - сделать backup компонентом FDSQLiteBackup. Такое впечатление,

    что после завершения приложения базу данных что-то ещё удерживает.

  9. SQLite база данных создаётся на РС и частично заполняется.

    Далее через USB - кабель переписывается на смартфон и там окончательно заполняется.

    Всё работает замечательно. Заполненную БД переписываю обратно на РС и пытаюсь открыть.

    Клиентская программа пишет : "database disk image is malformed". 

    SQLite Studio её тоже не открывает.

    Где тут собака порылась ?

×
×
  • Создать...