Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Использование DB4O - не пойму / 9 сообщений из 9, страница 1 из 1
16.11.2007, 14:33
    #34945158
iConst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DB4O - не пойму
Здравствуйте,все.

Пробую бесплатную базу данных DB4O - делаю все по писанному. В примерах все ок! Пытаюсь выбрать данные из базы в другом месте - 0 записей! Но записи есть - просматриваю файл в HEX режиме и вижу их.

Кто пользовал эту базу просьба подсказать где грабли.

Перевернув мир - оглянись, может перевернулся ты сам?!
...
Рейтинг: 0 / 0
19.11.2007, 15:27
    #34949210
Glazz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DB4O - не пойму
iConstЗдравствуйте,все.

Пробую бесплатную базу данных DB4O - делаю все по писанному. В примерах все ок! Пытаюсь выбрать данные из базы в другом месте - 0 записей! Но записи есть - просматриваю файл в HEX режиме и вижу их.

Кто пользовал эту базу просьба подсказать где грабли.

Перевернув мир - оглянись, может перевернулся ты сам?!

Привел бы здесь пример того что ты патаешься сделать.
Я её тоже ковыряю на предмет использования.

Вот небольшие ремарки
1) Работать с конфигурацией до открытия контейнера(присоеденения к базе)
2) Конфигурации на сервере и клиенте должны быть одинаковы
3) Конфигурации на сервере и клиенте должны быть разными экземплярами
4) Если ты хочешь чтобы сообъекты(в том числе коллекции) удалялись
с объектом нужно в конфигурации для этого класса выставлять
cascadeOnDelete(true);

4) Если ты хочешь чтобы коллекции при их изменении обновлялись
нужно в конфигурации для этого класса выставлять как у класса
так и поля(не обязательно?) содержащего коллекцию cascadeOnUpdate(true);
а также updateDepth больше 0;

5)Объекты внутри коллекци которая является полем экземпляра
при удалении экземпляра не удаляются.. это надо прописывать
в функции внешнего обратного вызова(исполняется на сервере)
наследуя следующий интерфес com.db4o.ext.ObjectCallbacks
если это необходимо т.к. в принципе эти элементы могут быть частью
совершенно других объектов..
При чем саму коллекцию надо обязательно активировать до обращения
к её элементам.



PS: Вообще глюкакавая она эта DB4O. Декларуруют в документации то что не работает.
Рекламы больше чем проку, расстроился я чейта..
Вот тест запостил - http://developer.db4o.com/forums/thread/43605.aspx - в их форум и тишина...
...
Рейтинг: 0 / 0
29.04.2008, 15:08
    #35286096
arial79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DB4O - не пойму
iConstПытаюсь выбрать данные из базы в другом месте - 0 записей! Но записи есть - просматриваю файл в HEX режиме и вижу их.Та же трабла. Есть идеи?
...
Рейтинг: 0 / 0
30.04.2008, 07:06
    #35287472
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DB4O - не пойму
Удаленные записи тоже видных в НЕХ режиме. Место освобождено, но не чистится. Попробуйте добавить записи и их выбирать их.
...
Рейтинг: 0 / 0
05.04.2009, 14:44
    #35912860
iConst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DB4O - не пойму
GlazzПривел бы здесь пример того что ты патаешься сделать.
Я её тоже ковыряю на предмет использования.

Вот небольшие ремарки
1) Работать с конфигурацией до открытия контейнера(присоеденения к базе)
2) Конфигурации на сервере и клиенте должны быть одинаковы
3) Конфигурации на сервере и клиенте должны быть разными экземплярами
4) Если ты хочешь чтобы сообъекты(в том числе коллекции) удалялись
с объектом нужно в конфигурации для этого класса выставлять
cascadeOnDelete(true);

4) Если ты хочешь чтобы коллекции при их изменении обновлялись
нужно в конфигурации для этого класса выставлять как у класса
так и поля(не обязательно?) содержащего коллекцию cascadeOnUpdate(true);
а также updateDepth больше 0;

5)Объекты внутри коллекци которая является полем экземпляра
при удалении экземпляра не удаляются.. это надо прописывать
в функции внешнего обратного вызова(исполняется на сервере)
наследуя следующий интерфес com.db4o.ext.ObjectCallbacks
если это необходимо т.к. в принципе эти элементы могут быть частью
совершенно других объектов..
При чем саму коллекцию надо обязательно активировать до обращения
к её элементам.



PS: Вообще глюкакавая она эта DB4O. Декларуруют в документации то что не работает.
Рекламы больше чем проку, расстроился я чейта..
Вот тест запостил - http://developer.db4o.com/forums/thread/43605.aspx - в их форум и тишина...
Запоздалое спасибо!
Проблема потери данных решена - это происходит по причине динамической компиляции и только в ASP.NET. Если классы - объекты подключить в проект в виде dll, то все нормально.

Как сейчас дела? Я тоже немного расстроился - но пока не теряю надежды. Не все так гладко, как хотелось-бы, но: все-же подкупает определенная простота в мелких проекта, ИМХО по воробьям из пушки....

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

Сразу скажу: DB4O, как полноценную замену РДБ для средних и крупных проектов не вижу. И тому ряд причин.

Кроме того, столкнулся со следующими проблемами: например внутренний Id. Проблема в том, что этот Ид меняется. По крайней мере у меня. То есть: например, добавляю объект

Код: plaintext
1.
2.
3.
MyClass class1 = new MyClass();
class1.Name= "Name1";
//Сохраняю, затем получаю
Int64 id1 = objectContainer.Ext().GetID(class1); // 679 

Создаю другой объект:
Код: plaintext
1.
2.
3.
4.
5.
MyClass class2 = new MyClass();
class2.Name= "Name2";
//Сохраняю, затем получаю: 
Int64 id1 = objectContainer.Ext().GetID(class1); // 788 , Name1
Int64 id2 = objectContainer.Ext().GetID(class2); // 679 , Name2
То есть идентификатор "перепрыгивает" на другой объект. Если добавить третий объект - то по цепочке они сдвинутся далее.
Что это - мой просчет (делаю все по-писанному на примитивном тестовом классе)? Или фича? Или не фича, но "так получилось"?
Дока невнятная. Все приходится выковыривать по форумам.

Второй важный момент: как "правильно" работать с базой, то бишь готовить объекты: выделять "чистые" объекты и, типа репозиторий, или в классах организовывать логику работы с базой?

Кто знает другие ОБД? В смысле ковырял их - нет времени нашаривать в темноте грабли.
...
Рейтинг: 0 / 0
10.04.2009, 00:15
    #35923942
NextMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DB4O - не пойму
Больше всего убивает убогий язык запросов.
...
Рейтинг: 0 / 0
28.05.2009, 13:31
    #36013093
Glazz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DB4O - не пойму
DB4O - убогая кривизна...
провал год назад, споткнулся на баге при котором удаляется сущность при попытке выполнить обновление другой сущности. Баг запостил, его даже пытаются править иногда.. до сих пор :)
IHMO Не тратье свое время на эту хню.
...
Рейтинг: 0 / 0
02.06.2009, 18:54
    #36022052
Eloquera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DB4O - не пойму
Попробуйте новую ОО СУБД Woomera . Мы пока только развиваемся, но уже достигли большого прогресса. Ограничения данной версии: отсутствие транзакций и нет поддержки Linq. Благодаря Вашим отзывам мы будем знать в какую сторону нам расти. Подробнее тут .
...
Рейтинг: 0 / 0
28.07.2009, 04:46
    #36112380
pamalofeev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DB4O - не пойму
А NeoDatis кто пробовал? Подкупает красивой .pdf-кой, по которой уж шибко всё просто получается. Так же платная поддержка и обещание 10$ за найденный баг намекают на серьезность прожекта, а по сравнению с той же db4o в рунете не слыхать про неё практически, только в одном месте есть упоминае сего чуда и то автор там не потрудился даже примеры свои сделать.
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Использование DB4O - не пойму / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]