Russian Qt Forum
Май 18, 2024, 02:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Attempt to write to read-only database  (Прочитано 13634 раз)
Yuriy
Гость
« Ответ #15 : Октябрь 12, 2011, 22:54 »

Мне все равно кажется, что есть простое решение. К сожалению, сейчас под рукой нет винды, но завтра на работе постараюсь глянуть, если время будет.

Буду очень признателен. Я еще не совсем вник, но судя по всему есть такая UAC , которую отключают либо запускают систему под администратором. Речь идет о простых пользователях, которым нужен ярлык на рабочем столе и все. Поэтому я поставил Win 7 с ориг образа, такой как у всех, без изменений. И возможны еще проблемы. Создание таких ярлыков может быть недоступно в версиях типа home, starter и т.д.
Все это нужно проверять. Очень обломно с вин работать. Завтра поговорю с клиентами, может быть они на Linux согласятся.
Записан
loneybibi
Гость
« Ответ #16 : Октябрь 13, 2011, 00:01 »

Не расстраивайся ! Улыбающийся Все намного проще! Согласен windows == вирус Улыбающийся))
Сам когда свое приложение собирал под Win7, тоже не мог записать ничего в файл. Программа находилась на диске С и UAC блокировал все попытки программы писать в файл и даже просто сохранить какую то информацию в текстовом файле. Проблема была в том что Win7 UAC требует у программы права на запись файла, которые она должна получить при запуске. Вообщем решил это с помощью manifest файлов. Вот тема на форуме решение в конце описано мной подробно (будут вопросы пиши ICQ:400055065):
http://forum.vingrad.ru/forum/topic-332538/kw-user-account-control/hl/manifest/index.html#st_15_view_0
« Последнее редактирование: Октябрь 13, 2011, 00:15 от loneybibi » Записан
Yuriy
Гость
« Ответ #17 : Октябрь 13, 2011, 02:29 »

Спасибо огромное, loneybibi !

Это отличная мысль, буду пробывать !!!
Я пару лет назад на WineHQ.org подробно описывал использование манифестов, извлекая его из msaccess.exe и просто выкладывал в одном каталоге вместе с исполняемыми файлами windows. Под wine'ом Access2007 не шел именно из за этих манифестов, которые в  нем были зашиты, но он их не видел:
http://bugs.winehq.org/show_bug.cgi?id=19297


Но я честно только сейчас узнал про секцию trustInfo.

Это здорово как только опробую, напишу о результатах сего происка !!!
Записан
Yuriy
Гость
« Ответ #18 : Октябрь 18, 2011, 13:52 »

Отписываюсь по результатам:
Действительно, проблема оказалась в административных привилегиях Windows Seven.
Для того чтобы база данных SQLite3 могла писать необходимо запустить свою программу как администратор.

Либо прописать в .manifest requestedExecutionLevel level="highestAvailable"
для отключения зашивки манифестов можно добавить в файл проекта следующую строку:
CONFIG -= embed_manifest_exe
и тогда будет создан manifest в одной папке с исполняемым файлом. Его можно отредактировать, либо использовать Restorator или любой другой хак ресурсов. И переписать права доступа.

При этом в Seven'е на иконке Вашего приложения появится значок радиации желтого цвета и при запуске программа будет кричать, типа давай не будем запускать это приложение, оно хочет привилегий, хочет делать записи и т.д.
Вот такая печальная история....
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #19 : Октябрь 18, 2011, 14:48 »

А вы базу то храните в %APPDATA% (или %ALLUSERSPROFILE%, если она общая для всех пользователей) или где бог на душу положит?
Записан
Yuriy
Гость
« Ответ #20 : Октябрь 18, 2011, 15:40 »

Там 5 - 12 баз данных (создаются в процессе работы) и все в пределах C:\Visual3D\
Одна для хранения ImageCache, другая для Покупателей, третья с Прототипами и т.д.

работаю с ними с использованием ATTACH DATABASE, но проблема не в этом. Не знаю как еще отключить этот самый UAC, может быть после его отключения пропадут значки радиации и всякие Windows'овские ужасающие предупреждения  Смеющийся

Только что обратил внимание: на моем аватаре написано Чайник. Поправьте кто-нибудь пожалуйста.
« Последнее редактирование: Октябрь 18, 2011, 15:46 от Yuriy » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #21 : Октябрь 18, 2011, 15:54 »

Только что обратил внимание: на моем аватаре написано Чайник. Поправьте кто-нибудь пожалуйста.
Наберешь нужное количество сообщений, надпись поменяется.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Yuriy
Гость
« Ответ #22 : Октябрь 18, 2011, 20:06 »

Мне просто кажется непристойным название моего профиля "Чайник". Напишите что-нибудь поприличнее. Или сотрите мой профиль ко всем чертям.
Записан
BRE
Гость
« Ответ #23 : Октябрь 18, 2011, 20:47 »

Мне просто кажется непристойным название моего профиля "Чайник". Напишите что-нибудь поприличнее. Или сотрите мой профиль ко всем чертям.
В настройках профиля можешь сам написать что хочешь. Улыбающийся
Записан
Yuriy
Гость
« Ответ #24 : Октябрь 18, 2011, 21:33 »

 Крутой увы php скрипты не грузятся вместо аватаров. Придется много-много писать сообщений по делу и зарабатывать себе статус. Будем стараться  Подмигивающий.
Записан
loneybibi
Гость
« Ответ #25 : Октябрь 19, 2011, 08:31 »

Не знаю как еще отключить этот самый UAC, может быть после его отключения пропадут значки радиации и всякие Windows'овские ужасающие предупреждения  Смеющийся

Только что обратил внимание: на моем аватаре написано Чайник. Поправьте кто-нибудь пожалуйста.

Зачем его отключать!? Улыбающийся Я тебе давал ссылку на форум винграда на мой пост по манифестам, думаю некоторые моменты ты упустил. В конце есть ссылка (последняя, да и не только, на хабр ссылка тоже про манифесты описывает способы обхождения Uac) на доп. документацию на msdn на русском, там описывают работу утилиты MageUI для создание манифестов. В моем посте приведен шаблон манифеста самый простой. Есть еще параметр такой как TrustLevel который может быть = FullTrust. И если ты не хочешь что бы приложение спрашивало пользователя о повышении административных прав то подпиши приложение цифровым подписью что бы UAc не кипишевал и не выдавал запросов, если вообще полный доступ к win то цифровым сертификатом (на msdn и про создание и получение pfx сертификатов написано тоже) , укажи его в манифесте и приложение будет получать полные административные права без участия пользователя и всяких запросов.

Улыбающийся
Мат часть:
MageUI с графическим интерфейсом для создание манифестов в том числе и FullTrust
http://msdn.microsoft.com/ru-ru/library/acz3y3te.aspx
MakeCertificate создание тестовых сертификатов самому локально для отладки
http://msdn.microsoft.com/ru-ru/library/bfsktky3.aspx
Записан
Yuriy
Гость
« Ответ #26 : Октябрь 19, 2011, 19:15 »

Спасибо, loneybibi.
Буду дальше изучать. Напишу о результатах. А еще лучше составлю FAQ для тех кто пишет приложения с использованием QSLite3 для Windows. Думаю эта тема будет полезна со временем.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.095 секунд. Запросов: 22.