2011-11-23 82 views
1

我有問題使用unixODBC從openbsd框連接到sql server數據庫。當我用isql我通過關係很好:clisp,plain-odbc,並連接到一個sql server數據庫

$ isql localProdSqlServer jegdemir GBE#oct 
+---------------------------------------+ 
| Connected!       | 
|          | 
| sql-statement       | 
| help [tablename]      | 
| quit         | 
|          | 
+---------------------------------------+ 
SQL> 

,所以我知道該DSN是設置和unixODBC的正常工作。然而,當我敲開CLISP並嘗試使用純ODBC我不能讓那裏連接:

$ clisp 

<..snip..>> 

[1]> (asdf:oos 'asdf:load-op :plain-odbc) 

<..snip..> 

[2]> (setf *con* (plain-odbc:connect "localProdSqlServer" "jegdemir" "GBE#oct")) 
*** - [unixODBC][FreeTDS][SQL Server]Unable to connect to data source, error 
     code 0, State: S1000. 
The following restarts are available: 
ABORT   :R1  Abort main loop 
Break 1 [3]> 

我是相當新的口齒不清,所以我有一點麻煩診斷問題。非常感激任何的幫助。

回答

1

根據如何純ODBC的作品,你可能需要在/etc/odbc.ini指定一個DSN,是這樣的:

[localProdSqlServer] 
Driver   = FreeTDS 
Description  = localProdSqlServer TDS driver (Sybase/MS SQL) 
Trace   = No 
Servername  = localProdSqlServer 
Database  = DATABASE_NAME 

作爲替代方案,CLSQL圖書館有一個ODBC後端支持連接字符串:

(clsql:connect '("friendly-server-name" "friendly-username" "" 
    :connection-string "DRIVER={FreeTDS};SERVER=localProdSqlServer;DATABASE=DATABASE_NAME;UID=jegdemir;PWD=GBE#oct;PORT=1433;TDS_Version=8.0;APP=clsql") 
      :database-type :odbc) 

在工作中,我一直使用CLSQL連接到SQL Server。