2012-02-11 45 views
4

我正在嘗試使用Haskell的Oracle數據庫,並且遇到了這樣的問題。 所以,有這個代碼。 模塊主要哪裏使用HDBC連接到Haskell中的Oracle數據庫

import Database.HDBC 
import Database.HDBC.ODBC 

main :: IO() 

main = do 
     let connectionString = "Driver={Microsoft ODBC for Oracle};Server=127.0.0.1;Uid=valera;Pwd=2562525;" 
     let ioconn = connectODBC connectionString 
     conn <- ioconn 
     vals <- quickQuery conn "SELECT * FROM PERSONS_TEST" [] 
     print vals 
     return() 

是不是很簡單?但那不行。使用此連接字符串錯誤是

*** Exception: SqlError {seState = "[\"HY090\"]", seNativeError = -1, seErrorMsg = "sqlGetInfo SQL_TXN_CAPABLE: [\"0: [Microsoft][ODBC driver for Oracle]\\65533... 

然後65333重複多次。而與此

Provider=msdaora;Data Source=127.0.0.1;User Id=valera;Password=2562525; 

誤差

*** Exception: SqlError {seState = "[\"IM002\"]", seNativeError = -1, seErrorMsg = "connectODBC/sqlDriverConnect: [\"0: [Microsoft][\\65533... 

又一次65333個重複,直到最後 我想,這個問題是在連接字符串,但我已經嘗試了一大堆人(我已使用http://www.connectionstrings.com/

我在Windows 7 64位上使用Haskell Platform 2011.4.0.0,GHC 7.0.4,Oracle Database XE 11.2。安裝了Microsoft MDAC SDK。

+0

您是否在管理工具中使用Odbc工具創建odbc連接? – 2012-02-11 13:20:18

+0

哦,我沒有。也許我不完全理解ODBC的概念。我會嘗試。 – Spo1ler 2012-02-11 13:40:41

回答

2

\ 65533等等是您的語言環境(RU?)中的ODBC驅動程序錯誤消息字符串的符號。我發現在英語語言環境系統中開發最好的方式,因此在英語語言中顯示的ghci控制檯中的錯誤消息可以被讀取。

+0

是的,我的語言環境是俄語。 – Spo1ler 2012-02-11 18:16:35