Skip site navigation (1) Skip section navigation (2)

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

From: <noreply(at)pgfoundry(dot)org>
To: noreply(at)pgfoundry(dot)org
Subject: [ psqlodbc-Bugs-1009575 ] MS QUERY fails for multi table query
Date: 2007-10-22 23:38:57
Message-ID: 20071022233857.7524D216D72@pgfoundry.org (view raw or flat)
Thread:
Lists: 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: Open
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 while executing 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 is true.

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 by date

Next:From: noreplyDate: 2007-10-23 15:29:37
Subject: [ psqlodbc-Bugs-1009575 ] MS QUERY fails for multi table query
Previous:From: noreplyDate: 2007-10-22 14:51:04
Subject: [ psqlodbc-Bugs-1009575 ] MS QUERY fails for multi table query

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group