Sağlanan bir ODBC sürücüsü ve RODBC
paketini kullanarak yeni bir veritabanı sistemini test ediyorum.RODBC Bağlantısı geçersiz
Ben karşılaşmamdır meselenin, (hepsi 2 ~ 3 dakika veya daha az sürede içinde) sadece birkaç sorguları sonra, bağlantı artık
Özellikle R. tarafından geçerli olarak kabul olmasıdır RODBC
paketinde C
numaralı tek bir paket olup, RODBCcheckchannel
numaralı paketin şikayetçisidir. Bu RODBC::sqlQuery
aramalar
if (!odbcValidChannel(channel))
stop("first argument is not an open RODBC channel")
odbcValidChannel
kontrol channel
üç özellikleri ilk satırı sqlQuery()
dolaylı olarak adlandırılır.
R
'da yapılan iki denetimin TRUE
döndürdüğünü onaylayabilirim.
C
kod beri kilitleniyor değil ben R -d valgrind
kullanarak denedi
SEXP RODBCcheckchannel(SEXP chan, SEXP id)
{
SEXP ptr = getAttrib(chan, install("handle_ptr"));
pRODBCHandle thisHandle = R_ExternalPtrAddr(ptr);
return ScalarLogical(thisHandle && TYPEOF(ptr) == EXTPTRSXP &&
thisHandle->channel == asInteger(chan) &&
thisHandle->id == asInteger(id));
}
takip eder, fakat gibi RODBCcheckchannel
için FALSE
Kaynak kodunu döndürür son onay, .Call(RODBC:::C_RODBCcheckchannel, channel, attr(channel, "id"))
mesafesindedir başına se, Bu yardımcı olmadı. Sonra FALSE
döndürür iken
birisi kısa .Call(RODBC:::C_RODBCcheckchannel, channel, attr(channel, "id"))
getiri TRUE
neden olarak ışık döken ?
Tutamakla ilgisi var mı?
aşağıdaki koda izleme ekleyebilir miyim
Tahmin: belki de DB bağlantıyı kapatıyor mu? –
Sadece - burada yeterli bilgi yok. ODBC'nin bir izleme/kayıt özelliği vardır - bunu etkinleştirmeniz, hatayı yeniden oluşturmaya çalışmanız ve ne bulduğunuzu görmeniz gerekir. Bunun olmaması ... Minimal olarak, bu gibi sorun giderme sorunları genellikle söz konusu DBMS ve Sürücü adının ve sürümünün, bazen her iki tarafta da ana işletim sisteminin ve diğer çeşitli ayrıntıların ... bilmemizi gerektirir. . – TallTed
Sunabileceğim tek şey, bir süre sonra uzak DB'lerin bağlantılarını kapattığımı yaşadım, ancak RODBC ve ROracle kullanarak (Oracle ile) bunu gördüm ve her zaman uzak DB bunu yapıyor. – joran