我正在嘗試重新編譯RODBC軟件包,以便我可以從OS X 10.10.3上的R連接到MS SQL Server。我試圖修改我在這裏找到的指令here,但我不確定在哪裏指向$ DYLD_LIBRARY_PATH=
(我已經嘗試了/Library/ODBC/
和/Library/ODBC/Actual SQL Server.bundle/Contents/MacOS/
,但無論如何都無法連接到數據庫)。有沒有人成功做到這一點?另外,一旦重新編譯,我應該使用odbcconnect
還是odbcdriverconnect
?我使用odbcconnect
命令在同一臺機器上使用R從Windows VM成功連接/執行查詢。提前致謝!在OS X上使用Actual Technologies SQL Server驅動程序重新編譯RODBC 10.10.3
回答
我想有人可以舉報我發佈「不是答案」的東西,但我想我在18個月前的R-SIG-Mac郵件列表存檔中發現了一些可能或可能沒有用的材料。它具體說明作者認爲二進制文件應位於何處。這是太長髮布的評論:
From: Marc Schwartz <[email protected]>
Subject: Re: [R-SIG-Mac] RODBC not connecting from my Mac
Date: October 30, 2013 8:35:24 AM PDT
To: [email protected] R <[email protected]org>
「大家好,
我想跟進這一線索,如我上面所提供的信息是不完全的,因爲我現在知道從與Ripley教授交談,通過在Apple開發者論壇中搜索以及與Actual Technologies(AT)技術支持部門進行電子郵件交換的在線信息。
從OS X 10.6(Snow Leopard)開始,Apple刪除了ODBC管理員GUI應用程序從默認的操作系統安裝,正如我上面提到的。蘋果版本是和仍然可以作爲一個單獨的d我也注意到,從Apple.com下載並且AT人員開始支持併發布和更新稱爲ODBC管理器的版本。
但是,這只是事情的一部分,事實證明。
從OS X 10.8(Mountain Lion)開始,Apple開始摒棄直接支持IODBC的過程。 iODBC的10.8包含在XCode中的頭文件顯然具有這種跡象,但它並沒有公開地記錄在其他任何地方,包括XCode發行說明。 iODBC的二進制dylib文件仍然存在於10.8的/ usr/lib中,所以如果你想使用例如10.8上的OS X的RODBC二進制文件,那就沒有問題了。除非手動設置配置文件,否則您仍然需要ODBC管理員/管理器GUI設置DSN配置。
沒有具體的跡象表明爲什麼,但蘋果代表在蘋果開發者論壇上發佈的8月份的蘋果代表論壇上表示,蘋果公司已決定進行默認安裝OS X上的iODBC。這個回覆是給另一個注意到頭文件內容的用戶指出的,併發布了一個查詢。蘋果代表建議用戶開始考慮前往iODBC.org獲取可用的OS X二進制文件或向前移動的源代碼。或者,用戶應考慮轉移到其他ODBC工具,如unixODBC或使用本機(非ODBC)驅動程序來獲取感興趣的數據源。
隨着10.9(小牛),蘋果現在完全從默認的OS X安裝中刪除iODBC。在XCode的最新版本中,iODBC的二進制dylib文件出現在10.9的SDK樹中,但頭文件已被刪除,從而導致需要從源構建依賴iODBC的應用程序的人們遇到問題。但是有跡象表明,在將來的某個時候,即使是iODBC dylib二進制文件也會從XCode發行版中刪除。至少在短期內,人們可以將dylib文件從10.9中的SDK樹中可行地複製/移動到/ usr/lib,或者簡單地將其鏈接到它們,但這當然意味着僅僅爲此目的安裝XCode,如果沒有其他需要爲了它。
上週我從10.8升級到10.9之後,在使用帶有AT驅動程序的RODBC二進制文件訪問我們的Oracle服務器時,我沒有任何問題。因此,我沒有初始依據認爲10.9有任何錯誤。
但是,我當時和現在都不知道的是,AT最近更新了它們的ODBC驅動程序安裝包以包含iODBC二進制文件,具體是因爲Apple之前的iODBC棄用決定。如果它們不在安裝AT驅動程序的系統上(例如10.9),那麼AT安裝包中的iODBC二進制文件將安裝在/ usr/lib中,以使AT驅動程序能夠正常工作。這對於AT來說很重要,因爲它們的驅動程序被編譯爲使用iODBC而不是unixODBC。我巧妙地更新了我的MacBook Pro上的AT驅動程序安裝,上個星期更新到10.9後,這在10.9上偏向了我對iODBC支持的觀點。因此,正如Mikkel在原文中指出的那樣,人們需要知道iODBC已經從OS X 10.9中完全刪除。
正如蘋果代表在發佈論壇上的回覆中指出的那樣,如果您希望繼續在OS X上使用帶有ODBC驅動程序的iODBC,則可以直接訪問iODBC.org。如果您選擇購買並使用AT ODBC驅動程序,正如我爲Oracle所做的那樣,如果沒有其他情況,iODBC二進制文件現在將安裝在您的系統上。 AT安裝軟件包還包含ODBC管理器GUI。
替代品當然會像Mikkel所做的那樣轉移到unixODBC,小心不管您選擇使用哪種ODBC驅動程序都是兼容的。如果你選擇沿着這條路走下去,就像我在上面的回覆中提到的那樣,你需要從源代碼編譯RODBC包,因爲它默認是針對OS X針對iODBC庫進行編譯的。
感謝Ripley教授的溝通和AT支持人員對當前情況及其社區支持的澄清。
問候,
馬克·施瓦茨」
因爲:a)OP要我說明我的意見,B),這是太長髮布的評論,以及c)可能有助於有人在今後,我張貼此作爲一個答案,即使它不是關於RODBC本身
這是我與R連接到SQL Server在OS X上你可以從微軟
library(RJDBC)
# jar location
classPath <- 'YOUR_DIR/sqljdbc_4.0/enu/sqljdbc4.jar'
stopifnot(file.exists(classPath))
# init driver
drv <- JDBC(driverClass='com.microsoft.sqlserver.jdbc.SQLServerDriver',
classPath=classPath)
# connect to db (replace YOUR_DB, user, pword as needed, obviously!)
conn <- dbConnect(drv, "jdbc:sqlserver://YOUR_DB", user, pword)
# now you are ready to run your version of sql_statement
results <- dbGetQuery(conn, sql_statement)
拿到罐子
我sessionInfo()
調用的相關位:
R version 3.1.2 (2014-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RJDBC_0.2-4 rJava_0.9-6 DBI_0.3.1
- 1. 如何在OS X上使用jTDS驅動程序連接到SQL Server?
- 2. 不能在OS X下編譯CUDA驅動程序API樣本
- 3. R和SQL Server使用Mac OS的實際驅動程序
- 4. 使用SQL驅動程序交叉編譯Go程序
- 5. 如何在OS X上使用SDL2編譯C++程序?
- 6. 在Mac OS X上使用libpng編譯C程序
- 7. 在OS X上使用libssl編譯C程序El Capitan?
- 8. 如何編譯SASL支持到OS X 10.10.3 Postfix-3.0.0
- 9. 在動態C庫(dylib)中編譯爲OS X上的程序
- 10. SQL Server過程重新編譯
- 11. 在Mac OS X下編譯Linux程序
- 12. 在OS X上編譯C程序以在Ubuntu上運行
- 13. 如何在OS X 10.10.3上從Eclipse啓動Glassfish服務器?
- 14. 在Mac OS X上編譯月光應用程序
- 15. 如何在OS X上使用PHP7在MAMP上安裝mongodb php驅動程序?
- 16. 編譯驅動程序
- 17. 用Haskell編譯SDL在OS X上
- 18. 用CoreServices.h在Mac OS X上編譯pulseaudio
- 19. OS X程序不會編譯EXC_BAD_ACCESS
- 20. Zxing OS X演示程序未編譯
- 21. 如何在Mac OS X Leopard上爲Rails 3.X編譯sqlite3,mysql和postgres驅動程序?
- 22. 在沒有重新編譯的情況下使用mysql驅動程序和ejabberd
- 23. 以編程方式「拔下並重新插入」USB設備以在OS X中加載新驅動程序?
- 24. 使用SQL Server通過PDO連接到SQL Server驅動程序
- 25. SQL Server存儲過程自動重新編譯?
- 26. 編譯Linux上的Mac OS X的Qt應用程序
- 27. 在OS X上編譯程序的Java顯示NoclassDefFoundError
- 28. 如何在Mac OS X 10.6.8上編譯和模擬Verilog程序?
- 29. 在OS X上運行帶有clisp-2.49的編譯lisp程序
- 30. 無法在Mac OS X上編譯CUDA + OpenGL程序El Capitan
不太上的話題,但:RJDBC的偉大工程於從R連接到SQL Server上的OS X,無需把玩。只是供參考 – arvi1000
你見過這個:http://www.odbcmanager.net/faq.php(沒有它的經驗,....只是一個搜索試圖找到事情應該找到的地方。) –
我不[回憶](http://stackoverflow.com/a/26219189/324364)必須爲RODBC設置該環境變量。我使用iODBC,但它不應該有所作爲。我寫的指示是否更好? – joran