2
누구든지이 작업을 수행하는 방법을 알고 있습니까? showConnections는 odbcConnect에서 열린 연결을 나열하지 않습니다.열려있는 RODBC 연결을 모두 표시하십시오
누구든지이 작업을 수행하는 방법을 알고 있습니까? showConnections는 odbcConnect에서 열린 연결을 나열하지 않습니다.열려있는 RODBC 연결을 모두 표시하십시오
다음과 같은 방법으로 검색 범위를 좁힐 수 있습니다. 현재 RODBC 클래스의 환경 변수를 모두 반환합니다.
envVariables<-ls()
bools<-sapply(envVariables, function(string){
class(get(string))=="RODBC"
})
rodbcObj<-envVariables[bools]
닫힌 연결은 여전히 RODBC 클래스이지만 그래도 여기서는 약간의 작업이 있습니다.
trycatch를 사용하여 연결된 RODBC 개체의 연결 정보를 가져 오는 기능을 정의 할 수 있습니다. 연결이 열려 있으면이 명령이 제대로 실행되고 변수 이름의 문자열을 반환합니다.
RODBC 객체가 열린 연결이 아니면 오류가 발생합니다.이 오류는 우리가 잡아서 구현 한 방식으로 NA를 반환합니다. 여기에 여러 가지를 반환 할 수 있습니다.
openConns<-function(string){
tryCatch({
result<-odbcGetInfo(get(string))
string
}, error = function(e){
NA
})
}
그런 다음 오류에 해당하는 반환 값을 제거합니다. 내 경우 엔 NA가 없으니. 나 돌아 가라. 거기에
na.omit(sapply(rodbcObj, openConns))
또는 대안
result<-sapply(rodbcObj, openConns)
result[!is.na(result)]
질문이나 의견은 나를
-DMT
큰 감사를 알려 :) 나는이 살펴 보겠습니다! – nathaneastwood
RODBC "채널"의 연결 상태를 확인하려면 RODBC 내에서 널리 사용되기 때문에 안정적인 것으로 예상 할 수있는 개인 기능 'RODBC ::: odbcValidChannel' (3 개의 콜론 !!!)을 호출 할 수 있습니다. 왜 그런 중요한 기능이 RODBC에서 공개되었는지). 패키지'RODBCext'는 비슷한 기능을하지만 패키지 내에서 개인 기능을가집니다. –