postgresql/src/interfaces/odbc
Hiroshi Inoue e5cff3fe64 Get rid of the following size limit.
1) Query size limit(was 65536) for >=7.0 servers.
2) Text size limit(was 8190) for 7.1 servers.
2001-05-25 08:12:32 +00:00
..
bind.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
bind.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
columninfo.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
columninfo.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
connection.c Get rid of the following size limit. 2001-05-25 08:12:32 +00:00
connection.h Get rid of the following size limit. 2001-05-25 08:12:32 +00:00
convert.c Get rid of the following size limit. 2001-05-25 08:12:32 +00:00
convert.h Get rid of the following size limit. 2001-05-25 08:12:32 +00:00
dlg_specific.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
dlg_specific.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
drvconn.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
environ.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
environ.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
execute.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
GNUmakefile Stamp CVS as 7.2. Update all interface version numbers. This is the 2001-05-11 01:46:33 +00:00
gpps.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
gpps.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
info.c Get rid of the following size limit. 2001-05-25 08:12:32 +00:00
iodbc.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
isql.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
isqlext.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
license.txt Update odbc driver to current version V.0244 1998-06-03 20:33:45 +00:00
lobj.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
lobj.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
misc.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
misc.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
multibyte.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
multibyte.h BTW it does not add encodign it just patches existing one (KOI8) to 2001-05-03 21:38:45 +00:00
notice.txt Update odbc driver to current version V.0244 1998-06-03 20:33:45 +00:00
odbc.sql Move contrib/odbc/odbc.sql together with odbc driver, remove old files; 2000-09-18 20:11:37 +00:00
odbcinst.ini Version 06-30-0248 1998-07-22 23:47:48 +00:00
options.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
parse.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
pgtypes.c Get rid of the following size limit. 2001-05-25 08:12:32 +00:00
pgtypes.h A patch to fix the following bugs. 2001-04-23 01:00:49 +00:00
psqlodbc.c ODBC source code cleanup patch. Should match rest of PostgreSQL code better. 2001-05-08 17:06:18 +00:00
psqlodbc.def Replace old PostODBC driver with new one... 1998-04-13 15:02:05 +00:00
psqlodbc.h 1) Decrease the size of some buffers. 2001-05-17 02:56:37 +00:00
psqlodbc.rc 1) fix bugs reported by Andrea Aime. 2001-05-01 00:47:06 +00:00
psqlodbc.reg The attached file contains the registry settings required to install the 2001-03-13 09:03:24 +00:00
qresult.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
qresult.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
readme.txt The renewal of README thanks to Dave Page. 2001-04-17 07:30:53 +00:00
resource.h pgindent run. Make it all clean. 2001-03-22 04:01:46 +00:00
results.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
setup.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
setup.rul Update 06-40-0003 1999-01-06 20:44:08 +00:00
socket.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
socket.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
statement.c Get rid of the following size limit. 2001-05-25 08:12:32 +00:00
statement.h Get rid of the following size limit. 2001-05-25 08:12:32 +00:00
TODO.txt Update source code to Byron's v6.30.0250 sources plus minor cleanup 1998-10-06 05:58:41 +00:00
tuple.c ODBC source code cleanup patch. Should match rest of PostgreSQL code better. 2001-05-08 17:06:18 +00:00
tuple.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
tuplelist.c Run pgindent on ODBC code only, to reformat new comments. 2001-05-08 17:12:36 +00:00
tuplelist.h ODBC source code cleanup. Mostly alignment of #define constants. 2001-03-27 04:00:55 +00:00
win32.mak Previous commit mistakenly converted all newlines to DOS style (CR/LF). 2001-05-02 14:23:40 +00:00

Readme for psqlodbc.dll                                                  04/04/2001
-----------------------------------------------------------------------------------
Precompiled binaries for Win32 are available from ftp://ftp.postgresql.org/pub/odbc


I.  Building the Driver from the source code

This section describes how to build the PostgreSQL ODBC Driver (psqlodbc.dll).
Microsoft Visual C++ version 4.0 or higher is required. Other compilers may work 
but have not been formally tested. The psqlodbc.dll may be built either in the 
VC++ IDE or from the command line:

IDE Method
----------

1.  Create a new project workspace with the type DLL.  For the name, type in the
    name "psqlodbc".

2.  The above step creates the directory "psqlodbc" under the 
    "\<Visual C++ top level directory>\projects" path to hold the source files.
    (example, \msdev\projects\psqlodbc).  Now, either unzip the source code release
    into this directory or just copy all the files into this directory.

3.  Insert all of the source files (*.c, *.h, *.rc, *.def) into the Visual project
    using the "Insert files into project" command.  You may have to do 2 inserts --
    the first to get the 'c' and header files, and the second to get the def file.
    Don't forget the .def file since it is an important part of the release.
    You can even insert ".txt" files into the projects -- they will do nothing.
	
4.  Add the "wsock32.lib" library to the end of the list of libraries for linking
    using the Build settings menu.
	
5.  Select the type of build on the toolbar (i.e., Release or Debug).  This is
    one of the useful features of the visual c++ environment in that you can
    browse the entire project if you build the "Debug" release.  For release
    purposes however, select "Release" build.

6.  Build the dll by selecting Build from the build menu.

7.  When complete, the "psqlodbc.dll" file is under the "Release" subdirectory.
    (i.e., "\msdev\projects\psqlodbc\release\psqlodbc.dll")

Command Line Method
-------------------

1.  From a command prompt, CD to the directory containing the source code.

2.  Use NMAKE to build the dll eg:

    C:\psqlodbc\> nmake /f win32.mak CFG=Release ALL

    Possible configurations are Release, Debug, MultiByteRelease or MultiByteDebug
    Possible build types are ALL or CLEAN


II.  Using Large Objects for handling LongVarBinary (OLE Objects in Access)

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:

create type lo (internallength=4,externallength=10,input=int4in,output=int4out,
                default='',passedbyvalue);

Once this is done, simply use the new 'lo' type to define columns in that database.  Note
that this must be done for each database you want to use large objects in with the driver.
When the driver sees an 'lo' type, it will handle it as LONGVARBINARY.

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.  Hopefully in the future, a real large object data type will be available.

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!