Здравствуйте!
Столкнулся со следующей пробуемой:
В одной базе банка (примерно в 100 записях) в поле «фото» (тип поля «файл») по какой-то причине образовалось огромное количество дублей этих самых загруженных фотографий. Речь идет тысячах фотографий. Большую часть вручную получилось удалить. НО осталось несколько записей при обращении к которым «CronosPro» версия 6.4 просто зависает. Вначале программа забирает всю свободную память на компьютере потом сообщает что память закончилась и зависает. Что можно сделать в данном случае? Как удались лишни фото в оставшихся записях? Или как удалить сами записи?
Заранее спасибо!
Зависание при обращении к записи базы данных
-
Zuluss
- Сообщения: 71
- Зарегистрирован: Чт авг 22, 2024 1:35 pm
- Контактная информация:
Re: Зависание при обращении к записи базы данных
Каков объём банка?
Прежде всего проведите ревизию, исправление ошибок и оптимизацию. Дублирующиеся значения во множественном поле должны удалиться.
В тяжелом случае делаете копию структуры банка и обменом перекачиваете данные в новый банк.
Прежде всего проведите ревизию, исправление ошибок и оптимизацию. Дублирующиеся значения во множественном поле должны удалиться.
В тяжелом случае делаете копию структуры банка и обменом перекачиваете данные в новый банк.
-
Гость
Re: Зависание при обращении к записи базы данных
Вы спрашиваете количество записей в базах? В районе 400000.
При этой процедуре не получится ли тоже самое? Т.е. не всё ли скопируется в новый банк? Или как-то можно будет отсечь ненужные фото?В тяжелом случае делаете копию структуры банка и обменом перекачиваете данные в новый банк.
-
Zuluss
- Сообщения: 71
- Зарегистрирован: Чт авг 22, 2024 1:35 pm
- Контактная информация:
Re: Зависание при обращении к записи базы данных
Нет. Список банков-Свойства-Размер банка.
Можно настроить копировать всё, можно выборочно, т.е. отсечь ненужные записи или ненужные поля.
-
User
Re: Зависание при обращении к записи базы данных
Посмотреть размер банка смогу только в будни. Сейчас нет такой возможности.Нет. Список банков-Свойства-Размер банка.
На рабочем банке всё это обязательно попробую. Но чтобы время не терять, для отработки механизма, скачал Вашу пробную версию программы и банки пробные. И с имитировал похожую ситуацию. Т.е. база «Лицо, ищущее работу» там в записи по человеку в поле фотография надублировал с одинаковым название фото. 10 штук. И запустил последовательно Ревизию (всё выбрал) и Оптимизацию (все пункты выбрал). Но чудо не произошло. Дубли по фото никуда не делись. Что еще можно попробовать?Прежде всего проведите ревизию, исправление ошибок и оптимизацию. Дублирующиеся значения во множественном поле должны удалиться.
-
Zuluss
- Сообщения: 71
- Зарегистрирован: Чт авг 22, 2024 1:35 pm
- Контактная информация:
Re: Зависание при обращении к записи базы данных
Да, так просто с помощью ревизии и оптимизации эту проблему не решить.
Вот код для формы ввода банка Primer.
Удаляет дублирующиеся значения во всем банке. Делаете форму ввода, там кнопку и этот код на неё.
Вот код для формы ввода банка Primer.
Код: Выделить всё
local rs=CroApp:GetBank():GetBase(2).RecordSet
for rec in rs.Records do
local cnt=rec:GetValuesCount(1)
if cnt>1 then
local t=rec:GetValue(1,0,"fullname")
t=table.iunion(t,t)
for i=cnt,1,-1 do
local curn=rec:GetValue(1,i,"fullname")
local curi=table.getkey(t,curn)
if not curi then
rec:DeleteFieldValue(1,i)
else
_=table.remove(t,curi)
end
end
rec:Update()
end
end
Последний раз редактировалось Zuluss Вс июл 05, 2026 5:23 pm, всего редактировалось 1 раз.
-
User
Re: Зависание при обращении к записи базы данных
Большое спасибо!
Тема поднималась пользователем Anonymous Ср июл 15, 2026 9:52 pm.