Hallo,
ich habe ein Problem mit dem Auführen einer Stored Proc in SqlServer 2000.
Die SP ist folgendermassen definiert:
CREATE PROCEDURE dbo.dt_getdynphdata @param VARCHAR(8000), @useId INT AS
SET NOCOUNT ON
....
Wenn ich im Query Analyzer die SP ausführe, dann funktioniert alles, ebenso aus meinem Programm heraus, welches in .NET 1.1 geschrieben ist.
Jetzt habe ich den Code mit VSS2005 geöffnet und nach .NET 2.0 konvertiert und jetzt bekomme ich beim
Ausführen der SP aus dem Code heraus folgende Fehlermeldung:
"Die implizite Konvertierung von Datentyp ntext in varchar ist nicht zulässig. Verwenden Sie die CONVERT-Funktion, um diese Abfrage auszuführen."
Ich habe jetzt schon ein wenig heraus gefunden und zwar das der Fehler erst bei einer bestimmten Länge für den Parameterwert
@param auftritt, nämlich wenn der Wert > 4000 ist.
Ich vermute, das der Wert @param als UNICODE-Wert übergeben wird und es deshalb bei Werten über 4000 Zeichen zu Problemen kommt.
Weiß jemand, ob Strings in .NET 2.0 jetzt grundsätzlich als Unicode-Zeichen gespeichert werden?
Und wie kann ich meinem Parameterwert wieder in das ursprüngliche String-Format zurückkonvertieren?
Viele Grüsse
Jörg
ich habe ein Problem mit dem Auführen einer Stored Proc in SqlServer 2000.
Die SP ist folgendermassen definiert:
CREATE PROCEDURE dbo.dt_getdynphdata @param VARCHAR(8000), @useId INT AS
SET NOCOUNT ON
....
Wenn ich im Query Analyzer die SP ausführe, dann funktioniert alles, ebenso aus meinem Programm heraus, welches in .NET 1.1 geschrieben ist.
Jetzt habe ich den Code mit VSS2005 geöffnet und nach .NET 2.0 konvertiert und jetzt bekomme ich beim
Ausführen der SP aus dem Code heraus folgende Fehlermeldung:
"Die implizite Konvertierung von Datentyp ntext in varchar ist nicht zulässig. Verwenden Sie die CONVERT-Funktion, um diese Abfrage auszuführen."
Ich habe jetzt schon ein wenig heraus gefunden und zwar das der Fehler erst bei einer bestimmten Länge für den Parameterwert
@param auftritt, nämlich wenn der Wert > 4000 ist.
Ich vermute, das der Wert @param als UNICODE-Wert übergeben wird und es deshalb bei Werten über 4000 Zeichen zu Problemen kommt.
Weiß jemand, ob Strings in .NET 2.0 jetzt grundsätzlich als Unicode-Zeichen gespeichert werden?
Und wie kann ich meinem Parameterwert wieder in das ursprüngliche String-Format zurückkonvertieren?
Viele Grüsse
Jörg
Comment