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

Unicode ODBC driver with support of SQLForeignKeys?

From: Lothar Behrens <lothar(dot)behrens(at)lollisoft(dot)de>
To: pgsql-odbc(at)postgresql(dot)org
Subject: Unicode ODBC driver with support of SQLForeignKeys?
Date: 2009-06-05 11:51:09
Message-ID: 1F582784-BC3D-447A-8711-E92094B68BEC@lollisoft.de (view raw or flat)
Thread:
Lists: pgsql-odbc
Hi,

I have installed the package pgplus-837-1-linux-x32 on my openSuSE  
11.1 system. After figuring out that SQLForeignKeys did not
result me in the expected list of foreign keys I tried to use the  
source code.

I grabbed the source code of version 08.03.0400 and build it as follows:

# configure
# make

I got a problem with the SQLColAttribute definition of the header file  
(unixODBC 2.2.14) located in /usr/local/include:

     SQLRETURN  SQL_API SQLColAttribute(SQLHSTMT StatementHandle,
                                         SQLUSMALLINT ColumnNumber,  
SQLUSMALLINT FieldIdentifier,
                                         SQLPOINTER  
CharacterAttribute, SQLSMALLINT BufferLength,
                                         SQLSMALLINT *StringLength,  
SQLLEN *NumericAttribute
                                                                                 /* spec 
  says (SQLPOINTER) not (SQLEN*) - PAH */ );
                                                                                 /* Ms 
  now say SQLLEN* http://msdn.microsoft.com/library/en-us/odbc/htm/dasdkodbcoverview_64bit.asp 
  - NG */

SQLRETURN SQL_API SQLColAttributeW(
         SQLHSTMT                hstmt,
         SQLUSMALLINT    iCol,
         SQLUSMALLINT    iField,
         SQLPOINTER              pCharAttr,
         SQLSMALLINT             cbCharAttrMax,
         SQLSMALLINT     *pcbCharAttr,
         SQLLEN          *pNumAttr);


And as of http://msdn.microsoft.com/de-de/library/ms713558(en-us,VS.85).aspx 
  SQLLEN is used.

The code of psqlODBC driver is as follows:

/*      SQLColAttributes -> SQLColAttribute */
SQLRETURN       SQL_API
SQLColAttribute(SQLHSTMT StatementHandle,
                         SQLUSMALLINT ColumnNumber,
                         SQLUSMALLINT FieldIdentifier,
                         SQLPOINTER CharacterAttribute,
                         SQLSMALLINT BufferLength,
                         SQLSMALLINT *StringLength,
#if defined(_WIN64)
                         SQLLEN *NumericAttribute
#elif defined(WITH_UNIXODBC) || defined(WIN32)
                         SQLPOINTER NumericAttribute
#else
                         SQLLEN *NumericAttribute
#endif
                         )

SQLRETURN SQL_API SQLColAttributeW(
         SQLHSTMT        hstmt,
         SQLUSMALLINT    iCol,
         SQLUSMALLINT    iField,
         SQLPOINTER      pCharAttr,
         SQLSMALLINT     cbCharAttrMax,
         SQLSMALLINT     *pcbCharAttr,
#if defined(WITH_UNIXODBC) || (defined(WIN32) && ! defined(_WIN64))
         SQLPOINTER      pNumAttr
#else
         SQLLEN          *pNumAttr
#endif
         )


Activated is WITH_UNIXODBC and now my question are the following:

What unixODBC code version matches to what psqlODBC code version?

Is there a version that matches unixODBC 2.2.14?

And at least what versions do support SQLForeignKeys?

Thanks

Lothar

-- | Rapid Prototyping | XSLT Codegeneration | http://www.lollisoft.de
Lothar Behrens
Heinrich-Scheufelen-Platz 2
73252 Lenningen









pgsql-odbc by date

Next:From: Moreno D.Date: 2009-06-06 11:19:18
Subject: Re: Show max_identifier_length causes heavy query execution
Previous:From: Dragan MaticDate: 2009-06-05 11:01:23
Subject: Re: odbc silently dropping national characters in CP1250 encoding

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