- PR -

VC++2005 & odp.netでのバインド変数について

1
投稿者投稿内容
BordKing
会議室デビュー日: 2009/01/15
投稿数: 3
投稿日時: 2009-01-15 21:02
皆様のお知恵を拝借させていただきたく投稿いたしました。
初心者ゆえ、質問の不手際もご指摘いただくと幸いです。

vc++ 2005にてアプリを開発しておりますが、
処理能力の向上のため、odp.netを用いて、
バインド変数を利用しようと試しておりますが、
ビルドが全く通らず困っております。

バインド変数に値を代入しようとすると、エラーが出てしまいます。
(以下にソースとエラーメッセージを記載致します。)

【ソース】
CString temp = "ABC";

OracleParameter* orParam = new OracleParameter();
orParam->ParameterName = "TEST";
orParam->OracleType::VarChar;
orParam->Value = temp;   ←ここでエラー
orCmd->Parameters->Add(orParam);

【エラーメッセージ】
error C2664: 'System::Data::oracleClient::oracleParameter::set_Value' : 1 番目の引数を 'CString' から 'System::object __gc *' に変換できません。(新しい機能 ; ヘルプを参照)
1> ビルトイン型または値型から __gc クラスまたは __gc インターフェイスへのポインタ への変換にはボックス化が必要です。


エラーメッセージの対処方法がわかっていないだけでなく、
根本的に何かが違うような気もしますが、
何か原因がお分かりでしたら、ご教授ください。

以上、宜しくお願い致します。

[ メッセージ編集済み 編集者: BordKing 編集日時 2009-01-15 21:02 ]
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2009-01-15 21:17
CString ではなく、System::String^ 使う必要があるとおもいますよ。
BordKing
会議室デビュー日: 2009/01/15
投稿数: 3
投稿日時: 2009-01-17 13:43
to ちゃっぴさん

返信が送れてしまい、すいません。

今は環境がないので、週末勉強して
月曜日に試してみます。

ありがとうございました。

遅くなりましたが、取り急ぎお礼とお詫びまで。
BordKing
会議室デビュー日: 2009/01/15
投稿数: 3
投稿日時: 2009-01-19 15:14
to ちゃっぴさん

System::String^を使う事で解決できました。
本当に、本当にありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)