Parameter object is improperly defined. Inconsistent or incomplete information was provided.

by Martin 3. September 2010 09:22
Vid ett försök att använda Excel-makron för att anropa procedurer i SQL Server stötte jag på nedanstående felmeddelande {{ Parameter object is improperly defined. Inconsistent or incomplete information was provided. }} Den kod jag försökte köra var ungefär följande: {code:vb.net} oCmd2.CommandText = "sp_addextendedproperty" oCmd2.ActiveConnection = oCon.ConnectionString oCmd2.CommandType = adCmdStoredProc ' Hämta parametrar oCmd2.Parameters.Refresh ' Sätt parametrar oCmd2.Parameters("@name").Value = sExProp oCmd2.Parameters("@value").Value = CVar(sValue) oCmd2.Parameters("@level0type").Value = "SCHEMA" oCmd2.Parameters("@level0name").Value = sSchema oCmd2.Parameters("@level1type").Value = "TABLE" oCmd2.Parameters("@level1name").Value = sTable oCmd.Parameters("@level2type").Value = vbNull oCmd.Parameters("@level2name").Value = vbNull oCmd2.Execute If Err.Number <> 0 Then Debug.Print Err.Description End If {code:vb.net} Det tog lång tid för mig att förstå vad problemet egentligen var. Slutligen visade det sig att det hade med parametern @value att göra. Den var nämligen av datatypen sql_variant men i ADO översattes den till typen adVarBinary. Lösningen blev att hårt ändra den till adVarWChar istället och sätta en lämplig längd på den.

Tags:

SQL Server