- PR -

VB6.0 Sybase

1
投稿者投稿内容
未記入
会議室デビュー日: 2006/05/15
投稿数: 2
投稿日時: 2006-05-15 23:59
VB6.0 から Sybaseに登録されているストアドプロシージャを呼び出したところ、
以下のエラーメッセージが表示され、処理が終了してしまいます。

Run-time error '-2147467259 (80004005)':
[DataDirect][ODBC Sybase Wire Protocol driver]Timeout exceeded

直接的な原因や、それにつながる情報をご存知の方がおりましたら、
ご教授頂ければ幸いです。


ちなみに、呼び出し前後のソースは以下です。
Dim ad As adodb.Connection
Dim SqlStatement As String
SqlStatement = "Exec sp_Procedure1 '" & TESTDATE & "'"
Set ad = New adodb.Connection
Let ad.ConnectionString = "DSN=XXX_DEV;UID=999;PWD=999"
ad.Open
ad.Execute (SqlStatement)

このプロシージャ(sp_Procedure1)は、単純な集計をするSQL文で構成されてます。
直接実行した場合、問題なく事実行されます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-16 01:05
引用:

未記入さんの書き込み (2006-05-15 23:59) より:

VB6.0 から Sybaseに登録されているストアドプロシージャを呼び出したところ、
以下のエラーメッセージが表示され、処理が終了してしまいます。


通常の SELECT コマンドなどでは試されましたか?
原因の切り分けのひとつとして必要です。

関係ないですが、

引用:

ad.Execute (SqlStatement)


引数を括弧で括る場合は、Call で呼び出しをしないと意味合いが変わってきます。
ご注意ください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-16 09:14
ストアド プロシージャであれば...

ADODB.Command を生成して、CommandType を adCmdStoredProc にした上で、
CommandText にコマンドを書くのが普通だと思います。
パラメータを渡すのであれば、.Parameters.Append メソッドで追加する必要があるのではないでしょうか。

# まずは、引数なしの簡単なストアド プロシージャから試された方が良いですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
会議室デビュー日: 2006/05/15
投稿数: 2
投稿日時: 2006-05-16 11:02
ご返答ありがとうございます。
試してみます。
1

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