Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
Ich glaube ich werde verrückt. Kann das denn so schwer sein mich zu verstehen?
Ich erkläre es NOCH einmal!
Ich will einen Hexcode bzw. string in einen sql-Tabelle reinschreiben!
Diese Tabelle will ich dann Convertieren!
Zum convertieren nehme ich die obige Procedure!
Es geht auch alles nur wenn ich dann convertiert habe scheint die Tabelle leer zu sein!
Was ist dadran jetzt so schwer?
Das Problem ist die Konvertierungsfunktion!
Die macht wohl nicht so ganz, was sie soll.
Kurz gegoogelt und an Dein Problem angepasst :
alter FUNCTION dbo.HexStrToVarBin(@hexstr varchar(8000))
RETURNS varbinary(8000)
AS
BEGIN
DECLARE @hex char(2), @i int, @count int, @b varbinary(8000)
SET @hexstr = replace ( @hexstr, ' ', '')
SET @hexstr =
CASE LEN(@hexstr) % 2 WHEN 1 THEN '0' ELSE '' END + @hexstr
SET @count = LEN(@hexstr)
SET @b = CAST('' as varbinary(1))
IF SUBSTRING(@hexstr, 1, 2) = '0x'
SET @i = 3
ELSE
SET @i = 1
WHILE (@i <= @count)
BEGIN
SET @hex = SUBSTRING(@hexstr, @i, 2)
SET @b = @b +
CAST(CASE WHEN SUBSTRING(@hex, 1, 1) LIKE '[0-9]'
THEN CAST(SUBSTRING(@hex, 1, 1) as int)
ELSE CAST(ASCII(UPPER(SUBSTRING(@hex, 1, 1)))-55 as int)
END * 16 +
CASE WHEN SUBSTRING(@hex, 2, 1) LIKE '[0-9]'
THEN CAST(SUBSTRING(@hex, 2, 1) as int)
ELSE CAST(ASCII(UPPER(SUBSTRING(@hex, 2, 1)))-55 as int)
END as binary(1))
SET @i = @i + 2
END
RETURN @b
END
Comment