PostgreSQL en DART
Posted: 7 March, 2013 Filed under: 2. Classes, 4. Library, Castellano, Code, Codigo, English, News, Noticias | Tags: Bases de datos y DART, DART, DART PostgreSQL, Database driver dart, Database drivers dart, Databases in DART, google dart, indexedDB, mongo db DART, MongoDB and DART, MongoDB driver DART, MongoDB para DART, MySQL and DART, mysql DART, MySQL driver DART, MySQL para DART, PostgreSQL, PostgreSQL and DART, PostgreSQL DATABASE DART, PostgreSQL driver DART, PostgreSQL para DART, sqlite DART, Web SQL 2 Comments »Hace un tiempo publicaba un par de posts relacionados con los drivers de base de datos disponibles en DART y más concretamente como trabajar con MongoDB y MySQL en DART.
En esta ocasión voy a hablar del fantástico trabajo realizado por Greg Lowe con el paquete postgresql que nos permitirá trabajar con bases de datos PostgreSQL en DART.
Este driver de PostgreSql para DART actualmente se encuentra en fase de desarrollo muy temprana (alpha), pero ya está dispoible y podemos comenzar a realizar nuestras primeras prubeas.
Actualmente el paquete no está disponible en PUB, el autor está esperando recibir más usuarios y disponer de un paquete más sólido, si quieres empezar a trabajar con el puedes dirigirte a esta dirección:
https://github.com/xxgreg/postgresql
Cuando el paquete se considere maduro como para entrar en PUB recibirá este nombre: postgresql.
Veamos uno sencillos ejemplos de conexión, queries y ejecución.
Conexión a la base de datos
connect('usuario','database', 'clave', host: 'localhost', port: 5432).then((conn) {
// ...
});
Ejecutando queries
conn.query('select nombre from empleados').toList().then((rows) {
for (var row in rows) {
print(row.nombre); // Referenciamos las columnas por nombre.
print(row[0]); // Referenciamos las columnas por índice.
}
});
Ejecutando acciones sobre la base de datos
conn.execute("update empleados set nombre = 'antonio'").then((result) {
print(result.rowsAffected);
});
Cerrar conexión
conn.close();
NOTA: Debes recordar realizar la llamada a Conexión close() para cerrar la conexión con la base de datos, ya que no se cierra automáticamente.
Encolado de queries
Las queries contra la base de datos se pueden encolcar y ejecutar por orden de encolado.
conn.execute("update empleados set nombre = 'antonio'");
conn.query("select nombre from empleados").toList().then((rows) {
rows.forEach((row) => print(row.nombre);
});
Query streamming
Cuando ejecutas una query contra la base de datos los resultados se devuelven en modo streamming, por lo que puedes utilizar cada fila según las vayas recibiendo.
También puedes esperar a que la base de datos te devuelva todas las filas afectadas por la query llamando al método Stream.toList().
Más info: https://github.com/xxgreg/postgresql
Artículo escrito por Moisés Belchín


Gracias por su articulo amable.
Lo library tambien lo puedes aplicar en el Heroku webhosting platform. Se puede utilizar el Heroku gratuito y se puede empezar desarrolar los web applications en Dart y PostgreSQL.
Mira mi ejemplo del web application aqui:
https://github.com/xxgreg/pgtestapp
Puedes utilizar la version que habia modificado de dart heroku buildpack, que tenia que modificar para asegurar supportando secure postgres connections, cuales hay que aplicar con heroku.
https://github.com/xxgreg/heroku-buildpack-dart
Hi Greg,
Thanks for the comments and for the new links. They’re very interesting, specially the postgreSql sample app for complete this article.
Thanks again and regards.