![]() |
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 |
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