2011-04-19 5 views
6

저는 Ruby에서 PostgreSQL과 얘기하기 위해 pg 보석을 사용하고 있습니다. res.ntuples == 0을 사용하는 것보다 결과가 없는지 확인하는 더 좋은 방법은 입니까?PGResult가 비어 있는지 확인하는 더 간결한 방법이 있습니까?

conn = PGconn.connect config 

cmd = "select * from labels inner join labels_mail using(label_id) " + 
    "where labels_mail.mail_id = $1 and labels.name = $2" 

res = conn.exec(cmd, [mail_id, mailbox]) 

if res.ntuples == 0 # <=== is there a better way to check this? 
    cmd = "insert into labels_mail (mail_id, label_id) values ($1, $2)" 
    conn.exec(cmd, [mail_id, label_id(mailbox)]) 
end 
+0

를 사용하여 빠르고 간결 또는 거의 모든 다른 데이터베이스. 원시 SQL 또는 데이터 세트를 사용하거나 ActiveRecord와 유사한 본격적인 모델링 ORM으로 작동 할 수 있습니다. –

+0

감사합니다. 그러나 성능상의 이유로 금속 근처에 머무르고 싶습니다. 최소한의 오버 헤드 시작 시간으로 물건을 쓰고 있습니다. 나는 능동적 인 기록 접근법을 시도해 왔으며 시작 시간 동안 느려졌다. – dan

답변

5

ntuples? 그것은, 내가 * 포스트 그레스 또는 MySQL을 사용하여 [후편] (http://sequel.rubyforge.org/) ORM 보석을 사용하는 것이 좋습니다 매우 *, 그냥 팁으로 zero?== 0보다

if res.num_tuples.zero? 
+0

ntuples이 나를 위해 일합니다 (0.10.1). 감사. 'zero? '를 사용하겠습니다. – dan

+0

'num_tuples'는 단순히'ntuples'의 별칭 일뿐입니다. 둘 다 동일한 결과를 산출합니다. 좋은 ol 원숭이 패칭 (!) –

관련 문제