[ psqlodbc-Bugs-1009575 ] MS QUERY fails for multi table query

Поиск
Список
Период
Сортировка
От
Тема [ psqlodbc-Bugs-1009575 ] MS QUERY fails for multi table query
Дата
Msg-id 20111102001301.28B16532E3C4@pgfoundry.org
обсуждение исходный текст
Список pgsql-odbc
Bugs item #1009575, was opened at 2007-10-19 18:15
You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1009575&group_id=1000125

Category: None
Group: None
>Status: Closed
Resolution: None
Priority: 3
Submitted By: Jay Lundschen (datapoint)
Assigned to: Nobody (None)
Summary: MS QUERY fails for multi table query

Initial Comment:
MS QUERY (MSQRY32.exe) fails "ERROR: cross-database references are not implemented:"databasename.public.table"; Error
whileexecuting the query" when using psqlODBC 8.02.05, 8.02.04, 8.02.03.  It works with 8.02.02.  I am using the ANSI
driver.

When looking at the source I noticed the following:

In info.c is

        case SQL_DATABASE_NAME: /* Support for old ODBC 1.0 Apps */

                /*
                 * Returning the database name causes problems in MS Query. It
                 * generates query like: "SELECT DISTINCT a FROM byronnbad3
                 * bad3"
                 *
                 * p = CC_get_database(conn);
                 */
                p = CurrCatString(conn);
                break;

And in connection.c in version 8.02.02 is

const char *CurrCat(const ConnectionClass *conn)
{
        /*
        if (conn->schema_support)
                return conn->connInfo.database;
        else
        */
                return NULL;
}

const char *CurrCatString(const ConnectionClass *conn)
{
        const char *cat = CurrCat(conn);
        if (!cat)
                cat = NULL_STRING;
        return cat;
}

And in connection.c in version 8.02.03 is

const char *CurrCat(const ConnectionClass *conn)
{
        if (conn->schema_support)
                return conn->connInfo.database;
        else
                return NULL;
}

const char *CurrCatString(const ConnectionClass *conn)
{
        const char *cat = CurrCat(conn);

        if (!cat)
                cat = NULL_STRING;
        return cat;
}

The change now allows the database name to be returned in version 08.02.03 and later versions if conn->schema_support
istrue. 

Please let me know if you need more information.



----------------------------------------------------------------------

Comment By: Hiroshi Inoue (hinoue)
Date: 2007-10-22 23:38

Message:
Please try the attached driver ?

regards,
Hiroshi Inoue

----------------------------------------------------------------------

Comment By: Jay Lundschen (datapoint)
Date: 2007-10-22 14:51

Message:
Could you provide a UNICODE version?

Regards,
Jay

----------------------------------------------------------------------

Comment By: Jay Lundschen (datapoint)
Date: 2007-10-21 00:21

Message:
It works!  Thanks.

Regards,
Jay

----------------------------------------------------------------------

Comment By: Hiroshi Inoue (hinoue)
Date: 2007-10-20 08:47

Message:
Could you try the attached driver ?

regards,
Hiroshi Inoue

----------------------------------------------------------------------

You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1009575&group_id=1000125

В списке pgsql-odbc по дате отправления:

Предыдущее
От:
Дата:
Сообщение: [ psqlodbc-Bugs-1010376 ] GUID code missing in convert.c ("Unrecognized C_parameter ..") and fix
Следующее
От: Zoltan Boszormenyi
Дата:
Сообщение: Locale problem with psqlODBC under Fedora 16