[unixODBC] Nome do banco de dados ausente na chamada para CC_connect

0

Estou no Ubuntu 16.04 x64 e configurei o PostgreSQL e o ODBC. Ou eu quase tenho; quando executo algum código de esquema da guile, ele gera o seguinte erro:

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

Acho que cometi um erro bastante simples, mas não consigo descobrir com quais arquivos devo mexer para corrigi-lo. Então, minha pergunta é: quais arquivos estão sendo procurados para encontrar o nome do banco de dados, ou, não respondendo, existe uma maneira de rastrear o código do guile?

Ok, atualize: os registros são assim:

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=''

Editar: a edição inteira está disponível no github

    
por Chiffa 26.09.2016 / 11:21

1 resposta

0

Até onde pude ver no problema do github (não vi as fontes), o problema está no arquivo de configuração. Parece que, na conexão, tudo o que você especifica é o nome do DSN ' triples '. Assim, o sistema cuidará de uma seção chamada ' triples ' no seu arquivo de configuração. O arquivo obdc.ini pode residir no diretório do usuário ou em /etc . Isso significa que você deve ter em um desses arquivos (eu suspeito que /etc/odbc.ini ) algo como:

[triples]
Description      = Whatever
Driver           = PostgreSQL
Database         = yourdatabse
Servername       = yourserver
Port             = 5432
Username         = yourusername
Password         = yourpassword
    
por Marc Vanhoomissen 12.10.2016 / 11:52