2016-11-09 17 views
1

私はRSQLServerを使用しようとしており、最初にR studioを使用してRSQLServerをインストールしました。私はこれをこのように使用しようとしています。RSQLserverを使用できません

library(RSQLServer) 
library(DBI) 
drv <- dbDriver("SqlServer") 
conn <- dbConnect(drv, url = "Server=**MYSERVERURL;database=DBName;trusted_connection=yes;") 
res <- dbSendQuery(conn, "SELECT TOP 100 * FROM test_table (NOLOCK)") 
str(res) 

しかし、毎回エラーが発生しています。何か不足していますか?エラーはオブジェクトが見つかりません。最初に任意のドライバ(おそらくjTDS)を設定する必要がありますか?はいの場合は誰でもその手順を共有できますか?ありがとう。

エラーテキスト

> conn <- dbConnect(drv, url = "Server=**MYSERVERURL;database=DBName;trusted_connection=yes;") 
Error in dbConnect(drv, url = "Server=**MYSERVERURL;database=DBName;trusted_connection=yes;") : 
    object 'drv' not found 
> res <- dbSendQuery(conn, "SELECT TOP 100 * FROM test_table (NOLOCK)") 
Error in dbSendQuery(conn, "SELECT TOP 100 * FROM test_table (NOLOCK)") : 
    object 'conn' not found 
> str(res) 
Error in str(res) : object 'res' not found 

注:テーブルとデータベースの名前が変更されました。

+1

エラーメッセージを表示して、お使いのOSと、rClrパッケージをインストールしているかどうかを教えてください。 –

+0

私はWindowsプラットフォームで作業しています。基本的に私はR Studioでいくつかのクエリを実行し、SQL Serverに接続しようとしています。 reqはRSQLSerrverパッケージを使用して大量のデータを取得することですが、私はRODBCを使用してこれを行うことができます。 –

+0

dbConnectでエラーが発生しました(drv、url = ** my db string **、接続が作成されていないようです、いいえ、rClrパッケージがインストールされていません) –

答えて

1

drv <- RSQLServer::SQLServer() 

代わりの

drv <- dbDriver("SqlServer") 

あなたがダウンロードしてjTDS driverをインストールしている必要がありますを使用してみてください。

If you intend to use integrated security (Windows Authentication) to authenticate your server session, you will need to download jTDS and copy the native single sign on library (ntlmauth.dll) to any location on your system’s PATH (e.g. Sys.getenv("PATH")).

が出所:あなたはあまりにもDLLをインストールする必要がWindows認証の場合は

https://cran.r-project.org/web/packages/RSQLServer/RSQLServer.pdf


あなたのJDBC接続文字列は奇妙に見える、あなたのJDBC接続文字列が正しいことを確認してください。

あなたはのjTDSドライバに接続文字列の構文を使用している場合は、マイクロソフト

のJDBCドライバは異なる のjTDS構文はここで指定されている。

http://jtds.sourceforge.net/faq.html#urlFormat

jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]] 

」でありますSQLサーバー"。


のMicrosoft JDBC構文は、ここで指定されたが、私はそれが動作しないと思われるので、RSQLServer is based on the cross-platform jTDS JDBC driver

https://msdn.microsoft.com/en-us/library/ms378428(v=sql.110).aspx

例:

jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true; 

では "localhost" の部分を交換してください非標準の場合は "myServer.honey.moon.com"のようなIPアドレスまたはサーバー名インスタンスのIPポート(1433ではなく)は "localhost:1234"を使用します。

SQL Server Management Studioを使用してデータベースに接続するために使用する接続文字列を調べると、IPポートを把握できます。

+0

>ライブラリ(RSQLServer)RSQLServer :: SQLServer() エラー: 'RSQLServer'のパッケージまたは名前空間のロードに失敗しました ライブラリ(DBI) > drv

+0

今、エラーが増えています。私は2日間それをデバッグしようとしました。おそらく私はRODBCだけに行くでしょう。私はRODBCを使ってこれらのことをすべて行うことができます。あなたのお手伝いをしてくれてありがとうございました。 –

+0

ようこそ+良い判断では、パフォーマンスの問題が発生するまで(一括挿入が不可能または更新が遅いなど)、RSQLServerを使用する必要はありません。 –

関連する問題