2011-04-11 33 views
0

我创建了一个db4o对象(即Customer.yap),如果它已经创建,我只需将新对象插入到现有对象(即Customer.yap)中即可。有关db4o中数据库连接的查询

对于这两种操作我只是用:

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

     try 

     { 

      db1.Store(comp1); 

     } 



     finally 

     { 

      db1.Close(); 

     } 

我是有这样做的权利,或者一个单独的命令检查对象存在,然后插入值,或者我可以使用相同的代码这两个操作意味着db4o会自动检查对象是否存在于指定的位置(如果存在),则会在指定的位置插入对象,然后插入该对象。

请帮我

感谢预期

PS:我是在Web应用程序在asp.net背景下这样做的,然后有这个想法,就是始终潜伏在我的脑海里。我不应该使用远程连接而不是将它存储在实际的物理位置,但我不能仅仅想象它是如何在远程连接的上下文中创建和存储对象的。我不知道要指定哪些参数,即主机,端口用户名和密码,我甚至不知道某些人如何创建数据库连接应该在程序中写入以连接到此远程对象文件的语句。

请请帮助我,指导我。

非常感谢任何人都在期待

回答

2

db4o的自动更新的对象,而不是将其插入,但有一个问题:你必须保持你的对象容器打开。 db4o与本地缓存一起工作,该缓存跟踪存储的对象,但是一旦您在对象容器上调用close()以使本地现金消失。如果你在对象容器的close()之后存储一个先前持久化的对象,你会得到一个重复的对象(db4o认为它是一个新对象)。如果您确实需要关闭对象容器并想更新对象,则必须在db4o上查询它,然后更新,然后调用store(然后可以关闭())。

至于如何连接到远程服务器的db4o请参阅: http://developer.db4o.com/Documentation/Reference/db4o-7.12/java/reference/Content/client-server/networked.htm

最好的! (祝你好运!)

+0

我在找一些asp.net参考 – 2011-04-11 17:58:18

+0

http://developer.db4o.com/Documentation/Reference/db4o-8.0/net35/reference/Content/client-server.htm – German 2011-04-11 18:50:26