This is the source or binary distribution of ODBC for MySQL.
This software is in public domain. You may use it in any way you like.
There is no WARRANTY of any kind. Use at our own risk..

If you want to ensure the development of this product, you should register
for MySQL support and tell that you are using MyODBC in the comment field!

The libraries dbug, mysys, lib and strings libraries are the same that are
distributed with MySQL.  There is only a couple of new include files that
defines the windows environment.

The lib directory contains some files from the mysql/client source directory
with makes the libmysql.
The setup32 binary distribution may be obtained from the file myodbc-xxx.zip
at http://www.tcx.se/

To get all functionality from the ODBC driver you should use it against
MySQL 3.21.17 or above. This driver also works with MySQL 3.20.x

To compile with Microsoft VC++ one will need the ODBC 3.0 package from
Microsoft or VC++ 5.0 professional edition.
This version of MyODBC is made with VC++ 5.0, with a define to force ODBC 2.50
usage, together with the installer from ODBC 2.5.

I will look into the 3.0 ODBC kit when I can get the installer problem solved.
I may be able to fool the setup program by using a 2.5 installer with a
ODBC 3.0 driver, but I have to investigate this at some later time.

In the source distribution the example makefiles and resources are made
with VC++ 5.0.

If you have problems installing MyODBC the most likely problem is that
you have some applications running that uses the ODBC manager. The
solution to this is to start your computer in 'safe mode' and install
MyODBC in this mode.

HOW TO MAKE A PROPER BUG REPORT:

To make a bug report that will be answered quickly do the following:
Put a 4 in the Option argument.  This will tell MyODBC to make a trace
file in C:\myodbc.log that contains lot of info with will help us to
debug the problem.  One can also set the MYSQL_DEBUG environment variable
to something like 'd:t:O,c::\tmp\mysql.log' to get a log in C:\tmp\mysql.log

A sql.log file, with may be enabled with odbcadmin from the Control Panel,
could also provide some interesting info. If possible try to get a log
from the mysqld server too.


IMPORTANT NOTES:

  MyODBC 2.50.18 has a new nice interface to the different MyODBC options.
  (On Unix the option is still a number).

  The Option argument is used to tell MyODBC that the client isn't 100% ODBC
  compliant. The following options are listed in the same order as they
  appear in the MyODBC connect screen:

  1   The client can't handle that MyODBC returns the real width of a column.
  2   The client can't handle that MySQL returns the true value of
      affected rows.  If this flag is set then MySQL returns 'found rows'
      instead.  One must have MySQL 3.21.14 or newer to get this to work.
  4   Make a debug log in c:\myodbc.log.  This is the same as putting
      MYSQL_DEBUG=d:t:O,c::\myodbc.log in AUTOEXEC.BAT
  8   Don't set any packet limit for results and parameters.
 16   Don't prompt for questions even if driver would like to prompt
 32   Simulate a ODBC 1.0 driver in some context.
 64   Ignore use of database name in 'database.table.column'. (MySQL 3.22)
128   Force use of ODBC manager cursors (experimental)
256   Remove use of extended fetch (experimental)
512   Pad CHAR fields to full column length.
1024  SQLDescribeCol() will return fully qualifed column names
2048  Use compressed protocol (if server supports it)
4096  Tell server to ignore space after function name and before '('
      (needed by PowerBuilder).  This will make all function names keywords!
8192  Connect with named pipes to a mysqld server running on NT.
16384 Change LONGLONG columns to INT columns, as some applications can't
      handle LONGLONG.
32768 Return 'user' as Table_qualifier and Table_owner from SQLTables
      (test)
65536 Read my.cnf
131072 Add some extra safety checks (should not bee needed but...)

On Unix; If you want to have many options, you should add the above flags!
For example Option 12 (4+8) gives you debugging without package limits!

Some clients that must set some MySQL options to work properly.
On Win32 one have to check the specific option in the ODBC manager
for the database connection.

  BDE applications:	1 or 3;  'Don't optimize column widths' and
				 'Return matching rows'
  Visual Objects:	1	 'Don't optimize column widths'
  Vision		2	 'Return matching rows' 
  Active server pages   2	 'Return matching rows'
  Access 7.0:		2	 'Return matching rows'
  Access 2.0:		2+32	 'Return matching rows' and 'Simulate ODBC 1.0'
  ODBCETE32 + quiktest  512+1	 'Don't optimize column widths' + 'Pad CHAR'

The default MYODBC.DLL is compiled for debugging.  In the distribution there
is also MYODBC2.DLL. This is compiled with full optimization. If you want to
use this one, copy MYODBC2.DLL over the installed MYODBC.DLL.  If you have
some problems with the optimized one you should first switch back to the
default one before doing a bug report.

If you have any problems with MyODBC, try first to get the 'admndemo'
program, that is include with the MyODBC distribution, to work!

Some common problems:

- Wrong connection port:  The port should be 3333 for MySQL 3.20 and 3306
  (default) for MySQL 3.21 or newer.
- Access denied problems.  Check the MySQL reference manual for information
  about the MySQL privilege system!


Authors:

Main coding: Michael 'Monty' Widenius, TCX Datakonsult AB


Known bugs:

- Access can't use float fields in a table without a timestamp if you are going
  to update it. Double on the other hand should work.
- There is a bug in the Microsoft ODBC setup that it can't detect if a OS
  is NT or WIN95.  Because of this MyODBC is distributed in 2 different
  versions, one for WIN95 and one for WIN95.
  The only difference is the file odbc.inf, which tells SETUP if it should
  install CTL3D95.DL_ or CTL3DNT.DLL as CTL3D32.DLL.
  If you have downloaded wrong version of MyODBC simple copy ODBC.95 or ODBC.NT
  over ODBC.INF and execute setup again!
- ODBC 2.50 doesn't allow very good usage of bigint (64 bit) numbers; some
  applications may have a problem with this.
- TIMESTAMP to TIME conversions doesn't work.
- Binary fields are returned as strings, not as hex strings.
- Some conversion are not according to the ODBC standard, but this shouldn't
  affect standard applications.
- Some applications thinks that MyODBC has full cursor support.  This is not
  true (we are working on this however);  If your application need full cursor
  support you should tell your application to use the ODBC manager cursor
  library.
- As MyODBC doesn't yet have an own cursor library one can only use MyODBC
  with applications that follows the ODBC specification and can work with
  ODBC MANAGER cursors. Some programs, notably from Microsoft, doesn't
  follow the ODBC specification how to use cursors;  They only work with
  DRIVER cursors!  There may be a change that you can fool the application
  to use MANAGER cursors by using the 128 option flag!
  There is work in progress in supporting cursors in MyODBC.  If you are
  interested in helping us with this, mail what you can do to myodbc@tcx.se.
  You can also support our work by taking MySQL email support!
- ODBC can't support zero dates "0000-00-00". MyODBC automaticly converts
  0000-00-00 dates to NULL.  Date columns that you want to update and that
  can be 0000-00-00 should not be declared as 'NOT NULL'.
- One should add a help to the connect screen.
