标签: rodbc

SQL Server RODBC连接

有没有人有一个连接字符串示例使用RODBC并连接到MS SQL Server 2005或2008.

谢谢.

r rodbc

57
推荐指数
3
解决办法
9万
查看次数

如何在64位窗口中将R与Access数据库连接?

当我尝试连接R与Access数据库时,我收到一个错误

odbcConnectAccess is only usable with 32-bit Windows
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

library(RODBC) 
mdbConnect<-odbcConnectAccess("D:/SampleDB1/sampleDB1.mdb")
Run Code Online (Sandbox Code Playgroud)

ms-access r rodbc

42
推荐指数
4
解决办法
5万
查看次数

RODBC查询返回零行

问题:RODBC(错误地)返回零行

情况:

我正在使用RODBC连接到我使用商业数据库的ODBC驱动程序创建的DSN(OSI Soft的PI Historian Time Series DB,如果你很好奇的话).

> library(RODBC)
> piconn <- odbcConnect("PIRV", uid = "pidemo")
> sqlStr <- "SELECT tag, time, status, value FROM piinterp WHERE tag = 'PW1.PLANT1.PRODUCTION_RATE' and time > DATE('-4h') and timestep = '+2m'"
Run Code Online (Sandbox Code Playgroud)

现在,如果我查询,我得到零行.

> sqlQuery(piconn, sqlStr)
[1] TAG    TIME   STATUS VALUE 
<0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)

有了BelieveNRows = FALSE这些,所有仍然显示零结果,即使它应该返回120行.

> sqlQuery(piconn, sqlStr, believeNRows = FALSE)
> sqlQuery(piconn, sqlStr, believeNRows = FALSE, max = 0)
> sqlQuery(piconn, sqlStr, believeNRows = FALSE, max …
Run Code Online (Sandbox Code Playgroud)

sql odbc r rodbc

21
推荐指数
1
解决办法
5028
查看次数

如何停止正在运行的查询?

我使用RODBC向SQL-Server发送查询.有时它们需要花费太多时间来运行,所以我需要取消它们.

单击RStudio中的红色"停止"按钮会产生以下错误消息:

R没有响应您的中断处理请求,因此要停止当前操作,您可能需要完全终止R.

终止R将导致您的R会话立即中止.将中断活动计算,并且将丢弃未保存的源文件更改和工作空间对象.

你想现在终止R吗?

如果我单击是,我的会话确实已终止.(注意:使用Rgui而不是RStudio不会让事情变得更好)

然而:

  • 当我使用另一个软件(名为"Query ExPlus")连接到同一个SQL-Server时,我有一个类似的停止按钮,然后单击它会立即中断查询,而不会发生任何崩溃.

  • 当我使用RPostgres包连接到PostgreSQL数据库时,我也可以随时中断查询.

这两点让我觉得应该有办法解决我的问题.我能做什么?

到目前为止,我的解决方法是:

library(RODBC)
library(R.utils)

withTimeout(mydf <- sqlQuery(myconnection, myquery), timeout=120)
Run Code Online (Sandbox Code Playgroud)

注意:我没有权限从数据库端终止查询.

sql-server r rodbc

21
推荐指数
1
解决办法
6464
查看次数

如何将数据帧插入SQL Server表?

我正在尝试将数据帧上传到SQL Server表,我尝试将其分解为一个简单的SQL查询字符串.

library(RODBC)
con <- odbcDriverConnect("driver=SQL Server; server=database")

df <- data.frame(a=1:10, b=10:1, c=11:20)

values <- paste("(",df$a,",", df$b,",",df$c,")", sep="", collapse=",")

cmd <- paste("insert into MyTable values ", values)

result <- sqlQuery(con, cmd, as.is=TRUE)
Run Code Online (Sandbox Code Playgroud)

..它似乎有效,但不能很好地扩展.有没有更简单的方法?

r rodbc

20
推荐指数
3
解决办法
5万
查看次数

在OS X Mavericks上安装RODBC/ROracle软件包

我一直在尝试安装一些软件包,如RODBC,ROracle或RGtk2 - 用于拨浪鼓.我真的很感激,如果有人可以帮助我解决这个问题,以便我可以在Mac上使用这些应用程序与小牛队和3.1.1 R

我对RODBC和RGtk2都有这种错误:

包'RGtk2'作为源包提供,但不作为二进制警告在install.packages:包'RGtk2'不可用(对于R版本3.1.1)

当我尝试使用type ='source'时,我可以下载或开始下载,但后来我收到这种错误信息......

install.packages中的警告:包'RODBC'的安装具有非零退出状态

oracle r rodbc

20
推荐指数
2
解决办法
2万
查看次数

将R变量传递给RODBC的sqlQuery?

有没有办法将R中定义的变量传递给RODBC包中的sqlQuery函数?

具体来说,我需要将这样的变量传递给标量/表值函数,存储过程和/或SELECT语句的WHERE子句.

例如,让:

x <- 1 ## user-defined
Run Code Online (Sandbox Code Playgroud)

然后,

example <- sqlQuery(myDB,"SELECT * FROM dbo.my_table_fn (x)")
Run Code Online (Sandbox Code Playgroud)

要么...

example2 <- sqlQuery(myDB,"SELECT * FROM dbo.some_random_table AS foo WHERE foo.ID = x")
Run Code Online (Sandbox Code Playgroud)

要么...

example3 <- sqlQuery(myDB,"EXEC dbo.my_stored_proc (x)")
Run Code Online (Sandbox Code Playgroud)

显然,这些都不起作用,但我认为有一些能够实现这种功能的东西.

sql r rodbc

19
推荐指数
1
解决办法
3万
查看次数

连接到MS SQL Server时出现RODBC临时表问题

我在unix上运行R,我使用RODBC包连接到MS SQL服务器.我可以执行一个使用包返回结果的查询,但如果我在SQL查询的某处使用临时表,则返回一个空字符串给我.在浏览网页后,我认为问题可能是RODBC软件包是在最终用户使用标准SQL(而不是MS SQL)编写的时候编写的.我提供了以下代码作为示例.

有趣的是,如果我使用RJDBC包,则不存在临时表问题.但是,RJDBC软件包输入甚至80,000行(10列)的速度非常慢,并且会经常停顿,所以这也不是一个选择.有没有其他人遇到这个问题?如果有其他解决方案我没有想到,我很乐意听到它们.

看来我不是唯一有这个问题的人,也许这是一个R-Bug? http://r.789695.n4.nabble.com/RODBC-results-from-stored-procedure-td897462.html

谢谢

这是R的例子:

library(RODBC)
ch <- odbcConnect(insert your server info here)
qry4 <- "create table #tempTable(
    Test int
)
insert into #tempTable
select 2

select * from #tempTable
drop table #tempTable
"
df4 <- sqlQuery(ch, qry4)
Run Code Online (Sandbox Code Playgroud)

sql sql-server r rodbc

19
推荐指数
2
解决办法
7323
查看次数

RODBC odbcDriverConnect()连接错误

我正在尝试使用

odbcDriverConnect('driver={SQL Server};server=servername\instancename,port;database=testing;username=abc;password=123456') 
Run Code Online (Sandbox Code Playgroud)

连接远程数据库服务器(sql server 2008).但是我得到了

[RODBC]错误:状态08001,代码17,消息[Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB] SQL Server不存在或访问被拒绝.

错误.任何的想法?

我可以用

odbcDriverConnect('driver={SQL Server};server=localhost;database=testing;trusted_connection=true') 
Run Code Online (Sandbox Code Playgroud)

连接我的本地数据库服务器(sql server 2008).

sql-server rodbc

18
推荐指数
2
解决办法
5万
查看次数

RODBC无法识别我的odbc设置

我在Red Hat Linux 6服务器上运行R 2.15.2.我的目标是通过RODBC连接到另一台机器上的MS SQL Server数据库.我做了我的研究,并从微软支持网站下载并安装了Linux版本的MS SQL ODBC驱动程序.我从源代码构建了unixODBC版本2.3.0,因为它是windows驱动程序所必需的,并且还没有在RHL repos中(repo版本是2.2.14).

无论如何,经过一些工作,我终于安装并正确配置了驱动程序,并且我可以通过isql命令成功连接到SQL Server数据库:

$ isql -v test testuser testpass
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>
Run Code Online (Sandbox Code Playgroud)

所以我知道我有我odbc.iniodbcinst.ini文件正确设置.

但是,当我尝试从R中访问ODBC连接时,会发生以下情况:

> test <- odbcDriverConnect('DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass')
Warning messages:
1: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") :
   [RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data 
   source name not found, and no default driver specified
2: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") : …
Run Code Online (Sandbox Code Playgroud)

linux r unixodbc rodbc

17
推荐指数
1
解决办法
1万
查看次数

标签 统计

rodbc ×10

r ×9

sql ×3

sql-server ×3

linux ×1

ms-access ×1

odbc ×1

oracle ×1

unixodbc ×1