Fehler in SP bei createParameter

25/02/2010 - 12:36 von Andreas Vogt | Report spam
Hallo,
habe ein Datenfeld im SQL Server mit Datentyp nVarChar(50)

Beim Auslesen des Wertes mit einer stored Procedure bekomme ich den
Fehler "ein Parameterobjekt ist nicht ordnungsgemàß definiert".

Meine SP sieht so aus:

CREATE PROC dbo.getGehaeusedaten
@ZMK int OUTPUT,
@Zaehler_GM int OUTPUT,
@Zaehler_GA int OUTPUT,
@Erfassungsdatum datetime OUTPUT,
@Status nvarchar(50) Output,
@StatusID int Output,
@Gehaeusenr bigint
AS
SET NOCOUNT ON

SELECT TOP 1
@ZMK = GD.ZMK,
@Zaehler_GM= G.Zaehler_GM,
@Zaehler_GA = G.Zaehler_GA,
@Erfassungsdatum = G.Erfassungsdatum,
@Status = ST.Status,
@StatusID = G.Status

FROM tbl_Status As ST

INNER JOIN (tbl_Gehaeuse_Daten AS GD
INNER JOIN tbl_Gehaeuse AS G
ON GD.Gehaeusenr = G.Gehaeusenr)
ON ST.ID_STATUS = G.Status

WHERE archiv = 0 AND G.Gehaeusenr = @Gehaeusenr

SET NOCOUNT OFF
GO


Mein VBA-Code dazu:

Dim cmdObj As ADODB.Command
Set cmdObj = New ADODB.Command
Dim i As Long

With cmdObj
.ActiveConnection = "Driver={SQL Server Native Client
10.0};Server=...
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter("@ZMK", adInteger,
adParamOutput)
.Parameters.Append .CreateParameter("@Zaehler_GM", adInteger,
adParamOutput)
.Parameters.Append .CreateParameter("@Zaehler_GA", adInteger,
adParamOutput)
.Parameters.Append .CreateParameter("@Erfassungsdatum",
adDate, adParamOutput)
.Parameters.Append .CreateParameter("@Status", adVarChar,
adParamOutput)
.Parameters.Append .CreateParameter("@StatusID", adInteger,
adParamOutput)
.Parameters.Append .CreateParameter("@Gehaeusenr",
adBigInt, , , Gehaeusenr)
.CommandText = "getGehaeusedaten"
.Execute
End With

Der Fehler kommt in der Zeile mit dem adVarChar. Auf dem Server hab
ich die SP getestet, die funktioniert einwandfrei. Was mach ich
falsch?

Gruß Andreas
 

Lesen sie die antworten

#1 Lutz Uhlmann
25/02/2010 - 14:10 | Warnen spam
Du mußt nur Input-Parameter angeben!

Dim cmdObj As ADODB.Command
Set cmdObj = New ADODB.Command
With cmdObj
.ActiveConnection = "..."
.CommandType = adCmdStoredProc
.CommandTimeout = 60
.CommandText = "getGehaeusedaten"

.Parameters("@Gehaeusenr") = Gehaeusenr

.Execute

nRetValue = .Parameters(0).Value

vVariable1 = .Parameters("@ZMK").Value
vVariable2 = .Parameters("@Zaehler_GM").Value
vVariable3 = .Parameters("@Zaehler_GA").Value
vVariable4 = .Parameters("@Erfassungsdatum").Value
vVariable5 = .Parameters("@Status").Value
vVariable6 = .Parameters("@StatusID").Value

End With

Ähnliche fragen