データアクセス用にODBCを使用するレガシーC++アプリケーション用に開発しています。 C#の背景から来て、私は本当にデータアクセスのADOスタイルが欠けています。C++関数からフレキシブルなデータ型を返す
私は実際にはADOを使用することができないため、データアクセスの苦労を軽減するためにラッパーを作成しています。つまり、配列はchar
であり、手動テキストBLOBストリーミングはありません。また、宣言的な列バインディングもありません。
私はデータ値を保存/返す方法に苦労しています。 C#では少なくとも、object
を宣言して、その型を(変換可能な限り)キャストしてください。
私の現在のC++の解決策は、を使用して、カスタムのDataColumnValue
オブジェクトにデータ値を格納することです。このクラスには、アプリケーションで使用されているさまざまなタイプ(10以上)の変換と代入演算子があります。あなたがint
をboost::any
に保存し、boost::any_cast<long>
を試してみると、boost::bad_any_cast
となるため、ここでは少し複雑です。クライアントオブジェクトは、値が内部的にどのように格納されるかを知る必要はありません。
誰かが、その型が実行時にのみ知られている値を格納/返却しようとする経験がありますか?より良い/よりクリーンな方法がありますか?
これは、SOで尋ねるとうまくいくようです。 –
理由を説明していただけますか?関連する質問をプログラミングしていない場合、このサイトはどうですか? –
@ Gavin:このサイトはプログラミングに関する主観的な質問です。 [FAQ](http://programmers.stackexchange.com/faq)の質問セクションを参照してください。 SOへの移行中に閉じる –