[unixODBC]调用 CC_connect 时缺少数据库名称

[unixODBC]调用 CC_connect 时缺少数据库名称

我在 Ubuntu 16.04 x64 上,并且已经设置了 PostgreSQL 和 ODBC。或者我几乎已经设置好了;当我从 guile 执行一些方案代码时,它会输出以下错误:

Can't perform SQLConnect rc=-1(201) [unixODBC]Missing database name in call to CC_connect.

我认为我犯了一些非常简单的错误,但我不知道应该修改哪些文件来修复它。所以,我的问题是:正在查看哪些文件来查找该数据库名称,或者,如果无法回答这个问题,是否有办法跟踪 guile 代码?

好的,更新:日志如下所示:

CONN ERROR: func=original_CC_connect, desc='', errnum=201, errmsg='Missing database name in call to CC_connect.'
            ------------------------------------------------------------
            henv=0x3dec0d0, conn=0x3ffd280, status=0, num_stmts=16
            sock=(nil), stmts=0x3ffddd0, lobj_type=-999
            ---------------- Socket Info -------------------------------
CONN ERROR: func=PGAPI_Connect, desc='Error on CC_connect', errnum=201, errmsg='Missing database name in call to CC_connect.'
           ------------------------------------------------------------
            henv=0x3dec0d0, conn=0x3ffd280, status=0, num_stmts=16
            sock=(nil), stmts=0x3ffddd0, lobj_type=-999
            ---------------- Socket Info -------------------------------
DSN info: DSN='triples',server='',port='',dbase='',user='',passwd=''
          onlyread='',protocol='',showoid='',fakeoidindex='',showsystable=''
          conn_settings='(null)', conn_encoding='(null)'
          translation_dll='',translation_option=''
conn = 0x3fff340, PGAPI_Connect(DSN='triples', UID='opencog_user', PWD='xxxxx')
Driver Version='09.03.0300,201405140001'
Global Options: fetch=100, socket=4096, unknown_sizes=0, max_varchar_size=255, max_longvarchar_size=8190
                disable_optimizer=0, ksqo=1, unique_index=1, use_declarefetch=0
                text_as_longvarchar=1, unknowns_as_longvarchar=0, bools_as_char=1 NAMEDATALEN=64
                extra_systable_prefixes='dd_;', conn_settings='(null)' conn_encoding=''

编辑:整个问题都可以在 github 上

答案1

据我在 github 问题中看到的那样(我没有看到源代码),问题出在配置文件中。似乎在连接时,您指定的只是 DSN 名称“ triples”。因此,系统将查看配置文件中名为“ ”的部分triples。该obdc.ini文件可以位于用户目录中,也可以位于 中/etc。这意味着您应该在其中一个文件中(我怀疑是/etc/odbc.ini)包含类似以下内容的内容:

[triples]
Description      = Whatever
Driver           = PostgreSQL
Database         = yourdatabse
Servername       = yourserver
Port             = 5432
Username         = yourusername
Password         = yourpassword

相关内容