From: Abd-Allah Abdul Karim <abli@ufl.edu>
To: pgsql-interfaces@postgresql.org
Subject: PSQLODBC FAQ
Date: Fri, 11 Jun 1999 10:22:45 +0800
Message-ID: <376072F5.F31FB999@ufl.edu> (raw)
hi,
another question. i just read in the FAQ page saying that "psqlODBC
executable is written and compiled to run on 32 bit Wintel platform."
does this mean that the drive cannot be executed in Linux platform? is
there a psqlODBC driver that can be run on linux platform? thanks...
regards
Attachments:psqlodbc_faq.html (text/html, 24.1K) download
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="David Hartwig">
<META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (Win95; I) [Netscape]">
<TITLE>PSQLODBC FAQ</TITLE>
<!-- Insight Distribution Systems - System V - Jun 1998 -->
<!-- %W% :%P% %G% %U% -->
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<TABLE BORDER COLS=1 WIDTH="100%" BGCOLOR="#FFCC33" >
<TR>
<TD>
<CENTER><FONT FACE="Arial,Helvetica"><FONT SIZE=+3>PostgreSQL ODBC Driver
(PsqlODBC)</FONT></FONT></CENTER>
<CENTER><FONT FACE="Arial,Helvetica"><FONT COLOR="#3333FF"><FONT SIZE=+2>FAQ</FONT></FONT></FONT></CENTER>
</TD>
</TR>
</TABLE>
<P>
<BR><FONT FACE="Arial,Helvetica"><FONT SIZE=+1>General</FONT></FONT>
<OL>
<LI>
<U><FONT SIZE=+1><A HREF="#patch">How do I submit an idea for a new feature
or even a patch?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#bug">How do I report a bug or other problems?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#otherdrivers">I've seen other Postgres odbc
drivers out there. Which one is the right one?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#os">What operating systems will the driver run
on?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#install">How do I install the driver?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#compile">Do I even need to compile the driver
to use it?</A></FONT></U></LI>
</OL>
<FONT FACE="Arial,Helvetica"><FONT SIZE=+1>Basic </FONT></FONT>
<OL>
<LI>
<U><FONT SIZE=+1><A HREF="#dsnsetup">How do I setup a datasource?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#dsndiff">What's the difference between a File
DSN, System DSN, and User DSN?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#advancedoptions">How do I access more advanced
driver and/or datasource options?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#commlog">Where can I discover more information
about odbc errors?</A></FONT></U></LI>
</OL>
<FONT FACE="Arial,Helvetica"><FONT SIZE=+1>Connections</FONT></FONT>
<OL>
<LI>
<U><FONT SIZE=+1><A HREF="#conn">What do I need to do to establish a connection
to a database?</A></FONT></U></LI>
<LI>
<FONT SIZE=+1><A HREF="#authuser">Why do I get a message like "User authentication
failed"?</A></FONT></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#authtype">Why do I get a message like "Failed
to authenticate client as Postgres user using unknown authentication type:be_recvauth:
unrecognized message type: 65536" when I try to connect to a datasource?</A></FONT></U></LI>
</OL>
<FONT FACE="Arial,Helvetica"><FONT SIZE=+1>Advanced </FONT></FONT>
<OL>
<LI>
<U><FONT SIZE=+1><A HREF="#datatypes">What data types does the driver support?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#primarykeys">How do I get my application to
recognize primary keys?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#canon">Why does the PostgreSQL backend complain
about running out of memory when some I browse tables with primary keys?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#largeobjects">Can I use large objects or OLE?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#rowversioning">How do I use the row versioning
-OR- why do I get a message about no operator for xid and int4?</A></FONT></U></LI>
</OL>
<FONT FACE="Arial,Helvetica"><FONT SIZE=+1>Microsoft Products </FONT></FONT>
<OL>
<LI>
<U><FONT SIZE=+1><A HREF="#accesswhere">With MS Access, why can't I GROUP
BY, ORDER BY, or even select WHERE ,on columns which are of type
"text"?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#accessindex">With MS Access, why can't I index
on text fields -OR- why do I get the "Invalid field definition 'field'
in definition of index or relationship?</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#accessgroupby">Why does MS Access sometimes
complain about a GROUP BY or ORDER BY not being in the target list? (UPDATED)</A></FONT></U></LI>
<LI>
<U><FONT SIZE=+1><A HREF="#accesspassthru">Why does Access force me specify
the Data Source each time I run my SQL Pass-Thru query?</A></FONT></U></LI>
</OL>
<FONT FACE="Arial,Helvetica"><FONT SIZE=+1>Borland Products </FONT></FONT>
<OL>
<LI>
<U><FONT SIZE=+1><A HREF="#borlandchar">Why do varchar/char datatypes not
appear with the correct precision in Borland DBExplorer -OR- why do all
varchar/char precisions appear as 128?</A></FONT></U></LI>
<LI>
<FONT SIZE=+1><A HREF="#borlandoptions">What driver/datasource options
work well with Borland products?</A></FONT></LI>
</OL>
<P><A NAME="patch"></A><U><FONT SIZE=+1>How do I submit an idea for a new
feature or even a patch?</FONT></U>
<BR>
<BLOCKQUOTE>You can send mail to <FONT SIZE=+1>pgsql-interfaces@postgresql.org</FONT></BLOCKQUOTE>
<A NAME="bug"></A><U><FONT SIZE=+1>How do I report a bug or other problems?</FONT></U>
<BR>
<BLOCKQUOTE>You can send mail to <FONT SIZE=+1>pgsql-interfaces@postgresql.org
</FONT>When you do, however, you should attach the following:
<UL>
<LI>
<FONT SIZE=+1>your odbc driver version</FONT></LI>
<LI>
<FONT SIZE=+1>your postgresql database version</FONT></LI>
<LI>
<FONT SIZE=+1>any error messages you saw on the screen</FONT></LI>
<LI>
<FONT SIZE=+1>the commlog (psqlodbc.log) file (you will have to enable
the commlog driver option)</FONT></LI>
<LI>
<FONT SIZE=+1>the odbc trace log (sql.log) file (if the problem warrants
it)</FONT></LI>
</UL>
</BLOCKQUOTE>
<A NAME="otherdrivers"></A><U><FONT SIZE=+1>I've seen other Postgres odbc
drivers out there. Which one is the right one?</FONT></U>
<BR>
<BLOCKQUOTE>Since the development of the driver has changed hands a few
times, there has been confusion over this. The correct driver is
the one from <A HREF="http://www.insightdist.com/psqlodbc">http://www.insightdist.com/psqlodbc</A>.
This driver is always being improved on. It is supported actively
through the <FONT SIZE=+1>pgsql-interfaces@postgresql.org</FONT> mailing
list. You may want to subscribe to this list to keep up with
the latest changes. Visit the <A HREF="http://www.postgresql.org">PostgreSQL</A>
home page for instruction on subscribing to mailing lists.</BLOCKQUOTE>
<A NAME="os"></A><U><FONT SIZE=+1>What operating systems will the driver
run on?</FONT></U>
<BLOCKQUOTE>The PsqlODBC executable is written and compiled to run on 32
bit Wintel platform. This includes Windows 95 and NT.
The driver has not been tested on Windows 98 but it should not have any
problems. 16 bit applications are capable of using the 32 bit
driver but only on these platforms.
<P>We do not distribute binaries for Unix. The source code, however
has been ported to compile under Unix . The required iODBC
driver manager for Unix can be found at: <A HREF="http://users.ids.net/~bjepson/freeODBC">ttp://www.as220.org/FreeODBC</A></BLOCKQUOTE>
<A NAME="install"></A><U><FONT SIZE=+1>How do I install the driver?</FONT></U>
<BLOCKQUOTE>The easiest way to install the driver is to get the self-extracting
install (<U>postdrv.exe</U>). Just download and run this program.
The installation is a standard Installshield type process that will guide
you through the process.Once you have run the full install <I>at least
once</I>, future upgrades can be even simpler. Just download the
<U>postdll.zip</U> file, which simply contains the driver dll and extract
it to your \windows\system directory.The final option is to compile the
driver yourself. If you are using this driver with Iodbc on a unix
platform, this is currently your only option.</BLOCKQUOTE>
<A NAME="compile"></A><U><FONT SIZE=+1>Do I even need to compile the driver
to use it?</FONT></U>
<BLOCKQUOTE>Probably not. If you are using Windows, all you really
need to do is download and run the self-extracting install (<U>postdrv.exe</U>).
See the above question for more information.</BLOCKQUOTE>
<A NAME="dsnsetup"></A><U><FONT SIZE=+1>How do I setup a datasource?</FONT></U>
<BLOCKQUOTE>For Windows, use the ODBC Administrator in Control Panel.
Here you can add, modify, or delete data sources.</BLOCKQUOTE>
<A NAME="dsndiff"></A><U><FONT SIZE=+1>What's the difference between a
File DSN, System DSN, and User DSN?</FONT></U>
<BR>
<BLOCKQUOTE>System DSN's and User DSN's differ only in <I>who </I>can access
them on the system. A File DSN, however, is not really a datasource.
It is a file that contains all the connection parameters used to connect
directly to an odbc driver.</BLOCKQUOTE>
<A NAME="advancedoptions"></A><U><FONT SIZE=+1>How do I access more advanced
driver and/or datasource options?</FONT></U>
<BR>
<BLOCKQUOTE>First, select your favorite datasource to configure.
Then in the "PostgreSQL Driver Setup" dialog, select under "Options (Advanced)"
either the Driver button or Datasource button. This will bring up
another dialog box which contains options you can configure. Refer
to the <A HREF="psqlodbc_confighelp.html">Configuration Help</A> on the
main page for information on all these options.</BLOCKQUOTE>
<A NAME="commlog"></A><U><FONT SIZE=+1>Where can I discover more information
about odbc errors?</FONT></U>
<BLOCKQUOTE>The odbc driver logs all direct communication (queries, updates,
etc.) with the backend as well as error messages and notices in the commlog
file. In addition, it now also logs any odbc connection and statement
errors in this file with detailed information. This is good for applications
that give misleading, little, or no descriptive information when
something goes wrong (VisData is a good example).
<P>This feature is enabled in the Advanced driver options dialog.</BLOCKQUOTE>
<A NAME="conn"></A><U><FONT SIZE=+1>What do I need to do to establish
a connection to a database?</FONT></U>
<BLOCKQUOTE><B><U><FONT SIZE=+1>ODBC Connection Checklist</FONT></U></B></BLOCKQUOTE>
<UL>
<LI>
<FONT SIZE=+1>ODBC Driver Data Source Checks</FONT></LI>
<OL>
<LI>
Valid and resolvable hostname.</LI>
<LI>
Valid port number. (default is 5432)</LI>
<LI>
Valid and existing database name.</LI>
<LI>
Valid user name.</LI>
<LI>
Valid password for the specified user. (Required if pg_hba.config
is set to password authenticate your client.)</LI>
</OL>
</UL>
<UL>
<LI>
<FONT SIZE=+1>PostgreSQL Server Checks</FONT></LI>
<OL>
<LI>
Postmaster must be running.</LI>
<LI>
Postmaster must run with the -i option to allow remote connections.</LI>
<LI>
The pg_hba.conf file in $PGPATH/data directory must be configured to allow
your remote host to connect.</LI>
</OL>
</UL>
<A NAME="authuser"></A><U><FONT SIZE=+1>Why do I get a message like "User
authentication failed"?</FONT></U>
<BR>
<BLOCKQUOTE>Verify that the database you are trying to connect to exists
and is accessible by you. Also, see the above question in regards
to user name and password authentication.</BLOCKQUOTE>
<A NAME="authtype"></A><U><FONT SIZE=+1>Why do I get a message like "Failed
to authenticate client as Postgres user using unknown authentication type:be_recvauth:
unrecognized message type: 65536" when I try to connect to a datasource?</FONT></U>
<BLOCKQUOTE>This message comes from the PostgreSQL backend, most likely
when there is a protocol mismatch between the odbc driver and the backend.
For example, if you are using Postgres 6.2 as the backend and try to use
the odbc driver without correctly setting the protocol, this error will
occur. You must check the "6.2 protocol" advanced datasource option
in the odbc driver configuration dialog.</BLOCKQUOTE>
<A NAME="datatypes"></A><U><FONT SIZE=+1>What data types does the driver
support?</FONT></U>
<BLOCKQUOTE>The driver provides full support for all PostgreSQL standard
data types. These are: bool, int2, int4, float4,
float8, date, time, abstime, datetime, timestamp, char, varchar, and text.
<P>There is partial support for all other data types. Examples
of these: point, circle, box and arrays. String support
only is provided for these non-standard types. In other words,
they are returned as SQL_VARCHAR and can be displayed and updated like
any other data type. The resulting behavior will probably vary
some with each application and data type.</BLOCKQUOTE>
<BLOCKQUOTE>In the case of int4[] and MS Access 97 it does an effective
job. The array can be displayed and updated cleanly.
Arithmetic is a little tricky. MS Access complains about
"t.a[1]" in the query builder. It does not like the syntax
and never sends it to the backend. The work around is to choose
the SQL Pass-thru option. This will allow you to build expressions
like "t.a[0] * t.a[1]". The hassle is that every time
you run the query in Access 97 it prompts you with a database connection
dialog.</BLOCKQUOTE>
<UL>MS Excel in combination w/ MS Query may provide a better solution.
It passes every query through.. I try to stay away from the
more exotic types if I know I am going to expose them to the public.
<BR> </UL>
<A NAME="primarykeys"></A><FONT SIZE=+1><U>How do I get my application
to recognize primary keys?</U> </FONT>
<UL>SQLPrimaryKeys() is implemented in the driver. The driver queries the
system tables in search of a unique index named with the using "{table}_pkey".
Example:</UL>
<BLOCKQUOTE>
<BLOCKQUOTE><B><FONT COLOR="#333333">create table foo (</FONT></B>
<BR><B><FONT COLOR="#333333"> id integer primary key,</FONT></B>
<BR><B><FONT COLOR="#333333"> name varchar(20)</FONT></B>
<BR><B><FONT COLOR="#333333">);</FONT></B></BLOCKQUOTE>
</BLOCKQUOTE>
<A NAME="canon"></A><U><FONT SIZE=+1>Why does the PostgreSQL backend complain
about running out of memory when some I browse tables with primary keys?</FONT></U>
<BLOCKQUOTE>The Jet Database Engine (used by Access) and others can use
"keysets" to access records. Depending on how many parts are
in the key, performance can range from slow to crashing of the backend.
Here is a keyset query using 10 rows (the typical keyset amount):</BLOCKQUOTE>
<BLOCKQUOTE><B>-- This is a 3 part key</B>
<BR><B>select ... from foo where</B>
<BR><B> (v1 = "?" AND v2 = "?" AND v3 ="?") OR
-- line 1</B>
<BR><B> (v1 = "?" AND v2 = "?" AND v3 ="?") OR
-- line 2</B>
<BR><B>
...</B>
<BR><B> (v1 = "?" AND v2 = "?" AND v3 ="?") OR
-- line 9</B>
<BR><B> (v1 = "?" AND v2 = "?" AND v3 ="?");
-- line 10</B>
<BR><B>-- The question marks ar replaced with the key values</B>
<P><B>Prior to Postgres 6.4, this was a major problem</B>. But there
are at least 2 fixes in place for this as of 6.4. One of the fixes
is called KSQO (Keyset Query Optimization). As of 6.4, the
driver now turns this on by default, although this can be changed in the
Advanced Driver options settings.
<BR> </BLOCKQUOTE>
<A NAME="largeobjects"></A><U><FONT SIZE=+1>Can I use large objects or
OLE?</FONT></U>
<BLOCKQUOTE>Large objects are mapped to LONGVARBINARY in the driver to
allow storing things like OLE objects in Microsoft Access. Multiple
SQLPutData and SQLGetData calls are usually used to send and retrieve these
objects. The driver creates a new large object and simply inserts
its 'identifier' into the respective table. However, since Postgres
uses an 'Oid' to identify a Large Object, it is necessary to create a new
Postgres type to be able to discriminate between an ordinary Oid and a
Large Object Oid. Until this new type becomes an official part of
Postgres, it must be added into the desired database and looked up for
each connection. The type used in the driver is simply called "lo"
and here is the command used to create it:</BLOCKQUOTE>
<BLOCKQUOTE><B>create type lo (</B>
<BR><B> internallength=4,</B> <B> externallength=10,</B>
<BR><B> input=int4in,</B> <B>output=int4out,</B>
<BR><B> default='',</B> <B> passedbyvalue</B>
<BR><B>);</B></BLOCKQUOTE>
<BLOCKQUOTE><B>create table employee (</B>
<BR><B> id integer,</B>
<BR><B> name varchar(30),</B>
<BR><B> picture lo</B>
<BR><B>);</B></BLOCKQUOTE>
<BLOCKQUOTE>Once this is done, simply use the new 'lo' type to define columns
in that database. When the driver sees an 'lo' type, it will
handle it as SQL_LONGVARBINARY.</BLOCKQUOTE>
<BLOCKQUOTE>Another important note is that this new type is lacking in
functionality. It will not cleanup after itself on updates and deletes,
thus leaving orphans around and using up extra disk space. And currently,
Postgres does not support the vacuuming of large objects.</BLOCKQUOTE>
<BLOCKQUOTE>It would not be too difficult to write a interim stand-alone
cleanup process to run at some interval on the server. It is only
a matter of searching pg_attribute for lo data type columns and building
a list of lo's by querying each table that contains lo's. Then compare
this list with with the xinv.* in pg_class. The xinv.* with
out a pointer are orphans and should be dropped.</BLOCKQUOTE>
<BLOCKQUOTE>Hopefully in the future, a real large object data type will
be available as a base type. But for now, it sure is fun to
stick a Word document, Visio document, or AVI of a dancing baby into a
database column, even if you will fill up your server's hard disk after
a while!</BLOCKQUOTE>
<A NAME="rowversioning"></A><U><FONT SIZE=+1>How do I use the row versioning
-OR- why do I get a message about no operator for xid and int4?</FONT></U>
<BLOCKQUOTE>Some of the operators are missing in the current release of
Postgres so in order to use row versioning, you must overload the int4eq
function for use with the xid type. Also, you need to create an operator
to compare xid to int4. You must do this for each database you want
to use this feature on. This will probably not be necessary in Postgres
6.4 since it will be added. Here are the details:
<P><B>create function int4eq(xid,int4)</B>
<BR><B> returns bool</B>
<BR><B> as ''</B>
<BR><B> language 'internal';</B>
<P><B>create operator = (</B>
<BR><B> leftarg=xid,</B>
<BR><B> rightarg=int4,</B>
<BR><B> procedure=int4eq,</B>
<BR><B> commutator='=',</B>
<BR><B> negator='<>',</B>
<BR><B> restrict=eqsel,</B>
<BR><B> join=eqjoinsel</B>
<BR><B>);</B></BLOCKQUOTE>
<A NAME="accesswhere"></A><U><FONT SIZE=+1>With MS Access, why can't I
GROUP BY, ORDER BY, or even select WHERE ,on columns which are of
type "text"?</FONT></U>
<BLOCKQUOTE>Text fields, by default, are mapped to SQL_LONGVARCHAR.
As a result MS Access treats these colomns as "Memo" types. The good
news is that you can store up to the PostgreSQL block size limit
in a text column. Currently, PostgreSQL has a tuple limit of just
under 8k.
<P>You can change the mapping of Text fields to SQL_VARCHAR by unchecking
the Advanced driver option "Text as LongVarchar" under Data Type Options.
This should allow text fields to be used.</BLOCKQUOTE>
<A NAME="accessindex"></A><U><FONT SIZE=+1>With MS Access, why can't I
index on text fields -OR- why do I get the "Invalid field definition 'field'
in definition of index or relationship?</FONT></U>
<BLOCKQUOTE>Text fields are mapped to SQL_LONGVARCHAR by default.
As a result MS Access treats these colomns as "Memo" types. The good
news is that you can store up to the PostgreSQL block size limit
in a text column. Currently, PostgreSQL has a tuple limit of just
under 8k.
<P>You can change the mapping of Text fields to SQL_VARCHAR by unchecking
the Advanced driver option "Text as LongVarchar" under Data Type Options.
This should allow text fields to be used but you will be limited to the
maximum size of a varchar.</BLOCKQUOTE>
<BLOCKQUOTE> </BLOCKQUOTE>
<A NAME="accessgroupby"></A><U><FONT SIZE=+1>Why does MS Access sometimes
complain about a GROUP BY or ORDER BY not being in the target list? (UPDATED)</FONT></U>
<BLOCKQUOTE>This message comes from the PostgreSQL backend.
Postgres currently requires fields in the ORDER BY and GROUP BY clauses
to be included in the target list. However, we have a patch that
overcomes this limitation in the backend server. It will be included in
the 6.4 release. Click here to <A HREF="junkfilter_patch.txt">download</A>
the patch right now for use in PostgreSQL 6.3.
<P><U>More (Updated) Information on this problem</U>
<BR>Older versions of the Microsoft Jet Database Engine, that Access is
built on, has some problems that can cause this to occur. Access
will insist on throwing in an order by clause in a join query, even if
you are not sorting on anything. Even with the above patch for Postgres,
the query may no longer error out, BUT it would be sorted in a way you
may not want, and there would be no way to change it. To fix this
problem, you need to update the Jet database engine to version 3.51.
It is available at no charge from Microsoft. Click here to
<A HREF="http://support.microsoft.com/download/support/mslfiles/Jet35upd.exe">download</A>
the latest Jet Engine from the Microsoft support site.</BLOCKQUOTE>
<A NAME="accesspassthru"></A><U><FONT SIZE=+1>Why does Access force me
specify the Data Source each time I run my SQL Pass-Thru query?</FONT></U>
<BLOCKQUOTE>There is a way to specify a Data Source in the query properties
so it doesn't ask you each time. Under the view menu, select properties.
For the "ODBC Connect Str" property right after "ODBC;" add "DSN=<your_datasource_name_here>".
You can also add other properties if you like such as "ODBC;DSN=my_dsn;UID=me;PWD=test".</BLOCKQUOTE>
<A NAME="borlandchar"></A><U><FONT SIZE=+1>Why do varchar/char datatypes
not appear with the correct precision in Borland DBExplorer -OR- why do
all varchar/char precisions appear as 128?</FONT></U>
<BLOCKQUOTE><B>When using the 6.4 protocol, this problem should not be
an issue.</B>
<P><B>Prior to the Postgres 6.4 protocol</B>, the backend did not return
the size of varchar/char datatypes in a query result and Borland relies
heavily on this for both simple queries and the data dictionary import.
Therefore, there are several driver options that were developed to help
out with this.</BLOCKQUOTE>
<UL>
<UL>
<LI>
Parse Statements option -- driver parses the SQL statement and retrieves
characteristics such as precision, nullability, aliases, etc. for the columns.</LI>
<LI>
Unknown Sizes option -- "longest" will return the precision based on the
longest data of all the rows in the result set.</LI>
</UL>
Currently, if the parse statements option is enabled, the parser will fallback
on executing the statement if it cannot deal with a particular column.
Therefore, it is a good idea to set the unknown sizes to "longest" as well.
<BR> </UL>
<A NAME="borlandoptions"></A><FONT SIZE=+1>What driver/datasource options
work well with Borland products?</FONT>
<BR>
<BLOCKQUOTE>Consider setting the following advanced driver options if using
Borland:
<BR>
<BLOCKQUOTE>
<LI>
Data Type Options:</LI>
<BLOCKQUOTE>
<LI>
Uncheck Text as LongVarchar</LI>
<LI>
Uncheck Unknowns as LongVarchar</LI>
</BLOCKQUOTE>
<LI>
Parse Statements option: Enable it, <B>if using a protocol earlier
than Postgres 6.4</B></LI>
<LI>
Unknown Sizes Options: Set to "Longest"</LI>
</BLOCKQUOTE>
</BLOCKQUOTE>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-interfaces@postgresql.org
Cc: abli@ufl.edu
Subject: Re: PSQLODBC FAQ
In-Reply-To: <376072F5.F31FB999@ufl.edu>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox