<br />
library(RODBC) # connect the database<br />
myconn<-odbcConnect("xxxx",uid="sa",pwd="admin")<br />
ff=function(tab,i,myconn){<br />
library(RODBC) #利用snowfall包,必须重新加载一次,好奇怪!!!<br />
temp=sqlQuery(channel=myconn,query=paste("select top 10 * from ",tab[[i]],sep=" "),<br />
stringsAsFactors=F)<br />
return(temp)<br />
}</p>
<p>tab=sqlTables(myconn)$TABLE_NAME[20:21]<br />
tab=strsplit(tab,split=" ")<br />
tab<br />
#tab是一个列表<br />
[[1]]<br />
[1] "boutlist201201"</p>
<p>[[2]]<br />
[1] "boutlist201202"<br />
library(snowfall)<br />
sfInit(parallel=T,cpus=2)<br />
l=sfLapply(seq_along(tab),FUN=ff,tab,myconn)<br />
#Error in checkForRemoteErrors(val) :<br />
# 2 nodes produced errors; first error: first argument is not an open RODBC channel<br />
sfStop()</p>
<p>lapply(seq_along(tab),FUN=ff,tab,myconn)<br />
#最后,甚至用lapply也不对,报错提示:<br />
#Error in tab[[i]] : attempt to select more than one element<br />
难道是我对lapply的理解不对吗
</p>