我在SQL Server中有此存儲過程,它接受一個數據表和一個NewOwnerID作爲參數,並更新ID與Datatable中的ID匹配的所有行。如何將用戶定義類型的數組傳遞給存儲過程
CREATE Procedure [dbo].[udpUpdateActivityLead]
@ActivityLeadTable ActivityLeadType READONLY,
@OwnerTo int
AS
BEGIN
UPDATE [tblActivity]
set [tblActivity].[employeeID] = @OwnerTo
from @ActivityLeadTable
where [tblActivity].[activityID] in (Select ID from [@ActivityLeadTable])
END
我從C#中使用過,這很簡單。現在最糟糕的是,我需要從MS Access前端調用這個存儲過程。我該怎麼做呢?
我已經試過低於MSACCESS但得到錯誤
創建一個模塊
Public Type MyIDs
ID As Long
End Type
在表單中的用戶定義類型我稱之爲從類clsUpdateLeads的updateRecord功能 我得到錯誤在下面的代碼的第四行
Dim IDList() As MyIDs
Dim objUL As clsUpdateLeads
Set objUL = New clsUpdateLeads
Call objUL.updateRecord(IDList, Me.updateEmployeeID)
updateRecord func在類classModule clsUpdateLeads
Public Sub updateRecord(activityIDs() As MyIDs, NewOwnerID As Long)
If Not (isConnectionOpen()) Then
OpenConnection
End If
Set ADOCom = New ADODB.Command
ADOCom.ActiveConnection = ADOConn
ADOCom.CommandType = adCmdStoredProc
ADOCom.CommandText = "[dbo].[udpUpdateActivityLead]"
ADOCom.Parameters.Append ADOCom.CreateParameter("@ActivityLeadTable", adArray, adParamInput, 10, activityIDs())
ADOCom.Parameters.Append ADOCom.CreateParameter("@OwnerTo", adBigInt, adParamInput, 10, NewOwnerID)
ADOCom.Execute
End Sub
爲什麼你想從MSACCESS前端到SQL服務器進行通信bac kend.instead將所有數據導入msaccess.Do就像這樣。首先創建非常簡單的proc而不使用表類型並查看它是否工作。 – KumarHarsh
@KumarHarsh感謝您的回覆,但我試圖保留幾乎所有需要大腦的服務器級別,並將Access前端用作單純的數據持有者。再一次感謝你。 – Shallo