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
有効/無効にするストアドプロシージャです:
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
ご協力いただければ幸いです。