lisp - clisp、plain-odbc 和连接到 sql server 数据库

标签 lisp odbc common-lisp dsn openbsd

我在使用 unixODBC 从 openbsd 机器连接到 sql server 数据库时遇到问题。当我使用 isql 时,我通过得很好:

$ 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]> 

我是 lisp 的新手,所以我在诊断问题时遇到了一些麻烦。任何帮助将不胜感激。

最佳答案

根据 plain-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。

关于lisp - clisp、plain-odbc 和连接到 sql server 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8236593/

相关文章:

list - 在 Lisp 中使用 AND

c# - C# 中的通用 Func<> 类型

loops - Clisp - 将伪代码翻译成实际的 lisp 代码

common-lisp - 使用 ASDF 加载可选组件

lisp - 更改列表的第 n 个元素

Lisp Def 方法结构

c# - 通过 DSN 通过 SQLServer 链接表与 MS Access 数据库进行 ODBC 连接

mysql - 无法通过 Excel 中的 ODBC 连接(虽然连接测试工作正常)

mysql - 由于 SQL 语法错误,Gammu 无法启动服务

list - 在 Common Lisp 中创建升序数字列表