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 setup32 binary distribution may be obtained from the file myodbc-xxx.zip
at http://www.mysql.com/

To get all functionality from the ODBC driver (like transaction
support) you should use it against MySQL 3.23.36 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 or 6.0 professional edition.  This version of
MyODBC is made with VC++ 6.0, with a define to force ODBC 2.50 usage,
together with the installer from ODBC 2.5.  You will also need the
MySQL libraries and header files from MySQL 3.23.36 or newer.

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

In the source distribution the example makefiles and resources are made
with VC++ 6.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.  Another option is to try the small installer
(install.bat) that comes with the myodbc-xxxx-dll.zip distribution.


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...)
262144  Disable the new transaction support (To avoid newly introduced bugs)

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'
  Visual Basic / ADO 	2+16384  ''Return matching rows / BIGINT -> INT' 

The default MYODBC.DLL is compiled for optimal performance.  If you
want to to debug MyODBC (for example to enable tracing), you should
instead use the the MYODBCD.DLL.  If you want to use this one, copy
MYODBCD.DLL over the installed MYODBC.DLL.

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!
- If you are connecting to a server with a character set that isn't compiled
  into the MySQL client library (the defaults are:
  latin1 big5 czech euc_kr gb2312 gbk sjis tis620 ujis
  ) then you need to install the mysql character definitions from the
  charsets directory into the c:\mysql\share\charsets.


Authors:

Main coding: Michael 'Monty' Widenius, TCX Datakonsult AB / MySQL 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.
- Access 2000 needs a patch from Microsoft to be able to export tables to
  MySQL;  Just download and install the newest Microsoft MDAC from
  http://www.microsoft.com/data
- 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 NT.
  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@mysql.com
  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.
