Вниз
Скачать: CL | DM;

---|Ветка была без названия|---   Найти похожие ветки 

← →
Дмитрий К.К. ©   (2002-12-05 12:33) [0]

В одном приложении я пользуюсь таблицей в памяти TkbmMemTable. Бывают такие ситуации, что структура таблицы меняется (от версии к версии) и новая оболочка при загрузке старого формата дает ошибку:

kbmMemTable1 := TkbmMemTable.Create(Self);
kbmMemTable1.FieldDefs.Clear;
kbmMemTable1.FieldDefs.Add("ID", ftSmallint, 0, False);
kbmMemTable1.FieldDefs.Add("Name", ftBlob, 0, False);
kbmMemTable1.FieldDefs.Add("NewField", ftSmallint, 0, False);
kbmMemTable1.CreateTable;
kbmMemTable1.Open;
kbmMemTable1.LoadFromBinaryFile("test.bin");

Ошибка - "Invalid property value"

Как исправить положение?
Спасибо.


← →
Дмитрий К.К. ©   (2002-12-05 15:07) [1]

Up!


← →
Дмитрий К.К. ©   (2002-12-06 06:46) [2]

Мдя...


← →
ЮЮ ©   (2002-12-06 07:28) [3]

А без FieldDefs нельзя? Неужели в BinaryFile не хранится структура?


← →
Max Zyuzin ©   (2002-12-06 09:02) [4]

В каком месте ругается? При создании при открытии или при загрузке? Кстати объясните мне непонятливому, что именно делает строка
kbmMemTable1.LoadFromBinaryFile("test.bin");


← →
Дмитрий К.К. ©   (2002-12-06 09:10) [5]


> Max Zyuzin © (06.12.02 09:02)
> В каком месте ругается? При создании при открытии или при
> загрузке? Кстати объясните мне непонятливому, что именно
> делает строка
> kbmMemTable1.LoadFromBinaryFile("test.bin");


Подразумевается, что ответы будут давать люди ПОНЯТЛИВЫЕ.


← →
Max Zyuzin ©   (2002-12-06 09:12) [6]

Ахх.. ну извините что потревожил...


← →
DarkGreen ©   (2002-12-06 09:37) [7]

Попробуй поменять имя поля "NewField" на другое


← →
Sergey13 ©   (2002-12-06 10:11) [8]

2Дмитрий К.К. © (05.12.02 12:33)
>В одном приложении я пользуюсь таблицей в памяти TkbmMemTable. Бывают такие ситуации, что структура таблицы меняется (от версии к версии) и новая оболочка при загрузке старого формата дает ошибку:
------------------
Не очень понятна проблема. Я вот работаю с обычными таблицами в базе (иногда использую RxMemoryData) и при изменении структуры таблиц вынужден менять код программы которая с ними работает. Чего тут необычного то - нормальная работа. Все так делают. Невозможно, ИМХО, написать узко специализированную программу с приличным интерфейсом на произвольную структуру.


← →
ald   (2002-12-06 10:31) [9]

А не этот ли здесь случай, когда при изменившейся структуре таблицы ты впихиваешь данные уже неверного формата(.bin - предполагается, что в нём привязки к именам полей нет - всё одним потоком забирается. Так?). На первой же записи у тебя пойдёт смещение на размер новых полей. А что к концу загрузки будет? Смущают только слова "бывают ситуации". Мне кажется, что в такой ситуации, загрузка должна обламываться всегда.


← →
Дмитрий К.К. ©   (2002-12-06 10:35) [10]

2ald

Совершенно верно, идет смещение!

"Бывают ситуации" относится не к тому, что вываливается ошибка, а к тому, меняется структура. Как только меняется - тут же ошибка.

Но как бороться с ней?


← →
Sergey13 ©   (2002-12-06 11:07) [11]

2Дмитрий К.К. © (06.12.02 10:35)
>Как только меняется - тут же ошибка.
Вот ведь сволочь, нет бы недельку еще поработала.8-)
Тогда, ИМХО, только предварительный анализ твоего бинарника тебе поможет.


← →
Дмитрий К.К. ©   (2002-12-06 11:47) [12]


> Sergey13 © (06.12.02 11:07)
> 2Дмитрий К.К. © (06.12.02 10:35)
> Тогда, ИМХО, только предварительный анализ твоего бинарника
> тебе поможет.


И с етим полностью согласен... но как сие осуществить?


← →
ЮЮ ©   (2002-12-06 12:02) [13]

Посмотреть код методов LoadFromBinaryFile, SaveToBinaryFile для начала


← →
Дмитрий К.К. ©   (2002-12-06 12:33) [14]

Пожалуй, задам вопрос на форуме разработчика TkbmMemTable.
Всем спасибо за помощь.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.017 c
1-85952
Павел
2002-12-15 14:20
2002.12.26
Раскладка клавиатуры


1-85941
tv
2002-12-17 16:44
2002.12.26
Меню автозавершения строк в Code Editor


1-85891
DeMoN-777
2002-12-16 20:05
2002.12.26
Ini files


1-86011
Acorus
2002-12-16 14:20
2002.12.26
Помогите с деревом :)


1-85937
AVR
2002-12-16 22:30
2002.12.26
XPath, IDOMNode, IDOMElement




   Наверх