postgresql/src/interfaces/odbc
2002-07-30 00:48:02 +00:00
..
bind.c 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
bind.h 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
columninfo.c 1) Fix a few bugs about SQLGetData() 2001-11-05 09:46:17 +00:00
columninfo.h Another pgindent run. Fixes enum indenting, and improves #endif 2001-10-28 06:26:15 +00:00
connection.c Fix a bug about automatic client_encoding setting. 2002-07-30 00:48:02 +00:00
connection.h Make NAMEDATALEN changeable at compile time. 2002-07-11 01:52:46 +00:00
convert.c 1) prevent setting of KSQO on 7.3+ servers(Thanks to Dave Page). 2002-06-28 02:44:15 +00:00
convert.h Fix for the following items about escape sequence 2002-04-25 02:50:08 +00:00
descriptor.h Add *Int8 As* option. 2002-06-06 04:50:47 +00:00
dlg_specific.c Fix a bug about the handling of CX parameter of the connection string 2002-07-26 08:45:54 +00:00
dlg_specific.h 1) Fix a bug *double error message*. 2002-06-12 02:27:44 +00:00
dlg_wingui.c 1) Fix a bug *double error message*. 2002-06-12 02:27:44 +00:00
drvconn.c 1) Fix a bug *double error message*. 2002-06-12 02:27:44 +00:00
environ.c 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
environ.h 1) Implement SQLParamOptions(). 2002-03-08 08:52:55 +00:00
execute.c 1) Add support for GB18030. 2002-06-25 01:54:19 +00:00
GNUmakefile Add md5 authentication support thanks to Bruce Momjian. 2001-11-12 00:54:28 +00:00
gpps.c New pgindent run with fixes suggested by Tom. Patch manually reviewed, 2001-11-05 17:46:40 +00:00
gpps.h Fix indenting for 'extern "C"' cases. 2001-11-08 20:37:52 +00:00
info.c Add *Int8 As* option. 2002-06-06 04:50:47 +00:00
info30.c Add *Int8 As* option. 2002-06-06 04:50:47 +00:00
iodbc.h New pgindent run with fixes suggested by Tom. Patch manually reviewed, 2001-11-05 17:46:40 +00:00
isql.h Fix indenting for 'extern "C"' cases. 2001-11-08 20:37:52 +00:00
isqlext.h Fix indenting for 'extern "C"' cases. 2001-11-08 20:37:52 +00:00
license.txt Update odbc driver to current version V.0244 1998-06-03 20:33:45 +00:00
lobj.c Another pgindent run. Fixes enum indenting, and improves #endif 2001-10-28 06:26:15 +00:00
lobj.h Another pgindent run. Fixes enum indenting, and improves #endif 2001-10-28 06:26:15 +00:00
md5.c Update copyright to 2002. 2002-06-20 20:29:54 +00:00
md5.h More correct way to check for existence of types, which allows to specify 2001-12-02 11:38:40 +00:00
misc.c Add *Int8 As* option. 2002-06-06 04:50:47 +00:00
misc.h Add *Int8 As* option. 2002-06-06 04:50:47 +00:00
multibyte.c Fix a bug about automatic client_encoding setting. 2002-07-30 00:48:02 +00:00
multibyte.h 1) Add support for GB18030. 2002-06-25 01:54:19 +00:00
notice.txt An improvement of User Interface(Setup dialog) by Dave Page. 2002-07-12 02:02:26 +00:00
odbc.sql Remove duplicate lines from fouled up last commit (my DSL line failed 2001-12-21 06:01:36 +00:00
odbcapi.c 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
odbcapi25w.c 1) Implement SQLParamOptions(). 2002-03-08 08:52:55 +00:00
odbcapi30.c 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
odbcapi30w.c 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
odbcapiw.c 1) Implement SQLParamOptions(). 2002-03-08 08:52:55 +00:00
odbcinst.ini Version 06-30-0248 1998-07-22 23:47:48 +00:00
options.c 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
parse.c Fix a bug about the handling of '.' in parse.c. 2002-07-15 02:56:39 +00:00
pgapi30.c 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
pgapifunc.h 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
pgtypes.c Fix a bug reported by Zhou Han. 2002-07-05 01:31:41 +00:00
pgtypes.h [2002-03-28] 2002-03-28 08:08:07 +00:00
psqlodbc.c New pgindent run with fixes suggested by Tom. Patch manually reviewed, 2001-11-05 17:46:40 +00:00
psqlodbc.h Make NAMEDATALEN changeable at compile time. 2002-07-11 01:52:46 +00:00
psqlodbc.rc Fix a bug about the handling of CX parameter of the connection string 2002-07-26 08:45:54 +00:00
psqlodbc.reg 1) Fix a bug about reporting varchar info thanks to Aceto. 2002-04-15 02:46:00 +00:00
psqlodbc30.reg 1) Fix a bug about reporting varchar info thanks to Aceto. 2002-04-15 02:46:00 +00:00
psqlodbc30w.reg 1) Fix a bug about reporting varchar info thanks to Aceto. 2002-04-15 02:46:00 +00:00
psqlodbc_api30.def [2002-03-28] 2002-03-28 08:08:07 +00:00
psqlodbc_api30w.def [2002-03-28] 2002-03-28 08:08:07 +00:00
psqlodbc_apiw.def 1) Implement SQLParamOptions(). 2002-03-08 08:52:55 +00:00
psqlodbc_win32.def 1) Not export ODBC 3.0 functions. 2001-09-13 00:27:11 +00:00
qresult.c 1) Fix a memory leak in use declare/fetch mode. 2002-07-12 01:41:25 +00:00
qresult.h 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
readme.txt The renewal of README thanks to Dave Page. 2001-04-17 07:30:53 +00:00
resource.h An improvement of User Interface(Setup dialog) by Dave Page. 2002-07-12 02:02:26 +00:00
results.c Add *Int8 As* option. 2002-06-06 04:50:47 +00:00
setup.c Fix a bug about the handling of CX parameter of the connection string 2002-07-26 08:45:54 +00:00
setup.rul Update 06-40-0003 1999-01-06 20:44:08 +00:00
socket.c [HACKERS] Proposed patch for ODBC driver w/ C-a-n-c-e-l 2002-04-02 10:50:50 +00:00
socket.h [HACKERS] Proposed patch for ODBC driver w/ C-a-n-c-e-l 2002-04-02 10:50:50 +00:00
statement.c Add *Int8 As* option. 2002-06-06 04:50:47 +00:00
statement.h 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
tuple.c Another pgindent run. Fixes enum indenting, and improves #endif 2001-10-28 06:26:15 +00:00
tuple.h 1) Support Keyset Driven driver cursors. 2002-05-22 05:51:03 +00:00
tuplelist.c Another pgindent run. Fixes enum indenting, and improves #endif 2001-10-28 06:26:15 +00:00
tuplelist.h Another pgindent run. Fixes enum indenting, and improves #endif 2001-10-28 06:26:15 +00:00
version.h Add a file for version control. 2002-05-09 04:10:22 +00:00
win32.mak 1) Fix a memory leak in use declare/fetch mode. 2002-07-12 01:41:25 +00:00
win32_30.mak 1) Fix a memory leak in use declare/fetch mode. 2002-07-12 01:41:25 +00:00
win32_30w.mak 1) Fix a memory leak in use declare/fetch mode. 2002-07-12 01:41:25 +00:00
win32w.mak 1) Implement SQLParamOptions(). 2002-03-08 08:52:55 +00:00
win_md5.c Add md5 authentication support thanks to Bruce Momjian. 2001-11-12 00:54:28 +00:00
win_setup.h Add missing win_setup.h. 2002-06-06 09:47:25 +00:00
win_unicode.c 1) prevent setting of KSQO on 7.3+ servers(Thanks to Dave Page). 2002-06-28 02:44:15 +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!