Запрос относительно подключения к базе данных в db4o - PullRequest
0 голосов
/ 11 апреля 2011

Я создаю объект db4o (а именно Customer.yap) и, если он уже создан, я просто вставляю новые объекты в существующий объект (а именно Customer.yap).

Для обеих этих операций я просто использую:

IObjectContainer db1 = Db4oEmbedded.OpenFile(Db4oEmbedded.NewConfiguration(),@"C:\Users\admin\Desktop\Db4oObjectFiles\Components.yap");

        try

        {

            db1.Store(comp1);

        }



        finally

        {

            db1.Close();

        }

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

Пожалуйста, помогите мне

Спасибо в ожидании

PS: я делаю это в контексте веб-приложения на asp.net, а затем в моей голове всегда таится мысль. Я не должен использовать удаленное соединение, а не хранить его в реальном физическом месте, но я не могу просто понять, как кто-то создает и хранит объекты в контексте удаленного соединения. я не знаю, какие параметры указывать, а именно хост, имя пользователя и пароль порта, и даже не знаю, как кто-то создает соединение с базой данных, какие операторы нужно написать в программе, чтобы соединиться с этим файлом удаленного объекта.

Пожалуйста, пожалуйста, помогите мне и направьте меня.

Большое спасибо всем в ожидании

1 Ответ

2 голосов
/ 11 апреля 2011

db4o автоматически обновляет объект, а не вставляет его, но есть одна загвоздка: вам придется держать контейнер вашего объекта открытым.db4o работает с локальным кэшем, который отслеживает хранимые объекты, но как только вы вызываете close () для контейнера объектов, локальные деньги исчезают.Если вы сохраните ранее сохраненный после close () в контейнере объекта, вы получите дубликат объекта (db4o думает, что это новый объект).Если вам действительно нужно закрыть контейнер объектов и вы хотите обновить объект, вам придется запросить его у db4o, затем обновить, затем вызвать store (и затем вы можете закрыть ()).

С уважениемо том, как подключиться к удаленному серверу db4o, смотрите: http://developer.db4o.com/Documentation/Reference/db4o-7.12/java/reference/Content/client-server/networked.htm

Best!(удачи!)

...