| 

.NET C# Java Javascript Exception

2
Hallo codekicker

Ich habe hier ein Problem mit SQL und XML.
Meine Abfrage sieht ungefähr so aus:

DECLARE @xml AS XML

SET @xml = ( SELECT *
FROM MeineTabelle
FOR
XML RAW,
ELEMENTS XSINIL,
ROOT,
XMLSCHEMA
)


In der Tabelle werden unter anderem Barcode-Strings gespeichert, die auch mal so aussehen können: �

Ansich wäre das kein Problem, wenn ich den Wert dieser Spalte in einen DATA[]-Tag verpacken würde.
Ich weiss nur nicht wie (wenn das überhaupt geht).
Und das ganze sollte nach Möglichkeit generisch sein, denn es soll an verschiedenen Stellen mit XML gearbeitet werden, und ich möchte nicht jedes einzelne SELECT von Hand auseinanderpflücken müssen.

Hat da jemand vielleicht eine Idee??
03.08.2011
Christian M. Müller 251 1 7
1
Bekommst Du eine Fehlermeldung? Oder geht es darum, dass Du das Kaufmannsund nicht codiert haben möchtest?
LutzJ 03.08.2011
3 Antworten
2
Das bedeutet dann aber, dass Du Steuerzeichen in Deinen Daten hast und es wohl nichts mit dem Barcode String zu tun hat, den Du hier gepostet hast.

Zum Vergleich:
http://connect.microsoft.com/SQLServer/feedback/details/547817/xml-type-does-not-accept-all-character-escape-sequences

Leider gibt es dort auch keinen Workaround. Das sind halt nichtdarstellbare Zeichen...
03.08.2011
LutzJ 1,3k 1 8
Der entsprechende XML-Knoten sieht so aus <feld>&#x0;</feld>
zusätzlich habe ich aber auch noch Probleme mit folgenden Knoten: <feld>Schlüßel</feld>

Das ganze scheint eher ein Encoding-Problem zu sein.
Christian M. Müller 04.08.2011
1
Ah, sorry.... hab ich ganz vergessen... ich kriege folgende Fehlermeldung:
Meldung 9420, Ebene 16, Status 1, Zeile 3
XML-Analyse: Zeile 1, Zeichen 5489, ungültiges XML-Zeichen.
03.08.2011
Christian M. Müller 251 1 7
0
Nach einigen Versuchen bin ich nun auf folgende Lösung gekommen:

DECLARE @xml NVARCHAR(MAX)
SET @xml = N'<?xml version="1.0" encoding="UTF-16"?>' +
( SELECT *
FROM MeineTabelle
FOR
XML RAW,
ELEMENTS XSINIL,
ROOT,
XMLSCHEMA
)


Nicht schön, aber es erfüllt seinen Zweck (für meinen Anwendungsfall).
04.08.2011
Christian M. Müller 251 1 7

Stelle deine Sql-Frage jetzt!