Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Xml, DBExpress y TSQLQuery (https://www.clubdelphi.com/foros/showthread.php?t=47506)

Gran Cacique 30-08-2007 00:54:31

Xml, DBExpress y TSQLQuery
 
Hola amigos.
Tengo una gran, pero gran problema, (que raro).

Al hacer una consulta a traves de TSQLQuery a un campo de tipo XML, el TSQLQuery me devuelve la informacion intercalada con #0 valores que no puedo sacar ni con StringReplace.

<'#0'd'#0'o'#0'c'#0'u'#0'm'#0'e'#0'n'#0't'#0'>'#0'l'#0'u'#0'i'#0's'#0'<'#0'/'#0'd'#0'o'#0'c'#0'u'#0'm'#0'e'#0'n'#0't'#0'>'#0

Estos valores al ser sacados a un archivo de texto aparecen como barras (|)

esta es la parte del codigo que me trae la dichosa cadena

qryLoadXML.Fields.FieldByName('Data').AsString;

Bueno, lo importante es que es un campo de tipo XML dentro de una base de datos.

Esta consulta me sale bien con ADO, pero debo hacerla con DbExpress.

¿Saben Ustedes que puedo hacer? ¿Alguna Idea de como salir de este problema?

De antemano, Muchas gracias

Gran Cacique 03-09-2007 18:37:47

dado que lo encontre, ayudare a quienes ya tienen este problema
 
Bueno, nadie respondio pero encontre una manera parche para solucionar el tema.
En la consulta al campo memo, coloquen un cast que convierta el campo xml en texto (por ejemplo
CAST(T.c.value('@name','varchar(30)') as varchar(max))
)
Luego Tomen el valor como un variant (qryLoadXML.Fields.FieldByName('Data').variant) y pasenselo a un campo tipo memo. Asi veran como queda el xml. Posteriormente ya pueden pasar el valor a un clientdataset o hacer lo que quieran.
Recuerden que este problema solo da con dbexpress, con ado anda super.

Saludos a todos los que lean esto, espero les ayude


La franja horaria es GMT +2. Ahora son las 10:06:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi