46 votes

Exemple simple de requête Postgres en Ruby

Pour ma vie, je ne peux pas trouver un exemple simple de simplement courir quelque chose comme

"SELECT * FROM MyTable"

en rubis. Tout ce que je trouve suppose un ORM ou des Rails. Pour l'instant, je ne veux pas d'ORM; Je ne veux pas de Rails. Je cherche quelque chose de autonome qui utilise la gem pg et exécute une requête simple.

51voto

justinxreese Points 1324

De la pg joyau de la documentation (http://rubydoc.info/gems/pg/0.10.0/frames)

require 'pg'
conn = PGconn.open(:dbname => 'test')
res  = conn.exec('SELECT 1 AS a, 2 AS b, NULL AS c')
res.getvalue(0,0) # '1'
res[0]['b']       # '2'
res[0]['c']       # nil

Ma prochaine question serait d'authentification avec un DB qui exige un mot de passe. Ressemble, vous pouvez envoyer une chaîne de connexion comme ceci:
PGconn.connect( "dbname=test password=mypass") ou utiliser le constuctor avec les paramètres:
PGconn.new(host, port, options, tty, dbname, login, password) ou d'utiliser un hachage comme :password => '...' voir ici pour toutes les options disponibles.

32voto

Brad Corson Points 321

Essaye ça:

 require 'postgres'

conn = PGconn.connect("ip adddress", 5432, '', '', "db name", "user", "password")
res  = conn.exec('select tablename, tableowner from pg_tables')

res.each do |row|
  row.each do |column|
   puts column
  end
end
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X