DOBON.NET DOBON.NETプログラミング掲示板過去ログ

VC++.netのCastの仕方

  • 題名: VC++.netのCastの仕方
  • 著者: Mr.Poo
  • 日時: 2011/02/15 0:09:09
  • ID: 28163
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[WindowsXP、VC++.net、NET Framework4.0]
分類:[.NET]

いつもお世話になります。

npgsqlを使用しpostgreSqlのBatea項目からデータを
取得する部分を作成しています。

以下のサンプルをvc++.netで実装したいのですがキャストの仕方が分かりません。

Byte[] result = (Byte[])command.ExecuteScalar();

これを、
array<Byte>^ ret = (array<Byte>^)cmd->ExecuteReader();
のように書くと以下のビルドエラーになってしまいました。
「'Npgsql::NpgsqlDataReader ^' から 'cli::array<Type> ^' に変換できません。」

どのように記述すれば良いのでしょうか?

WinXp、VS2010、.netフレームワーク4.0になります。
よろしくお願い致します。
VC++.net と言ってもいろいろありますが、今回も C++/CLI のようですよね。

■No28163に返信(Mr.Pooさんの記事)
> Byte[] result = (Byte[])command.ExecuteScalar();
>
> これを、
>
> array<Byte>^ ret = (array<Byte>^)cmd->ExecuteReader();
> のように書くと以下のビルドエラーになってしまいました。

ExecuteScalar メソッドがいつの間にやら ExecuteReader メソッドに化けてますよ :-)

System::Object^ objectValue = cmd->ExecuteScalar();
array<System::Byte>^ ret = (array<System::Byte>^)objectValue;

ただ ExecuteScalar メソッドは単体の値しか返さないのでフツーのシナリオでは例外になると思いますが。
  • 題名: Re[2]: VC++.netのCastの仕方
  • 著者: Mr.Poo
  • 日時: 2011/02/18 10:50:17
  • ID: 28207
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
お世話になります。

ExecuteScalarでした。。
いろいろ試しながらドツボにはまってました。

ありがとうございました。
お礼が遅くなり申し訳ありませんでした。

> ExecuteScalar メソッドがいつの間にやら ExecuteReader メソッドに化けてますよ :-)
>
> System::Object^ objectValue = cmd->ExecuteScalar();
> array<System::Byte>^ ret = (array<System::Byte>^)objectValue;


> ただ ExecuteScalar メソッドは単体の値しか返さないのでフツーのシナリオでは例外になると思いますが。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板