Topic: Изменение параметров таблицы в готовом проекте!

Доброго времени суток!
Интересует такой вопрос: понадобилось в готовом проекте изменить параметр поля определенной таблицы - изменить значение на "обязательное". Как подсказывает программа - для этого удалил файл sqlite.db. Внес изменения - сделал одно поле "обязательным". Сохранил проект. После этого перестали работать все формы как работали до изменений. проверил все связи - все осталось без изменений. В чем тут дело? Чего я не понимаю и как вернуть работоспособность всех форм в проекте - неужели заново переназначать все функции???

Re: Изменение параметров таблицы в готовом проекте!

Судя по описанию, у вас довольно старая версия.


Пожалуйста, приложите ваш проект (zip файл без exe и dll)
посмотрю в чем дело.

Dmitry.

Re: Изменение параметров таблицы в готовом проекте!

Пока создавал архивы, разобрался в чем дело - при удалении файла sqlite.db удаляются и данные базы данных. Создалось впечатление, что формы не работают, а на самом деле просто отсутствуют данные для отображения.
При этом возник другой вопрос. Возможно ли провести изменение параметра поля таблицы без потери данных и как это сделать в рамках программных средств MVD?

Re: Изменение параметров таблицы в готовом проекте!

d.v.aleinikov
У вас старая версия программы, которая не имела возможности изменять структуры таблиц без потери данных в БД.
Пожалуйста, скачайте последнюю версию программы:
http://myvisualdatabase.com/thank_you_f … ading.html

Dmitry.

Re: Изменение параметров таблицы в готовом проекте!

Версия моей программы - 1.51.  Выкладываю исходный вариант базы. Попробуйте сделать изменения. И попутный вопрос - почему файл sqlite.db не уменьшается в объеме при удалении данных из базы?

Post's attachments

Attachment icon Reestr_исходный.rar 8.18 kb, 462 downloads since 2015-06-24 

Re: Изменение параметров таблицы в готовом проекте!

d.v.aleinikov wrote:

Версия моей программы - 1.51.  Выкладываю исходный вариант базы. Попробуйте сделать изменения. И попутный вопрос - почему файл sqlite.db не уменьшается в объеме при удалении данных из базы?

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


Просто введите значение по умолчанию для данного поля.
Если вы не желаете вводить значение по умолчанию для данного поля, придется файл базы данных удалить, чтобы он пересоздался.



При удалении записей из базы, файл базы уменьшен не будет, место занимаемое удаленными записями, помечается как свободное, это место будет заполнено новыми записями в процессе работы БД. Такое поведение характерно для любых баз данных.

Dmitry.

Re: Изменение параметров таблицы в готовом проекте!

Спасибо за разъяснение. А вообще, кончено, эта особенность (неизменяемый размер файла базы данных) странная. Неужели невозможно ничего с этим сделать?! Это риторический вопрос.

Re: Изменение параметров таблицы в готовом проекте!

d.v.aleinikov wrote:

Спасибо за разъяснение. А вообще, кончено, эта особенность (неизменяемый размер файла базы данных) странная. Неужели невозможно ничего с этим сделать?! Это риторический вопрос.

Можно, откройте файл базы данных (sqlite.db) в программе SQLite Studio, затем следуйте в меню Database > Vacuum

Dmitry.

Re: Изменение параметров таблицы в готовом проекте!

Здравствуйте! А что за значение нужно написать. Подробнее можно узнать. Уже имеется база данных хотелось бы чтобы некоторые поля были обязательными для ввода! Что нужно указать без пересоздания sql.db ??? подскажите.
Спасибо заранее!

с уважением,
Андрей Александрович.

Re: Изменение параметров таблицы в готовом проекте!

andrey_gb10
Если вам необходимо сделать поле обязательным для заполнения в уже существующей базе данных, вам также необходимо указать параметр "Значение по умолчанию", которое будет присвоено для существующих записей, в которых данное поле имеет пустое значение.


Это необходимо, т.к. сделав поле обязательным для заполнения, оно больше не может содержать пустое значение.

Dmitry.