Ich habe eine gespeicherte Prozedur in SQL Server 2005 mit einem varchar Eingabeparameter definiert als:Wie NULL oder leere Zeichenfolgen an Eingabeparameter der gespeicherten Prozedur mit ADO und VB übergeben?
@Value varchar(24) = NULL
in meiner VB6-Anwendung ich den Parameter mit einer ADO-Funktion einzustellen versuchen:
Set prmParamVal = cmdChkParam.CreateParameter(, adVarChar, adParamInput, Len(paramValue), paramValue)
Wenn die Wert ich versuche, ist eine leere (Länge Null) Zeichenfolge übergeben, dann habe ich die folgende Fehlermeldung erhalten:
ADODB.Connection error '800a0e7c' Parameter object is improperly defined. Inconsistent or incomplete information was provided.
ich habe versucht, einen Nullwert anstelle des leeren st passieren Klingeln, aber dies führt zu unterschiedlichen Fehlern.
Wie kann ich leere Zeichenfolgen oder NULL-Werte an die gespeicherte Prozedur übergeben?
Ich habe schon viele Artikel gelesen und Foren (sogar meine Frage mehrmals gefunden), aber ohne die richtige Antwort.
Die bisherige Problemumgehung für die leeren Zeichenfolgen besteht darin, die Länge = 1 festzulegen oder die Zeichenfolge = "" (ein Leerzeichen) festzulegen. Aber das ist nicht wirklich nett und ich würde lieber NULL senden. Ich experimentierte auch mit dem Setzen von paramValue auf vbNull, Null, vbNullString oder setzen Sie prmParamVal.value = Leer ohne Glück!
ah! ok, ich denke dein letzter Satz war wichtig! Mein Problem mit Null war immer die Länge von Null - was zu einem Fehler führt.Also wie in meiner db der Parameter als varchar (24) definiert ist, kann ich die Länge auf 24 setzen - ohne irgendwelche Nachteile? –
Yep - als Sproc ist ein VARCHAR (24), Länge auf 24 einstellen. Es wird keine negativen Auswirkungen haben. –