Skip to content

Instantly share code, notes, and snippets.

@PedersenThomas
Last active December 23, 2015 15:59
Show Gist options
  • Save PedersenThomas/6659049 to your computer and use it in GitHub Desktop.
Save PedersenThomas/6659049 to your computer and use it in GitHub Desktop.
import 'dart:async';
import 'package:postgresql/postgresql.dart';
void main() {
var username = "TheRightMan";
var password = "WithTheRightSecret";
var DBname = "AtTheRightPlace";
var uri = 'postgres://$username:$password@localhost:5432/$DBname';
//Opens a connection.
connect(uri).then((Connection connection) {
//Insert a new person
insertPerson(connection, "Thomas", "Pedersen", new DateTime(1990, 01, 1), 1.92).then((_) {
//Print out the table.
printEntireTable(connection).then((_) {
connection.close();
});
});
});
}
Future insertPerson(Connection connection,
String firstname, String lastname,
DateTime dateOfBirth, double height) {
Completer _completer = new Completer();
final String query =
"INSERT INTO person (firstname, lastname, dateofbirth, height) VALUES" +
"('$firstname', '$lastname', '$dateOfBirth', $height);";
connection.execute(query).then((rowsAffected) {
print("Rows Affected: $rowsAffected");
_completer.complete();
}).catchError((error) => _completer.completeError(error));
return _completer.future;
}
Future printEntireTable(Connection connection) {
Completer _completer = new Completer();
final String query = "SELECT id, firstname, lastname, dateofbirth, height FROM person";
connection.query(query).toList().then((rows) {
for(var row in rows) {
var age = ((new DateTime.now()).difference(row.dateofbirth).inDays/365.2425).floor();
print("(${row.id}) ${row.firstname} ${row.lastname} - $age years old - ${row.height}m");
}
_completer.complete();
}).catchError((error) => _completer.completeError(error));
return _completer.future;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment