none
VB 6.0からVS 2008(VB.NET)へ RRS feed

  • 質問

  • 質問がございます。

    1.
    RDO(Remote Data Objects)を使ってデータベースにアクセスしますが、ADO.NETへ移行したいです。
    ADO.NETでは、レコードセットの読み込み、メモリーリーク解消などが異なるみたいですが方法がわかりません。
    例えば、現在、RDOコードで使用している下記のような宣言は、どのように変更していけばいいでしょうか?
    サンプルコードはございませんか?
    また、コンバージョンツール、サイト情報ございましたら教えていただけませんか?

    Public Conn As RDO.rdoConnection
    Public en As RDO.rdoEnvironment
    en = RDOrdoEngine_definst.rdoEnvironments(0)

    2.
    VB 6.0、VB.NETで変数宣言で、数値型の指定がないのは、整数、文字列などどのようなタイプとしてコンパイラーは
    認識しますか?

    3.
    特定のWarningコードを、ソース内で表示しないようにしたのですが構文はございますか?

    宜しくお願い致します。

    2011年6月14日 5:12

回答

  • 1.についてのみですが・・・

    rdoEnvironmentはもう使用しません。ADO.NETに関しては、以下は古い記事ですが現在でも十分に通用します。VB6のADOからの移行に関しても触れられていますので、逆に参考になるかもしれません。

    ADO.NET の使用
    http://msdn.microsoft.com/ja-jp/library/aa302325.aspx

    当時と違い、現在ではusing句を使い、自動的にコネクションをクローズする仕組みがあり、こちらを使う方が良いでしょう。以下を参考にしてみて下さい。

    DataReader によるデータの取得 (ADO.NET)
    http://msdn.microsoft.com/ja-jp/library/haa3afyz.aspx

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年7月1日 2:51
    2011年6月14日 6:08
    モデレータ
  • 2. についてです。

    宣言時の型指定を省略すると、VB6 は Variant 型、VB.NET は Object 型になります。

    VB 6.0 ユーザーのための VB .NET 移行ガイド - すべてがオブジェクト型
    http://msdn.microsoft.com/ja-jp/library/dd297709.aspx

    3. は今一つやりたいことが見えないのですが...。
    (「特定の Warning コードを、ソース内で表示」というのが一体どういう状況なのかが分かりません。)
    • 回答としてマーク 山本春海 2011年7月1日 2:51
    2011年6月14日 6:52
  • 3. について、もしかするとこういう事をやりたいのかも、と思う URL を添付します。

    vb.net - How to disable warnings in Visual Studio for a Visual Basic Web Deployment Project - Stack Overflow
    http://stackoverflow.com/questions/450632/how-to-disable-warnings-in-visual-studio-for-a-visual-basic-web-deployment-projec

    個人的には、Warning もいちいち確認して対処すべきとは思いますが。
    • 回答としてマーク 山本春海 2011年7月1日 2:51
    2011年6月14日 9:02
  • > 宣言時の型指定を省略すると、VB6 は Variant 型、VB.NET は Object 型になります。

    VB.net では Option Infer が on/off で異なります。

    Option Infer Off では、すべて Object 型になりますが、Option Infer On の場合はコンパイラによって型推論が実施され、推論された型で宣言されます。

    Dim a = 1 ' 1 は System.Int32 なので a は Integer 型
    Dim b = "foo" ' "foo" は System.String なので b は String 型
    

     

    • 回答としてマーク 山本春海 2011年7月1日 2:51
    2011年6月16日 0:24
  • > 宣言時の型指定を省略すると、VB6 は Variant 型、VB.NET は Object 型になります。

    VB.net では Option Infer が on/off で異なります。

    Option Infer Off では、すべて Object 型になりますが、Option Infer On の場合はコンパイラによって型推論が実施され、推論された型で宣言されます。

    Dim a = 1 ' 1 は System.Int32 なので a は Integer 型
    Dim b = "foo" ' "foo" は System.String なので b は String 型
    

    型推論は、宣言時に初期化をした場合に限られるのでご注意ください。
    VB6 から移行する場合だと、宣言時に初期化なんてやっていませんので。
    • 回答としてマーク 山本春海 2011年7月1日 2:51
    2011年6月16日 1:11
  • 1.について。

    (1)データアダプタの作成のコードになっておらず、すぐ上のselect用コマンド・オブジェクトの作成と同じコードです。転記ミスでしょうか?

    (2)全行返すのあれば、dt.Select()になります。

    DataTable.Select メソッド
    http://msdn.microsoft.com/ja-jp/library/system.data.datatable.select(v=vs.80).aspx

    2.について。

    ADO.NETとRDOは全くの別物です。ADO.NETにおいて、RDO関連のメソッド等は全て使うことができません。

    3.について。

    VB6からVB.NETですよね? あまり詳しくないのですが、フリーとなると「Visual Basic .NET アップグレード ウィザード」があるようです。

    Visual Basic 6.0 と同じコンピュータに Visual Basic .NET または Visual Basic 2005 をインストールしてプロジェクトをアップグレードする
    http://207.46.225.250/kb/311324/ja

    アップグレードウィザードの利用
    http://msdn.microsoft.com/ja-jp/library/dd297684.aspx

    上記は以前のVisual Studioについて書かれたものですが、現在のVisual Studioでどうなっているのかはわかりません、ごめんなさい。ただ、あまり過度な期待を持たない方がよさそうです。
    ちなみに有料となると以下が参考になります。

    ケーススタディ: 大きなVB6アプリケーションの.NETへの移行
    http://www.infoq.com/jp/news/2009/12/Migrating-VB6-to-.NET

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年7月1日 2:52
    2011年6月21日 16:04
    モデレータ
  • 1.について。

    テーブル名なので適当な名前でかまいませんが、一般的には接続DB名にはしません。

    2.について。

    手元にRDOの資料が無く、ネットを探してみたのですが、RDOのリファレンスを見つけることができませんでした・・・・

    RDO.PromptConstants.rdDriverComplete はどういう意味なのでしょうか? 意味がわかれば対応するADO.NETを示せると思います。

    3.について。

    DB2は使ったことが無いのですが、DB2 .NET Data Provider を使用するようですね。ちなみにSystem.Data.SqlClientは、.NET Framework Data Provider for SQL Serverに属するクラスの名前空間になります。つまり、SQL Server用です。

    (参考)
    DB2 .NET Data Provider
    http://publib.boulder.ibm.com/infocenter/db2luw/v8//index.jsp?topic=/com.ibm.db2.udb.dndp.doc/htm/frlrfIBMDataDB2.htm

    .NET言語からDB2を使用するには?
    http://faq.db2watch.com/content/6/57/ja/nete%A8%80e%AA%9E%E3%81%8B%E3%82%89db2%E3%82%92ae%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F.html

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年7月1日 2:52
    2011年6月22日 6:48
    モデレータ
  • 1. について、RDO と ADO.NET との共存はないでしょう。どちらかに統一するしかないはずです。
    ADO.NET に移行するだけのスキルがないのであれば、RDO にとどまるのも一つの選択肢だと思います。
    (RDO から ADO.NET に移行したいで始まったスレッドではありますが。)

    2. について、ご自身で確認されてはいかがでしょうか?

    時間がないので、最小限のワークで考えています。

      (中略)

    テストができていなのですが、下記コードで>箇所のコメントを頂けないでしょうか?


    この発言はちょっとないと思います。
    自分の時間は使いたくないけれども、他の人の時間は好きに使っていいと思っているように見えます。
    学ぶ手間を惜しむべきではないと思うのですが。
    • 回答としてマーク 山本春海 2011年7月1日 2:52
    2011年6月22日 14:14

すべての返信

  • 1.についてのみですが・・・

    rdoEnvironmentはもう使用しません。ADO.NETに関しては、以下は古い記事ですが現在でも十分に通用します。VB6のADOからの移行に関しても触れられていますので、逆に参考になるかもしれません。

    ADO.NET の使用
    http://msdn.microsoft.com/ja-jp/library/aa302325.aspx

    当時と違い、現在ではusing句を使い、自動的にコネクションをクローズする仕組みがあり、こちらを使う方が良いでしょう。以下を参考にしてみて下さい。

    DataReader によるデータの取得 (ADO.NET)
    http://msdn.microsoft.com/ja-jp/library/haa3afyz.aspx

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年7月1日 2:51
    2011年6月14日 6:08
    モデレータ
  • 2. についてです。

    宣言時の型指定を省略すると、VB6 は Variant 型、VB.NET は Object 型になります。

    VB 6.0 ユーザーのための VB .NET 移行ガイド - すべてがオブジェクト型
    http://msdn.microsoft.com/ja-jp/library/dd297709.aspx

    3. は今一つやりたいことが見えないのですが...。
    (「特定の Warning コードを、ソース内で表示」というのが一体どういう状況なのかが分かりません。)
    • 回答としてマーク 山本春海 2011年7月1日 2:51
    2011年6月14日 6:52
  • 3. について、もしかするとこういう事をやりたいのかも、と思う URL を添付します。

    vb.net - How to disable warnings in Visual Studio for a Visual Basic Web Deployment Project - Stack Overflow
    http://stackoverflow.com/questions/450632/how-to-disable-warnings-in-visual-studio-for-a-visual-basic-web-deployment-projec

    個人的には、Warning もいちいち確認して対処すべきとは思いますが。
    • 回答としてマーク 山本春海 2011年7月1日 2:51
    2011年6月14日 9:02
  • 説明不足で申し訳ありません。

    VC++の#pragma warning(disable:XXXX)のような構文です。

    宜しくお願いします。

    2011年6月15日 10:32
  • VC++の#pragma warning(disable:XXXX)のような構文です。

    ないはずです。
    基本的にはプロジェクト単位となるプロジェクトのプロパティで指定できるかどうかでしょう。

    すでに書かれているように、警告の解消に動くべきだと思いますよ。
    (どんな警告かは存じませんが、見えなくすればよいなんてことはありません)


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2011年6月15日 14:02
    モデレータ
  • > 宣言時の型指定を省略すると、VB6 は Variant 型、VB.NET は Object 型になります。

    VB.net では Option Infer が on/off で異なります。

    Option Infer Off では、すべて Object 型になりますが、Option Infer On の場合はコンパイラによって型推論が実施され、推論された型で宣言されます。

    Dim a = 1 ' 1 は System.Int32 なので a は Integer 型
    Dim b = "foo" ' "foo" は System.String なので b は String 型
    

     

    • 回答としてマーク 山本春海 2011年7月1日 2:51
    2011年6月16日 0:24
  • > 宣言時の型指定を省略すると、VB6 は Variant 型、VB.NET は Object 型になります。

    VB.net では Option Infer が on/off で異なります。

    Option Infer Off では、すべて Object 型になりますが、Option Infer On の場合はコンパイラによって型推論が実施され、推論された型で宣言されます。

    Dim a = 1 ' 1 は System.Int32 なので a は Integer 型
    Dim b = "foo" ' "foo" は System.String なので b は String 型
    

    型推論は、宣言時に初期化をした場合に限られるのでご注意ください。
    VB6 から移行する場合だと、宣言時に初期化なんてやっていませんので。
    • 回答としてマーク 山本春海 2011年7月1日 2:51
    2011年6月16日 1:11
  • ありがとうございました。
    追加で質問がございます。

    1.
    VB.NETでSqlCommand、SelectCmdについての質問です。
    @ITに下記サンプルがございます。
    このインプリメントがうまくいきません。アドバイスをいただけないでしょうか?

    // select用コマンド・オブジェクトの作成
        SqlCommand selectCmd = new SqlCommand();
        selectCmd.Connection = conn;
        selectCmd.CommandText = selectStr;

    SqlCommand、selectCmdを変数で定義しなおしたりしているのですがエラーがでます。
     error BC30454: 式はメソッドではありません。
     error BC30800: メソッドの引数は、かっこで囲む必要があります。

    また、最後の"selectStr"の箇所に宣言している関数(xxx())をセットしたいのですが、変数に対して
    "引数が指定されていません"などのエラーがでます。

    2.
    これに対する、ADO.NETのクラスは何でしょうか?
    RDO.ResultsetTypeConstants.rdOpenStatic

    宜しくお願い致します。

    2011年6月20日 13:38
  • とりあえず1.についてですが、書かれているコードはC#です。VB.NETではありません。C#からVB.NETへは、例えば以下で変換できます。

    Convert C# to VB.NET
    http://www.developerfusion.com/tools/convert/csharp-to-vb/

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年6月20日 14:50
    モデレータ
  • 少し調べてみました。2.のRDO.ResultsetTypeConstants.rdOpenStaticについてですが、これって静的カーソルのことですよね?(RDOはあまり詳しくなくて・・・)
    であれば、ADO.NETは非接続型ですので、データベースから読み取ったレコードセットをローカルのデータテーブルに保持します。つまり、データベースからselect文で抽出したレコードセットをローカルに持つことになりますので、これがそのまま静的カーソルに該当することになるんじゃないかと思います。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年6月20日 15:07
    モデレータ
  • ありがとうございました。
    ADO.NET対応で@ITのサンプルを参照しています。
    質問がございます。

    1.
    データアダプタでSQL文の実行したリターンを全て出力したいのですが、まだ、テストできていません。
    下記のSelectメソッドの指定は、正しいでしょうか?

    Imports System.Data
    Imports System.Data.SqlClient

    Public Class UpdateDataRow
     Public Shared Sub Main()
      Dim connStr As String = "Server=(local)\NetSDK;" & "Trusted_Connection=yes;" & "database=pubs"
      Dim selectStr As String = "SELECT pub_id, pub_name FROM publishers"

      ' 接続用オブジェクトの作成
      Dim conn As New SqlConnection()
      conn.ConnectionString = connStr

      ' select用コマンド・オブジェクトの作成
      Dim selectCmd As New SqlCommand()
      selectCmd.Connection = conn
      selectCmd.CommandText = selectStr

      ' データアダプタの作成
      Dim selectCmd As New SqlCommand()
      selectCmd.Connection = conn
      selectCmd.CommandText = ConnectExecute(SqlStr, rs, QueryType)
      >ConnectExecute(SqlStr, rs, QueryType)でSQLの実行

      ' データセットへの読み込み
      Dim ds As New DataSet()
      da.Fill(ds, "A_DB")
      Dim dt As DataTable = ds.Tables("A_DB")
      >"A_DB"は、接続DB名です。  

      'Selectメソッド
      Dim targetRows As DataRow()
      targetRows = dt.[Select]("A_DB")
      >"targetRows = dt.[Select]("A_DB")"は、正しいでしょうか?

     End Sub
    End Class

    2.
    DataSetクラスを使用すると、RDOでの下記メソッドが"System.Data.DataSetのメンバではありません。"と言われます。
     -getBOF
     -MoveFirst
     -Close
     -EOF
     -rdoColumns

    対応、ご存知でしらたおしえてください。

    3.
    Convert C# to VB.NET
    http://www.developerfusion.com/tools/convert/csharp-to-vb/

    >フリーの"Convert VB to VB.NET"もございますか?

    2011年6月21日 12:31
  • 1.について。

    (1)データアダプタの作成のコードになっておらず、すぐ上のselect用コマンド・オブジェクトの作成と同じコードです。転記ミスでしょうか?

    (2)全行返すのあれば、dt.Select()になります。

    DataTable.Select メソッド
    http://msdn.microsoft.com/ja-jp/library/system.data.datatable.select(v=vs.80).aspx

    2.について。

    ADO.NETとRDOは全くの別物です。ADO.NETにおいて、RDO関連のメソッド等は全て使うことができません。

    3.について。

    VB6からVB.NETですよね? あまり詳しくないのですが、フリーとなると「Visual Basic .NET アップグレード ウィザード」があるようです。

    Visual Basic 6.0 と同じコンピュータに Visual Basic .NET または Visual Basic 2005 をインストールしてプロジェクトをアップグレードする
    http://207.46.225.250/kb/311324/ja

    アップグレードウィザードの利用
    http://msdn.microsoft.com/ja-jp/library/dd297684.aspx

    上記は以前のVisual Studioについて書かれたものですが、現在のVisual Studioでどうなっているのかはわかりません、ごめんなさい。ただ、あまり過度な期待を持たない方がよさそうです。
    ちなみに有料となると以下が参考になります。

    ケーススタディ: 大きなVB6アプリケーションの.NETへの移行
    http://www.infoq.com/jp/news/2009/12/Migrating-VB6-to-.NET

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年7月1日 2:52
    2011年6月21日 16:04
    モデレータ
  • ありがとうございました。

    1.
     ' データセットへの読み込み
      Dim ds As New DataSet()
      da.Fill(ds, "A_DB")
      Dim dt As DataTable = ds.Tables("A_DB")
      >確認ですが、"A_DB"は、接続DB名でも宜しいですか? 

    2.
    DataSetクラスを使用すると、RDOでの下記メソッドが"System.Data.DataSetのメンバではありません.....対応、ございますか?
     -getBOF
     -MoveFirst
     -Close
     -EOF
     -MoveLast
     -RowCount

    >ADO.NETとRDOは全くの別物です。ADO.NETにおいて、RDO関連のメソッド等は全て使うことができません。
    申し訳ございません。

    http://msdn.microsoft.com/ja-jp/library/ff495523(SQL.100).aspxなどを見ていても、対応するメソッドが解らないので質問していました。

    あと、下記、プロンプト処理で、これに相当するADO.NETのメソットが解りません。
    RDO.PromptConstants.rdDriverComplete

    対応、ご存知でしらたおしえてください。

    3.
    IBM DB2を使用します。
    クラスは、System.Data.Odbcは使用するべきでしょうか?
    それとも、これまで使用していたネイティブのSystem.Data.SqlClientを使用していて問題なでしょうか?

    2011年6月22日 5:28
  • 1.について。

    テーブル名なので適当な名前でかまいませんが、一般的には接続DB名にはしません。

    2.について。

    手元にRDOの資料が無く、ネットを探してみたのですが、RDOのリファレンスを見つけることができませんでした・・・・

    RDO.PromptConstants.rdDriverComplete はどういう意味なのでしょうか? 意味がわかれば対応するADO.NETを示せると思います。

    3.について。

    DB2は使ったことが無いのですが、DB2 .NET Data Provider を使用するようですね。ちなみにSystem.Data.SqlClientは、.NET Framework Data Provider for SQL Serverに属するクラスの名前空間になります。つまり、SQL Server用です。

    (参考)
    DB2 .NET Data Provider
    http://publib.boulder.ibm.com/infocenter/db2luw/v8//index.jsp?topic=/com.ibm.db2.udb.dndp.doc/htm/frlrfIBMDataDB2.htm

    .NET言語からDB2を使用するには?
    http://faq.db2watch.com/content/6/57/ja/nete%A8%80e%AA%9E%E3%81%8B%E3%82%89db2%E3%82%92ae%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F.html

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年7月1日 2:52
    2011年6月22日 6:48
    モデレータ
  • Hoshinaです
    こんにちは

    古いVB6.0から.NETへの移行は確定済みと考えてよろしいでしょうか?
    調査の段階ではなく,移行への実作業を現実に想定していると考えてよいですね。

    もしそうであれば,現行のプログラムは忘れて,.NETでのデータベース操作方法の基本を新たに調査することを優先した方が良いと思えます。古いソースはまず利用できないと思います。
    また,.NETではデータベースの操作方法とそれを画面に表示し,データを操作する方法とが一体になっています。
    この基本を外れると大変な事態に遭遇すると思います。
    一方,.NETの原則や基本に従えば,かなり楽ができます。

    Umashikaさんの投稿を見る限りの判断でしかありませんが,
    そもそも道の無いところへ頭から突っ込んで行こうとしているように見えてしょうがありません。
    私の投稿に悪意は無いつもりです。このように見ている人も中にはいるという,1つの判断材料にしてください。

    それでは

    2011年6月22日 8:07
  • 3.
    IBM DB2を使用します。
    クラスは、System.Data.Odbcは使用するべきでしょうか?
    それとも、これまで使用していたネイティブのSystem.Data.SqlClientを使用していて問題なでしょうか?

    なぜこちらで↓回答を得ているのに、また質問しているのですか?


    http://okwave.jp/qa/q6826347.html

     

    ちょっとひどくないですか?

    2011年6月22日 9:36
  • ありがとうございました。
    追加で質問がございます。
    時間がないので、最小限のワークで考えています。

    1.
    仮に移行(VB.NET)ですので、.NETデータ・プロバイダーを使用して、DataSetは使用しないで考えます。
    ですので、既存クラスのRDO.rdoResultset(ADO.NETでは、System.Data.DataSet)や
    DB接続時のプロンプト、RDO.PromptConstants.rdDriverCompleteは、このまま、残しRDO, ADO.NETの共存になるのでしょうか?

    2.
    テストができていなのですが、下記コードで>箇所のコメントを頂けないでしょうか?
    Imports System.Data.SqlClient

    '接続用オブジェクトの作成
      Dim Conn As Object = OpenConnection(Provider, DSN, RDO.PromptConstants.rdDriverComplete, False, "UID=" & USERID & ";" & "PWD=" & PASSWORD & ";")
      Dim concon As New SqlConnection(conn)
      Dim cmd As New SqlCommand(ConnectExecute(SqlStr, rs, QueryType), concon)

    'SQL文を実行
      concon.Open()
      Dim dr As SqlDataReader = cmd.ExecuteReader()

    '実行結果
      While dr.Read()
      Console.Write("")
      >すべてのSQLの結果を、すべて表示したいのですがこれで正しいですか?

      End While
      dr.Close()
      concon.Close()

    宜しくおねがいします。

    2011年6月22日 12:12
  • もしそうであれば,現行のプログラムは忘れて,.NETでのデータベース操作方法の基本を新たに調査することを優先した方が良いと思えます。古いソースはまず利用できないと思います。

    MicrosoftとしてもVisual Basic 6.0 ユーザー向けのヘルプの提供はVisual Studio 2008までで打ち切っていて2010には含まれていません。新規に作り直すことを暗に言っているように思います。
    2011年6月22日 13:08
  • 1. について、RDO と ADO.NET との共存はないでしょう。どちらかに統一するしかないはずです。
    ADO.NET に移行するだけのスキルがないのであれば、RDO にとどまるのも一つの選択肢だと思います。
    (RDO から ADO.NET に移行したいで始まったスレッドではありますが。)

    2. について、ご自身で確認されてはいかがでしょうか?

    時間がないので、最小限のワークで考えています。

      (中略)

    テストができていなのですが、下記コードで>箇所のコメントを頂けないでしょうか?


    この発言はちょっとないと思います。
    自分の時間は使いたくないけれども、他の人の時間は好きに使っていいと思っているように見えます。
    学ぶ手間を惜しむべきではないと思うのですが。
    • 回答としてマーク 山本春海 2011年7月1日 2:52
    2011年6月22日 14:14
  • テストができていなのですが、下記コードで>箇所のコメントを頂けないでしょうか?


    結論から言えば動かないと思います。理由は、RDOとADO.NETが混在しているからです。

    #Umashikaさんの方でとりあえずテストしてみて下さい。急がれていることやテスト前により精度を上げたい気持ちはわからなくもないですが、やはりご自分でテストされるといろいろな点に気付きますし、それが結果としてフォーラムでのご質問も的確になって、解決への時間が短縮されると思うのです。解決への時間短縮は良い回答も大事ですが、良い質問も大事なのです。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年6月23日 2:47
    モデレータ