Ich versuche, eine varchar(max)
Ausgabe param
von einem stored procedure
zu erhalten, aber ich bin immer den Fehler oben, dh Data type 0x23 is a deprecated large object, or LOB, but is marked as output parameter
, wenn ich die SP
ausführen in vb.net
Datentyp 0x23 ist ein veraltet großes Objekt oder LOB, sondern als Ausgangsparameter markiert
habe ich SQLNCLI11
Verbindungszeichenfolge versucht, mit, kein Glück ich versucht habe Einstellung Datatypecompatibility=80
, kein Glück
dank im Voraus.
hier sind meine Codes:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim cmd As ADODB.Command
Dim Rs As ADODB.Recordset
Dim prm As ADODB.Parameter
Dim db As New ADODB.Connection
Dim PromoRejectDesc As String = ""
db.ConnectionString = "Provider=SQLNCLI11;UID=user;Pwd=password;Database=POSData;Server=localhost;DataCompatibility=80;MARS Connection=True"
db.Open()
cmd = New ADODB.Command
cmd.ActiveConnection = db
cmd.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc
cmd.CommandText = "DBO.proc_PromoRejectingFactors"
prm = cmd.CreateParameter("@CustID", ADODB.DataTypeEnum.adInteger, ADODB.ParameterDirectionEnum.adParamInput)
prm.Value = 1050009326
cmd.Parameters.Append(prm)
prm = cmd.CreateParameter("@BranchID", ADODB.DataTypeEnum.adInteger, ADODB.ParameterDirectionEnum.adParamInput)
prm.Value = 101
cmd.Parameters.Append(prm)
prm = cmd.CreateParameter("@FulfillmentChannel", ADODB.DataTypeEnum.adInteger, ADODB.ParameterDirectionEnum.adParamInput)
prm.Value = 1
cmd.Parameters.Append(prm)
prm = cmd.CreateParameter("@Tender", ADODB.DataTypeEnum.adInteger, ADODB.ParameterDirectionEnum.adParamInput)
prm.Value = 0
cmd.Parameters.Append(prm)
prm = cmd.CreateParameter("@CreditCard", ADODB.DataTypeEnum.adInteger, ADODB.ParameterDirectionEnum.adParamInput)
prm.Value = -1
cmd.Parameters.Append(prm)
prm = cmd.CreateParameter("@ExcludePromo", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamInput, 1000)
prm.Value = ""
cmd.Parameters.Append(prm)
prm = cmd.CreateParameter("@PromoRejectDesc", ADODB.DataTypeEnum.adLongVarChar, ADODB.ParameterDirectionEnum.adParamOutput, 9999)
cmd.Parameters.Append(prm)
Rs = cmd.Execute
If Rs.State = 1 Then
PromoRejectDesc = prm.Value
MsgBox(PromoRejectDesc)
End If
End Sub