SELECT con clausola FOR XML - Limite di caratteri

giovedì 04 maggio 2006 - 17.13

Vladislav Profilo | Newbie

Utilizzando SQL server 2000, mi trovo a eseguire una SELECT con clausola FOR XML AUTO,ELEMENTS

La query ritorna una stringa XML, e fin qui è quel che mi serve.

Il problema è che nel caso che la stringa risulti superare x caratteri (non so il numero) la stringa viene arbitrariamente divisa, e sono ritornate più stringhe.

Questa, nel caso di una SELECT con risultati un minimo corposi (nemmeno troppo in realtà), è per me una grossa limitazione.

E' possibile ottenere una stringa XML unica, qualunque numero di caratteri contenga?


Grazie

lbenaglia Profilo | Guru

>E' possibile ottenere una stringa XML unica, qualunque numero
>di caratteri contenga?

Ciao Vladislav,

si tratta di un BUG di ODBC. Per maggiori info leggi il seguente thread:
http://groups.google.it/group/microsoft.public.it.sql/browse_frm/thread/a975898223e1e314

>Grazie
Prego.

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Vladislav Profilo | Newbie

Purtroppo da assoluto newbie quale sono ho difficoltà a capire l'articolo indicatomi.

Vi spiego nel dettaglio quel che voglio fare, utilizzando C#.
Voglio eseguire una SELECT con la clausola FOR XML, la stringa risultante dovrà essere passata all'applicazione, e con essa voglio popolare un DataSet.

Per maggiore chiarezza inserisco qui sotto il codice svuiluppato, e che presenta problemi nel caso di stringa lunga (superiore ai 2033 caratteri appunto):

_____________________________________________________________________

string stringa="SELECT * FROM Eventi FOR XML AUTO, ELEMENTS";
string connectionString = "packet size=4096;user id=sa;data source=SRV2;persist security info=False;initial catalog=Eventi";

SqlConnection conn = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand(stringa);
command.Connection = conn;
command.CommandType=CommandType.Text;
conn.Open();
XmlTextReader iscritto = (XmlTextReader)command.ExecuteXmlReader();
conn.Close();

DataSet ds = new DataSet();

while ( !iscritto.EOF )
{
ds.ReadXml(iscritto);
}
_____________________________________________________________________
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5