Я использую Ubuntu 16.04 x64, и я установил оба PostgreSQL и ODBC. Или у меня почти есть; когда я выполняю код схемы из хитрости, он выдает следующую ошибку:
Can't perform SQLConnect rc=-1(201) [unixODBC]Missing database name in call to CC_connect.
Я думаю, что сделал довольно простую ошибку, но я не могу понять, с какими файлами мне следует повозиться, чтобы исправить ее. Итак, мой вопрос: какие файлы просматриваются, чтобы найти это имя базы данных, или, если я не могу ответить, есть ли способ отследить код хитрости?
Хорошо, обновите: журналы выглядят следующим образом:
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
Насколько я видел в проблеме 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