Re: npgsql

Alberto León <[email protected]> Wed, 29 Jun 2011 17:22:49 +0200
Newsgroups gmane.comp.gnome.mono.hispano
Message-ID <[email protected]>
Como sugerencia aparte, JAMÁS concatenes strings en un bucle. Ni te imaginas
como satura el buffer y sube la RAM.

Además, estás concatenando dentro de un reader.

La concatenación es lenta y el reader debe leer lo más rápido posible, esto
es horrible para el rendimiento de la aplicación:
                            p = p + dr[i].ToString();

La solución de Juan es óptima desde todos los puntos de vista.

2011/6/29 Ricardo Javier Aranibar León <[email protected]>

> Hola Lista
>
> Mis consultas son 2:
> 1.- Como puedo realizar un WCF o webservice con npgsql y mono, que me
> retorne los datos en xml o json.
>
> 2.- Mi consulta a la base de datos antes la asía que me retorne un dataset
> ya no quiero mas bien quiero que me retorne un xml y este resultado cargarlo
> a una lista.
> estoy probando y tengo este código, funciona me carga el xml dentro el
> xmldocument me parece q no esta bien por el while, tienen alguna forma mejor
> de hacerlo???
> en vez que me retorne a un xmldocument como podría hacer para q me retorne
> a una List por ejemplo a List <Traspasos> a la espera de su colaboracion
> saludos Ricardo
>
> public System.Xml.XmlDocument RetornarDatosXml() {
>             System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
>             try  {
>                 if (this.AbrirConexion()) {
>                     this.mPgComando = new NpgsqlCommand("select
> query_to_xml('select * from traspasos',true,false,'')", this.mPgCon);
>                     Npgsql.NpgsqlDataReader  dr =
> mPgComando.ExecuteReader();
>                     string p = "";
>                     while (dr.Read()) {
>                         for (int i = 0; i < dr.FieldCount; i++) {
>                             p = p + dr[i].ToString();
>                         }
>                     }
>                     xd.LoadXml(p);
>                     return xd;
>                 }
>                 else
>                 {
>                     throw new Exception("No existe conexion a la Base de
> Datos.");
>                 }
>             }
>             catch (Exception ex)
>             {
>                 throw new Exception(ex.Message);
>             }
>             finally
>             {
>                 this.CerrarConexion();
>             }
>
>         }
> _______________________________________________
> Mono-hispano mailing list
> [email protected]
> https://listas.hispalinux.es/mailman/listinfo/mono-hispano
>

_______________________________________________
Mono-hispano mailing list
[email protected]
https://listas.hispalinux.es/mailman/listinfo/mono-hispano