Первое изменение в In-Memory файл Error 48

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Anatoly
Бывалый
Сообщения: 91
Зарегистрирован: 11 Август 2005, 9:33
Откуда: Томск

Первое изменение в In-Memory файл Error 48

Сообщение Anatoly »

Windows Xp, C6.3 9058 АВС.
Создаю In-Memory файл. Начинаю менять (редактировать) в нем записи. При первой попытке записать измененную запись стабильно выдается сообщение "Unable To Log Transaction (48) attempting to frame the transaction on имяфайла", далее, если еще раз нажать Ok все идет нормально и все последующие записи меняются без проблем.
Проблема исчезает, если поменять драйвер файла, но естественно время создания такого файла увеличивается в порядки.
В чем дело? Кто-нибудь поборол эту проблему.
Igor
Бывалый
Сообщения: 75
Зарегистрирован: 08 Июль 2005, 11:03
Откуда: Королев

Re: Первое изменение в In-Memory файл Error 48

Сообщение Igor »

Попробуй вставить в WindowManager.Init вот это Relate:MyMemory.UseLogout = 0 (Driver Memory transaction NO)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8035
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Re: Первое изменение в In-Memory файл Error 48

Сообщение Игорь Столяров »

Если изменение файла идет из Browse - то похоже на потерю позицирования при сохранении записи.
Сделай PRIMARE KEY для списка в Browse.
Make Clarion Great Again ! 😎
Anatoly
Бывалый
Сообщения: 91
Зарегистрирован: 11 Август 2005, 9:33
Откуда: Томск

Re: Первое изменение в In-Memory файл Error 48

Сообщение Anatoly »

Спасибо. Помогло Relate:MyMemory.UseLogout = 0 (Driver Memory transaction NO).
Вариант 2 не выполним, поскольку флаг Primery Key для In-Memory файла задизейблен.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8035
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Re: Первое изменение в In-Memory файл Error 48

Сообщение Игорь Столяров »

Anatoly писал(а):Вариант 2 не выполним, поскольку флаг Primery Key для In-Memory файла задизейблен.
Для любого файлового драйвера (в т.ч. и In-Memory) сначало нужно сделать ключ уникальным - атрибут UNIQUE, а потом уже включать PRIMERY. Обычно еще добавляется признак AUTO NUMBER и ключ стоится по отделному полю, например RecordID Long - автоматически. Вот и все. Другими словами - для BROWSE крайне желательно, что бы в списке был уникальный ключ, по которому можно позицировать указатель на текущую запись при ее изменении.
Make Clarion Great Again ! 😎
Ответить