tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルCommandText プロパティ
記事No14324
投稿日: 2009/12/20(Sun) 09:44
投稿者石田
ADODB Command オブジェクトのCommandText プロパティにSQL ステートメントを代入する方法は分かるのですが、逆に CommandText プロパティの値を取得する手続きが分かりません。msdnでは値取得も可能とありましたので頑張ってみましたが、私の能力では駄目でした。
下記 SQLtxt = cmd.CommandText に至るコードをお教え願います。

Set cmd = New ADODB.Command
.
.
SQLtxt = cmd.CommandText

[ツリー表示へ]
タイトルRe: CommandText プロパティ
記事No14325
投稿日: 2009/12/20(Sun) 11:08
投稿者オショウ
> ADODB Command オブジェクトのCommandText プロパティにSQL ステートメントを代入する方法は分かるのですが、逆に CommandText プロパティの値を取得する手続きが分かりません。msdnでは値取得も可能とありましたので頑張ってみましたが、私の能力では駄目でした。

  読み出すと言う使い方をやったことは無いのですが・・・
  ヘルプを見ると確かに

  引用開始
CommandType プロパティの設定値によっては、CommandText プロパティが変更される場合が
あります。CommandText プロパティはいつでも読み出すことができ、ADO がコマンド実行中
に使う実際のコマンド テキストの参照も可能です。
  引用終了

  とありますネ!

  ただし、そういうコードを書かれているかですが、CommandTypeの設定
  と、CommandTextも代入した後に読み出すことが必要で、CommandType
  を変更するとCommandTextも変更される可能性があるとあります。

  その辺どうなっていますか?

以上。

[ツリー表示へ]
タイトルRe^2: CommandText プロパティ
記事No14326
投稿日: 2009/12/20(Sun) 15:41
投稿者石田
オショウ様
ご対応有難うございます。

cmd.CommandType = adCmdStoredProc としました。

是非この後の処理をお教え願います。

[ツリー表示へ]
タイトルRe^3: CommandText プロパティ
記事No14327
投稿日: 2009/12/20(Sun) 16:09
投稿者オショウ
> cmd.CommandType = adCmdStoredProc としました。

  ヘルプ等では明確に書かれてはいませんが
  CommandType が、adCmdTextの場合は、CommandTextへの
  アクセスは、読み書きともに許可されるが、adCmdStroredProc
  の場合、読み出せない。と言うことかと・・・

  ただし以下のように書けばエラーしなくなるんじゃ〜ないかナ?!

  cmd.CommandType = adCmdText
  cmd.CommandText = "Exec [StoredProc]"

  ダメ?

※ 動作未確認です。

以上。参考まで

[ツリー表示へ]
タイトルRe^4: CommandText プロパティ
記事No14328
投稿日: 2009/12/21(Mon) 17:14
投稿者石田
オショウ様
ご回答有難うございます。
色々やってみましたが、結局ダメでした。
別の方法を考えてみます。

[ツリー表示へ]
タイトルRe^5: CommandText プロパティ
記事No14329
投稿日: 2009/12/21(Mon) 18:54
投稿者オショウ
> 色々やってみましたが、結局ダメでした。
> 別の方法を考えてみます。

  いろいろとは?
  私もいろいろやってますが、そういう『できない』と
  言うことに遭遇したことが無い・・・

  考え方ややり方が、根本的におかしい場合もある可能性
  がありますので、その『いろいろ』を提示してもらわな
  いと、適切なコメントができません。

以上。

[ツリー表示へ]
タイトルRe^6: CommandText プロパティ
記事No14332
投稿日: 2009/12/22(Tue) 11:33
投稿者石田
オショウ様
私の質問に対する真剣な対応を感謝します。
もっと早い段階で私の問題を述べるべきでした。
私の問題はオショウ様が考えられるより、もっと程度の低い段階です。
具体的には、DB(mdb)に保存されたクエリーのSQLを取得しただけです。

Set cmd = New ADODB.Command
Set cat = new ADOX.Catalog

cat.ActiveConnection = CurrentObjで始めて
最後はSQLtxt = cmd.CommandTextで取得できると思い
処理コードを色々やってみましたが結局、私の能力では駄目でした。

以上の通りです。 程度の低い質問で申し訳ありませんが処理コード
をお教え願えれば幸甚です。
なお MDAC Ver.6.0.6001.18000 です。

[ツリー表示へ]
タイトルRe^7: CommandText プロパティ
記事No14333
投稿日: 2009/12/22(Tue) 14:46
投稿者オショウ
> 具体的には、DB(mdb)に保存されたクエリーのSQLを取得しただけです。

  クエリ一覧の取得は・・・
  http://www.nobotan.net/script/vbscriptsql/ado_excel_04.html

  で、クエリの中身の取得は・・・
  そのものズバリは見つけてませんが
  http://support.microsoft.com/kb/255782/ja

  これを細工したら取れるのでは?

※ また時間があれば探したり実験したりしてみます。
  検索してみれば、ヒットすると思うけど・・・

以上。参考まで

[ツリー表示へ]
タイトルRe^8: CommandText プロパティ
記事No14334
投稿日: 2009/12/22(Tue) 16:50
投稿者石田
オショウ様
早速のご回答、有難うございます。
下記の処理で問題が解決しました。

Dim mview As ADOX.View
Set mcat = New ADOX.Catalog
Set mcat.ActiveConnection = cn

Set mview = mcat.Views("QueryName")
Set cmd = mview.Command
SQLtxt = cmd.CommandText

ようやく、すっきりした気分になれました。
今夜はよく眠れそうです。 本当に有難うございました。

[ツリー表示へ]
タイトルRe^5: CommandText プロパティ
記事No14330
投稿日: 2009/12/21(Mon) 18:55
投稿者オショウ
もう1個突っ込み・・・

MDACのバージョンは?

以上。

[ツリー表示へ]