3
tryCatch()
을 사용하여 SQL 쿼리를 작성하여 R이 데이터베이스 연결을 위해 모든 슬롯을 자동으로 사용하지 못하도록합니다. 다음과 같이 보입니다 :R은 tryCatch()보다 깨끗한 것을 제공하여 SQL 쿼리를 안전하게 만드나요?
sql <- "SELECT * FROM addresses WHERE zipcode=10202"
con <- dbConnect(PostgreSQL(), user='user', password='pswd',
dbname='contacts',host='dbserv')
tryCatch({
rs <- dbSendQuery(con, statement=sql)
fp <- fetch(rs,n=-1) # Fetch all
dbClearResult(rs)
fp},
finally=dbDisconnect(con))
fp
R은 목적을 위해 더 깨끗한 것을 제공합니까? readLines()
가 문자열 인수로 어떻게 작동하여 파일 연결이 열려 있는지 확인하고 있습니다.
foo <- function() {
con <- dbConnect(
PostgreSQL(),
user=config$db.user,
password=config$db.password,
dbname=config$db.name,
host=config$db.host
)
on.exit({
dbDisconnect(con)
})
## ... do something w/ connection
}
기능 foo
가 (예외로 인해 또는 종료) 반환하는 것입니다, on.exit
에 전달 된 표현식이 평가됩니다
나는 그것을 많이 좋아한다. 나는'on.exit'에 대해 몰랐다. 하나의 정말 좋은 점은 파일이나 데이터베이스 연결 객체가 열릴 때마다'add = TRUE' 인수를 사용할 수 있다는 것입니다. –