-
Постов
163 -
Зарегистрирован
-
Посещение
-
Победитель дней
19
Сообщения, опубликованные mazayhin
-
-
4 минуты назад, x11 сказал:
да, проверил - подтверждаю
Ну дак это и подтверждать не надо, все и так это делают регулярно
-
-
14 минуты назад, x11 сказал:
Нет, Среда ругается и пишет, что приложение уже запущено :). С Виндой у меня опыта побольше.
Ну правильно, если студия хочет при запуске открыть на чтение, то не запустится. Если не пересобирать (build) то все запустится.
13 минуты назад, x11 сказал:И исполняемые so-библиотеки перезапишутся и уже новые запустятся?
а как же:
?
Библиотеки самого приложения и сервисов, если есть, перезапишутся точно. Иначе тогда не получалось бы делать обновление. На счет подключенных, сейчас не скажу, у нас в проектах используются сторонние so, надо будет посмотреть.
Если в настройках сделать сброс, то развернутые из ассетов фалы удалятся, и при следующем запуске приложения, развернутся вновь. Так же потрет все, что приложение разместило по пути TPath.GetDocumentsPath.
Если сделать сброс, то удалятся как раз те 2,07 мб, которые записал мне убер
-
Посмотрите здесь описпние и возможные прототипы функции.
http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Net.HttpClient.THTTPClient.BeginPost
-
На устройство попадает все, что указано в deployment. Но, при развертывании новой версии приложения, без разницы, через adb или маркет, эти файли не перезаписываются, только разворачиваются новые. Что вполне логично и являеися нормальным поведением системы.
Винда даст запустить сколько угодно копий приложения, если это руками не ограничить. Из студии тоже получится, если не пересобирать заново.
Если нужно обновить имеющиеся ресурсы, смотрите в сторону System. StartupCopy, он за это отвечает, ну или используйте AssetManager.
Так же приложение можно не удалять полностью, а в настройках "стереть данные" перед запуском
Но для работы с БД, лучше сразу продумать логику ее обновления в коде. Если данные в базе не важны для пользователя, то возможно, лучшим вариантом будет создавать БД программно. Если данные нужны, проверять версию БД и в коде ее обновлять. Откуда брать обновление-вам решать, или с сервера, или из ресурсов, или из assets выдергивать.
-
Если сервис называется MainSvc, то вызов д.б.
TAndroidHelper.StringToJString('com.embarcadero.services.MainSvc')
Ну и в настройках проекта соответственно
-
Только лучше использовать THTTPClient
-
18 часов назад, x11 сказал:
Ну и правильно, удалить то удалили, а зависимости не разрешили.
Из исходника в свой юнит или куда еще, надо перенести именно те методы, дергающие api, которые нужны для решения задачи.
Завтра конкретнее посмотрю
-
45 минут назад, Волох Виталий сказал:
Звучит как план... Спасибо, а можно хоть небольшой примерчик запрос-ответа и название компонента...
ну, что бы понять в чем копаться, а то пока что при слове HTTP запрос вообще теряюсь...
И по поводу google Firebase было бы здорово получить пару напутствий... как пошагово создать там всё что нужно, подключиться и перекидывать информацию....
По HTTP почитайте http://docwiki.embarcadero.com/RADStudio/Berlin/en/Using_an_HTTP_Client
Так же вроде есть примеры в поставке студии
По Firebase так же есть документация от Google, вам надо смотреть все что имеет отношение к Rest а не Android (https://firebase.google.com/docs/reference/rest/database/)
Ну и собственно https://firebase.google.com/
-
Попробуйте сделать Adapter.ResetView, может поможет
-
-
2 часа назад, Letter сказал:
Программой db browser for Sqlite установил пароль на базу данных.
В fdconnection.params.password добавил пароль которым запоролил базу, но при подключении,
выдает ошибку " Cipher: Invalid password is specified or DB is corrupted "
Пароль тот, же и база данных без пароля открывается.
Задача такая, установить пароль на бд и при открытии в программе распаролить, можно это
средствами fdconnection на delphi xe 10.1 ?Официальная цитата Embarcadero:
ЦитатаThe encrypted database format is not compatible with other similar SQLite encryption extensions. This means that you cannot use an encrypted database, encrypted with non-FireDAC libraries. If you need to do this, then you have to decrypt a database with an original tool and encrypt it with FireDAC.
Смотрите http://docwiki.embarcadero.com/RADStudio/XE5/en/Using_SQLite_with_FireDAC
Создавайте БД без шифрования, а затем, в приложении ее шифруйте штатными инструментами FDSQLiteSecutiry http://docwiki.embarcadero.com/Libraries/Tokyo/en/FireDAC.Phys.SQLite.TFDSQLiteSecurity
Перед выгрузкой, если необходимо для тестирования и проверки данных, снимайте шифрование и выгружайте. Тогда сможете открыть любым внешним средством.
Да, и это не баг-фича студии, это официальное поведение
-
-
Дак мы про ddos тут вроде и не говорили. Эта атака подразумевает отказ в обслуживании по каким то причинам. А не получение доступа к данным. Да, SSH много где открыт, и у нашей компании в том числе, да, и на стандартном порту. Просто доступ по ключам, да fail2ban работает. Это из другого русла, вообще.
Может все же я, да и мои коллеги, чего то не понимаем, а может это просто уже почти суббота, да или последствия морозов (думаю, OnePeople меня поймет), но все же.
Да и детей за границей еще не запретили называть Ваня Брось Таблицу
-
8 минут назад, x11 сказал:
Порт к базе мускула, например, открыт, выставлена база несколько лет уже наружу. Пока норм.
Ну т.е. я не совсем корректно написал. Не всегда будут проблемы. Хотя - это не есть хорошо.
С другой стороны, все же выставляют наружу тот же http или http+API.
Если будет целенаправленная атака, то вы хоть что там закрывайте, всё равно будут проблемы.
Это да, похвально, что никто не ломился.
Дак смысл в том и есть, что делая 2 звено, сервер приложений, тобишь, мы сами решаем, куда давать доступ, зачем и к кому. Одновременно стараясь свести к минимуму риски порч наших систем, будь то ос, бд или логика системы.
Помимо этого, 2 звено позволяет исправить ошибки, допущенные при проектировании, либо внести изменения в логику работы системы. Либо, если интерфейс строим динамически, обновлять на лету клиентов.
А так да, с первого взгляда, конечно, легче сразу в базу лезть, "все сайты в интернете так работают", а на деле то нет..
А про http и http+api так и не понял. Обычно, http просто является транспортом для общения клиента и СП, ну и избавляет от создания доп. логики. Не охото заморачиваться с транспортом, то http/s, websoket, хотите-да хоть на голых сокетах, с msdn или man в охапку!
-
6 часов назад, x11 сказал:
это неправда
В чем именно?
5 часов назад, Vitaldj сказал:Я же делал акциет, если локалка. Там трехзвенка не нужна. Насчет потеряли сервер, тоже не согласен.)))
Ну... Так у нас тоже локалка, между 4 регионами РФ. Не физическая конечно, а виртуальная...
Ну про потерю можно много рассуждать. Для кого то и "пидемия" Пети была смехом, котиков навалом, да и контактик надежный.
Не скажу про все другие SQLи, но для MS и Oracle достаточно пары часов посветиться в мир, что бы начали пароль подбирать. Ну а дальше... а что дальше: задания агента + xp_cmdshell, или на худой конец волшебство sp_procoptions твооит свое.
Ну а пароль к субд хранить на клиенте, даже локальном, тоже ДА. Бэст практис особенно, если клиент это "SELECT * FROM Tablitsa_1 INNER JOIN Tablitsa_20 ON Tablitsa_1.id = Tablitsa_20. id WHERE Tablitsa_1. id > 100500 AND knopka_najmi LIKE '%меня%' "
Да. И главное не забыть, сам запрос собирать в [..]Query1_zaprosVajniy. SQL.Text
-
Однозначно трехзвенка, особенно с мобильными клиентами. Прямое подключение = стабильная связь, что не получится на мобильных сетях, и плюсом безопасность (попробуйте порт БД выставить во вне, и загляните через час-другой в логи доступа), а получив привелигированный доступ к субд, считай, систему потеряли.
У нас в холдинге КИС самописаная, 3-звенка, так же. Клиенты- web, мобильные на FMX и десктоп. СУБД - MS SQL, основная логика на хранимых процедурах. В промежутке как раз http сервер, писали на Delphi. Используем mORMot framework. Нагрузки держит отлично, ресурсы и память не ест практически. Скорость работы тоже на высоте - за http отвечает драйвер режива ядра http. sys
Для других проектов так же используем webbroker isapi
-
Интересный Вы человек! Таблицы бывают разные да и инднксы, впрочем, тоже разные бывают.
Напишите что конкретнее надо, а лучше для чего (т.е. что будет в таблицах), тогда скину скрипт, а так только могу написать
CREATE INDEX index_name ON table_name (column_name) ;
Ну и посоветовать http://www.sqlite.org/lang.html
В общем, хотите базу, пишите
-
1 час назад, svp сказал:
Потеря фокуса и DropDown работают под Windows и MacOs, под Android не работает ....
Конечно не знаю как у вас, но у меня (сейчас проверил) на Android закрывается прекрасно при потере фокуса..
-
Если это ComboBox, то при потере фокуса он закроется, а так же есть процедура DropDown, открывающее/закрывающие список, и свойство DroppedDown содержащее состояние
-
Здесь или версия устанавливаемого меньше версии установленного, либо подписано разными сертификатами (переустановка студии, запуск с другого компьютера, Debug/Release)
-
Ну если и вправду лень искать или делать самому то, что элементарно, воспользуйтесь готовым IXMLDocument и конвертируйте хоть html -> text, хоть наоборот
-
1 час назад, FREEFAR сказал:
Если правильно помню THttpClient работает асинхронно
К тому же он нативный для каждой платформы
-
13 часа назад, Roman V сказал:
Спасибо за информацию (приму к сведению), но щас я хочу разобраться именно с ini. А именоо почему у меня не считываются данные с ini файла. )
Вы уверены что загружаете файл по правильному пути? Он точно там существует? При отсутствии файла, будет выдаваться значение по-умолчанию.
В какой он кодировке? Если кодировка не UTF-8, попробуйте указать в конструкторе верную (ту, в которой на самом деле файл).
Проверьте банально (на С++ перепишите):
if TFile.Exists(TPath.Combine(TPath.GetDocumentsPath,'inifile.ini')) then showmessage('file found') else showmessage('file not found');
Были ли значения в файле, когда у вас первый раз получилось его задеплоить? При обновлении приложения, если файл есть на устройстве, он не обновляется сам, надо или очистить в настройках, или сделать это все руками.
Проверьте что вообще в нем записано, да тем же TFile.ReadAllText('путь к файлу', 'кодировка'). Ну и если его "там" не будет, то как раз словите исключение...
P.S.: специально сейчас проверил, с русскими ключами проблемы нет, все читается. С кодировкой тоже, читает и ANSI и UTF-8 и Win-1251, в конструкторе даже не указывал кодировку.
Ошибка при доступе к storage/ext_sd
в Прочие вопросы
Опубликовано
Лезет туда, ну и хай с ним. Работе это не мешает никак