我还记得在Delphi中,开发者可以让UI(文本框,列表框...)直接连接到数据库,然后当用户点击一个按钮时,只需调用post动作,数据就会自动保存。
我想知道的是MFC中有没有类似的机制?或者我可以使用 GetDlgItem(...).Text 然后使用这个值保存到数据库?
或任何其他建议将不胜感激。
我还记得在Delphi中,开发者可以让UI(文本框,列表框...)直接连接到数据库,然后当用户点击一个按钮时,只需调用post动作,数据就会自动保存。
我想知道的是MFC中有没有类似的机制?或者我可以使用 GetDlgItem(...).Text 然后使用这个值保存到数据库?
或任何其他建议将不胜感激。
在 VC++ 中,您必须使用Microsoft ActiveX 数据对象库(ADO typelib)。
要存储数据,您可以按照以下步骤操作:
1.Retrive data from all controls
2.Validate the data retrived
3.Use sql query to store the data to database.
您可以使用独立于任何数据库管理系统的ODBC API 。
http://msdn.microsoft.com/en-us/library/ms714562(VS.85).aspx
MFC's abstraction of data in Doc/View/Frame is in CDocument. When you save the document, MFC prompts the user for the file name if the file does not have a saved path, then construct a CArchive on the file and triggers CDocument::Serialize. You can store the connection string in your document class and use it to save data in CDocument::Serialize.
If you have a file based database, it is easier to integrate. Override CDocument::OnNewDocument to create a new file based database for the document, and override CDocument::OnOpenDocument to read from existing database. If you don't have a file based database, you can suppress the file dialog with a CDocument::SaveModified override that saves the data and clears the modified flag.
公平地说,Delphi 这些是专门的小部件,不是普通的 GDI 文本框等,而是带有连接到数据集和表的附加数据库感知层的控件。
.NET也有类似的概念,不知道MFC