2012-02-10 10 views
0

SQL Server 2005バックエンドにAccess ADPが関連付けられています。クライアントのアドレスを更新するストアドプロシージャを実装しようとしています。コマンドラインからxp_cmdshellを使ってプログラムを実行する必要があります。手順は、SSMSから正常に動作しますが、私はADO Connectionオブジェクトを経由して、アクセスVBAから呼び出すとき、それは、次の「エラー」を生成する:Access VBAからのストアドプロシージャコールで「インストールするRECONFIGURE文を実行する」が中断されました

実行時エラー「-2147217900」(80040E14):コンフィギュレーションオプションを'show 詳細オプション'が0から1に変更されました。RECONFIGUREステートメント をインストールしてインストールしてください。

実際にはエラーではありません.sp_configureを実行するとSQL Serverが生成する標準メッセージです。ストアドプロシージャはRECONFIGUREを呼び出しますが、何らかの理由でAccessがそのメッセージをエラーとして解釈します。

どのように私はこれを停止することができますか?

価値があるのは、私が使用しているコードのいくつかです。これはxp_cmdshell有効/無効にするストアドプロシージャです:

そうのように、かなり長いです私のメインSPから呼ばれています
ALTER PROCEDURE [dbo].[spEnableXpCmdShell] 
    (@enabled bit) 
WITH EXECUTE AS 'NKA\jrosenberg' 
AS 
SET NOCOUNT ON 

    EXEC sp_configure 'show advanced options', 1 
    RECONFIGURE 

    EXEC sp_configure 'xp_cmdshell', @enabled 
    RECONFIGURE 

    EXEC sp_configure 'show advanced options', 0 
    RECONFIGURE 

EXEC [dbo].[spEnableXpCmdShell] 1 

最後に、ここでの問題のやや簡略版ですVBAコード:

Public Function DoNCOA(con, Optional caseId = Null, _ 
           Optional docId = Null) As Integer 

    'Call the NCOAProces stored procedure asynchronously. 
    'Returned integer is not success or failure, but position in the queue 

    On Error GoTo ErrHandler 

    Dim cmd As New ADODB.Command, _ 
     prm As ADODB.Parameter 

    With cmd 
     .ActiveConnection = con 
     .CommandText = "spNCOAProcess" 
     .CommandType = adCmdStoredProc 
     .CommandTimeout = 1800 
     Set prm = .CreateParameter("CaseID", adInteger, adParamInput, , caseId) 
     .Parameters.Append prm 
     Set prm = .CreateParameter("DocID", adInteger, adParamInput, , docId) 
     .Parameters.Append prm 
     .Execute Options:=adAsyncExecute, adExecuteNoRecords 
    End With 

    [...That's all the important stuff] 

End Function 

ご協力いただければ幸いです。

答えて

関連する問題