Re: problem with CVS version - Mailing list pgsql-odbc

From Dave Page
Subject Re: problem with CVS version
Date
Msg-id E7F85A1B5FF8D44C8A1AF6885BC9A0E41A7535@ratbert.vale-housing.co.uk
Whole thread Raw
In response to problem with CVS version  ("Antonio Pennino" <a.pennino@nocerainformatica.net>)
Responses postgres WIN - latest cygwin port - bad file descriptor when starting postgres
List pgsql-odbc

> -----Original Message-----
> From: Janet Borschowa [mailto:borschow@roguewave.com]
> Sent: 29 July 2004 20:22
> To: Antonio Pennino; pgsql-odbc@postgresql.org
> Cc: Dave Page
> Subject: RE: [ODBC] problem with CVS version
>
> Hi,
> The driver manager maps ODBC API calls with unicode drivers
> as shown below.
> Please note that this is why the trace file shows calls to
> SQLDriverConnectW, etc. The SQL Server ODBC driver is a
> unicode driver.

That's how the DM recognises a unicode driver. It also recognises
unicode applications, and *should* map function calls to the appropriate
unicode or ansi function (at least that's how I read the docs):

-----
You can recompile an application as a Unicode application in one of two
ways:

- Include the Unicode #define contained in the Sqlucode.h header file in
the application.
- Compile the application with the compiler's Unicode option. (This
option will be different for different compilers.)

To convert an ANSI application to a Unicode application, write the
application to store and pass Unicode data. In addition, calls to
functions that support SQLPOINTER arguments must be converted to use
count of bytes.

Once an application is compiled as a Unicode application, if the
application calls an ODBC API function (without a suffix), the Driver
Manager recognizes the application as a Unicode application and converts
the function call to a Unicode function (with the W suffix) if the
underlying driver supports Unicode. When an ANSI application makes a
function call without a suffix, the Driver Manager converts it to ANSI
if the underlying driver supports ANSI. If both the application and the
driver support the same character encoding, the driver manager passes
the calls through to the driver (with certain exceptions for ANSI
applications).
-----

From that, I would expect the ANSI ODBC Test program, supplied by
Microsoft to a) not explicitly call *W functions, and b) have
un-suffixed calls mapped to the ANSI version of the function by the DM.

> You may want to read the Microsoft ODBC
> Programmer's Reference for more information about programming
> in the presence of a unicode driver (its available online
> from Microsoft's website) and that may help you solve your problem.

I've spend quite some time reading the docs - I don't just make stuff up
:-)

Regards, Dave.

pgsql-odbc by date:

Previous
From: "Mario Soto"
Date:
Subject: please help me with Postgresql odbc column bytea problem
Next
From: "Dave Page"
Date:
Subject: Re: problem with CVS version