C++ 如何在MFC中保存数据?

C++ 如何在MFC中保存数据?,c++,database,post-commit,autosave,C++,Database,Post Commit,Autosave,我还记得在Delphi中,开发人员只需将UI(文本框、列表框…)直接连接到数据库,然后当用户单击按钮时,只需调用post操作,数据就会自动保存 我想知道的是MFC中有没有类似的机制?或者我可以使用GetDlgItem(…).Text,然后使用此值保存到数据库 或者任何其他建议都将不胜感激。公平地说,这些是专门的小部件,不是普通的GDI文本框等,而是带有附加数据库感知层的控件,连接到数据集和表 NET也有类似的概念,不知道VC++中的MFC,你必须使用Microsoft ActiveX数据对象库(

我还记得在Delphi中,开发人员只需将UI(文本框、列表框…)直接连接到数据库,然后当用户单击按钮时,只需调用post操作,数据就会自动保存

我想知道的是MFC中有没有类似的机制?或者我可以使用GetDlgItem(…).Text,然后使用此值保存到数据库


或者任何其他建议都将不胜感激。

公平地说,这些是专门的小部件,不是普通的GDI文本框等,而是带有附加数据库感知层的控件,连接到数据集和表


NET也有类似的概念,不知道VC++中的MFC,你必须使用Microsoft ActiveX数据对象库(ADO类型库)

要存储数据,可以执行以下步骤:

1.Retrive data from all controls 
2.Validate the data retrived
3.Use sql query to store the data to database. 
您可以使用独立于任何数据库管理系统的ODBC API


MFC在文档/视图/框架中对数据的抽象在CDDocument中。保存文档时,如果文件没有保存的路径,MFC会提示用户输入文件名,然后在文件上构造一个CArchive并触发CDocument::Serialize。您可以将连接字符串存储在文档类中,并使用它将数据保存在CDocument::Serialize中

如果您有一个基于文件的数据库,则更容易集成。重写CDocument::OnNewDocument以为文档创建新的基于文件的数据库,以及
重写CDocument::OnPendDocument以从现有数据库中读取。如果没有基于文件的数据库,则可以使用CDocument::SaveModified覆盖来抑制文件对话框,该覆盖将保存数据并清除修改标志

没有数据库独立层?如果需要ODBC怎么办?