Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi FOR XML Query (https://www.delphipraxis.net/125787-xml-query.html)

Stevie 11. Dez 2008 16:00

Datenbank: SQL Server • Version: 2005 • Zugriff über: ADO (NativeClient und/oder OLE DB)

FOR XML Query
 
Hallo,

ich habe folgendes Problem:
Wenn ich eine DB-Abfrage mit der "FOR XML AUTO, ELEMENTS"-Klausel über eine TADOQuery von meiner SQL Server 2005 DB durchführe erhalte ich in meinem Ergebnis nicht den erwarteten XML-String (so wie ich ihn über das Management Studio sehen kann), sondern eine etwas cryptisch anmutende Zeichenfolge (teilweise scheinbar UTF-8, da dort jedes 2. Zeichen #0 ist). Es sind aber weder xml Tags vorhanden, noch ist die Struktur so, wie ich sie im Management Studio sehe, wenn ich dort diese Abfrage ausführe. Eine Suche in den Weiten des Internets hat bisher nichts erfolgreiches gebracht - hat evtl hier jemand eine Idee, wie ich Delphi bzw der ADO Query beibringe, mir den xml string zurückzuliefern?

Bernhard Geyer 11. Dez 2008 16:20

Re: FOR XML Query
 
Sind deine Spalten n(var)chars oder nur (var)chars? MS hatte schon öfters Probleme mit Nicht n-Char-Spalten.

Stevie 12. Dez 2008 12:52

Re: FOR XML Query
 
Habs sowohl mit varchar als auch mit nvarchar getestet, beides erfolglos.
Hier einmal die Abfrage:
SQL-Code:
select cat.catname, prod.productname
from categories cat join products prod on catid = productcat
for xml auto, elements
Dies ist der xml Text, den mir Management Studio anzeigt:
XML-Code:
<cat>
  <catname>ASP</catname>
  <prod>
    <productname>Learning ASP in 24 hours version 1</productname>
  </prod>
  <prod>
    <productname>ASP and SQL 2000: The power to develop</productname>
  </prod>
</cat>
<cat>
  <catname>VB.NET</catname>
  <prod>
    <productname>Beginners guide to eCommerce with ASP and XML</productname>
  </prod>
  <prod>
    <productname>Exploring VB.NET Beta 2</productname>
  </prod>
</cat>
<cat>
  <catname>C#.NET</catname>
  <prod>
    <productname>Migrating from C++ to C#</productname>
  </prod>
</cat>
Und das kommt raus, wenn ichs über die ADOQuery abfrage (aus dem Debug Inspector kopiert):

- mit nvarchar Feldern:
Code:
'D'#7'c'#0'a'#0't'#0'n'#0'a'#0'm'#0'e'#0'D'#$B'p'#0'r'#0'o'#0'd'#0'u'#0'c'#0't'#0'n'#0'a'#0'm'#0'e'#0'D'#3'c'#0'a'#0't'#0'D'#4'p'#0'r'#0'o'#0'd'#0#1#3'A'#1#1'A'#3#$11#6#0'A'#0'S'#0'P'#0''#1#1#4'A'#1#2'A'#3#$11'D'#0'L'#0'e'#0'a'#0'r'#0'n'#0'i'#0'n'#0'g'#0' '#0'A'#0'S'#0'P'#0' '#0'i'#0'n'#0' '#0'2'#0'4'#0' '#0'h'#0'o'#0'u'#0'r'#0's'#0' '#0'v'#0'e'#0'r'#0's'#0'i'#0'o'#0'n'#0' '#0'1'#0''#2''#4#1#4'A'#1#2'A'#3#$11'L'#0'A'#0'S'#0'P'#0' '#0'a'#0'n'#0'd'#0' '#0'S'#0'Q'#0'L'#0' '#0'2'#0'0'#0'0'#0'0'#0':'#0' '#0'T'#0'h'#0'e'#0' '#0'p'#0'o'#0'w'#0'e'#0'r'#0' '#0't'#0'o'#0' '#0'd'#0'e'#0'v'#0'e'#0'l'#0'o'#0'p'#0''#2''#4''#3#1#3'A'#1#1'A'#3#$11#$C#0'V'#0'B'#0'.'#0'N'#0'E'#0'T'#0''#1#1#4'A'#1#2'A'#3#$11'Z'#0'B'#0'e'#0'g'#0'i'#0'n'#0'n'#0'e'#0'r'#0's'#0' '#0'g'#0'u'#0'i'#0'd'#0'e'#0' '#0't'#0'o'#0' '#0'e'#0'C'#0'o'#0'm'#0'm'#0'e'#0'r'#0'c'#0'e'#0' '#0'w'#0'i'#0't'#0'h'#0' '#0'A'#0'S'#0'P'#0' '#0'a'#0'n'#0'd'#0' '#0'X'#0'M'#0'L'#0''#2''#4#1#4'A'#1#2'A'#3#$11'.'#0'E'#0'x'#0'p'#0'l'#0'o'#0'r'#0'i'#0'n'#0'g'#0' '#0'V'#0'B'#0'.'#0'N'#0'E'#0'T'#0' '#0'B'#0'e'#0't'#0'a'#0' '#0'2'#0''#2''#4''#3#1#3'A'#1#1'A'#3#$11#$C#0'C'#0'#'#0'.'#0'N'#0'E'#0'T'#0''#1#1#4'A'#1#2'A'#3#$11'0'#0'M'#0'i'#0'g'#0'r'#0'a'#0't'#0'i'#0'n'#0'g'#0' '#0'f'#0'r'#0'o'#0'm'#0' '#0'C'#0'+'#0'+'#0' '#0't'#0'o'#0' '#0'C'#0'#'#0''#2''#4''#3
- mit varchar Feldern:
Code:
'D'#7'c'#0'a'#0't'#0'n'#0'a'#0'm'#0'e'#0'D'#$B'p'#0'r'#0'o'#0'd'#0'u'#0'c'#0't'#0'n'#0'a'#0'm'#0'e'#0'D'#3'c'#0'a'#0't'#0'D'#4'p'#0'r'#0'o'#0'd'#0#1#3'A'#1#1'A'#3#$10'ä'#4#0#0#3#0'ASP'#1#1#4'A'#1#2'A'#3#$10'ä'#4#0#0'"'#0'Learning ASP in 24 hours version 1'#2''#4#1#4'A'#1#2'A'#3#$10'ä'#4#0#0'&'#0'ASP and SQL 2000: The power to develop'#2''#4''#3#1#3'A'#1#1'A'#3#$10'ä'#4#0#0#6#0'VB.NET'#1#1#4'A'#1#2'A'#3#$10'ä'#4#0#0'-'#0'Beginners guide to eCommerce with ASP and XML'#2''#4#1#4'A'#1#2'A'#3#$10'ä'#4#0#0#$17#0'Exploring VB.NET Beta 2'#2''#4''#3#1#3'A'#1#1'A'#3#$10'ä'#4#0#0#6#0'C#.NET'#1#1#4'A'#1#2'A'#3#$10'ä'#4#0#0#$18#0'Migrating from C++ to C#'#2''#4''#3


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz