Delphiでは、開発者はUI(テキストボックス、リストボックス...)をデータベースに直接接続し、ユーザーがボタンをクリックしたときに投稿アクションを呼び出すだけで、データが自動的に保存されることを今でも覚えています。
私が知りたいのは、MFCに同様のメカニズムがあるということです。または、GetDlgItem(...)。Textを使用してから、この値を使用してデータベースに保存できますか?
または、他の提案をいただければ幸いです。
Delphiでは、開発者はUI(テキストボックス、リストボックス...)をデータベースに直接接続し、ユーザーがボタンをクリックしたときに投稿アクションを呼び出すだけで、データが自動的に保存されることを今でも覚えています。
私が知りたいのは、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.
データベース管理システムに依存しないODBCAPIを使用できます。
http://msdn.microsoft.com/en-us/library/ms714562(VS.85).aspx
Delphiで公平を期すために、これらは特殊なウィジェットであり、通常のGDIテキストボックスなどではありませんが、データセットとテーブルに接続された追加のデータベース対応レイヤーを備えたコントロールです。
.NETにも同様の概念があります。MFCについてはわかりません。
Doc / View/FrameでのMFCのデータの抽象化はCDocumentにあります。ドキュメントを保存するとき、ファイルに保存されたパスがない場合、MFCはユーザーにファイル名の入力を求め、ファイルにCArchiveを作成し、CDocument::Serializeをトリガーします。接続文字列をドキュメントクラスに保存し、それを使用してCDocument::Serializeにデータを保存できます。
ファイルベースのデータベースがある場合は、統合が簡単です。CDocument :: OnNewDocumentをオーバーライドして、ドキュメントの新しいファイルベースのデータベースを作成し、CDocument :: OnOpenDocumentをオーバーライドして、既存のデータベースから読み取ります。ファイルベースのデータベースがない場合は、データを保存して変更されたフラグをクリアするCDocument::SaveModifiedオーバーライドを使用してファイルダイアログを抑制することができます。