2012-03-19 104 views
2

我目前使用boost序列化將我的對象圖保存在xml文件中。該庫很棒,它會自動恢復對象和所有成員指針和引用。用於將C++對象保存到數據庫的庫

問題: 我需要隨機訪問數據(只讀一個對象,或只刪除一個對象)。隨着升壓序列化的場景是這樣的:

--load所有對象從文件

- 使用和修改對象

- 寫的所有對象再次存檔

的缺點與此如果只有一個對象發生了變化,我想只將該對象寫入存檔,而不是寫入整個巨大的對象圖形。

因此,我正在尋找支持將所有對象存儲到數據庫並支持boost和stl類型的庫。目前我使用這些升壓類型:

  • 升壓多指標

  • 智能PTR(shared_ptr的,weak_ptr的,scoped_ptr的)

  • 可選,變型

有誰知道這樣的圖書館還是與之相近的東西,或者有想法該如何去解決這個問題?

回答

2

這樣做很複雜。由於C++(運行時環境)對自身不瞭解,因此必須自行編寫代碼。我的建議是將圖分成不同的文件並只更新需要的文件(這意味着你必須自己控制序列化,而不是使用boost lib)。

1

也許Wt::Dbo?通過將單個模板函數添加到類中,Dbo將它們映射到SQL數據庫。