Dzieki, wszystko dziala pieknie - ale niestety pojawil sie jeszcze jeden problem:
Dane tekstowe (zapisane w kodowaniu UTF-8) zawieraja gdzies wewnatrz binarnie znak chr(0), bitowo '00000000' - po prostu ktos wklepal taki tekst do formularza na stronie (co jest mozliwe) i teraz chce go zapisac do bazy... Wszystko jest zgodnie z UTF-8 poniewaz każdy znak w ASCII jest takze znakiem UTF-8.
I teraz mam procedure w bazie, ktora chce wywolac z parametrem zawierajacy powyzszy string z formularza:
Kod
CREATE PROC dbo.procedura
@string nvarchar(MAX)
AS
SELECT @string
Tworze zapytanie:
Kod
EXEC dbo.procedura @string='aaaa cccc'
gdzie spacja to wlasnie nasz znak chr(0) (bitowo '00000000' )
...i niestety problem - komunikat krzyczy ze nie zamknelismy stringa...
Probuje zatem tak:
Kod
EXEC dbo.procedura @string='aaaa'+char(0)+'cccc'
...niestety dowiaduje sie ze w parametrze nie mozna stosowac funcji char().
Probowalem jeszcze encjami:
Kod
EXEC dbo.procedura @string='aaaa\000cccc'
ale to tez nie daje rezultatow.......
Jest jakis inny sposob zapisania char(0) w stringu