ODBCKit

The ODBCKit is an open source framework for Cocoa developers to leverage the underlying Open Database Connectivity resources in the business network. Built with the intent of providing an easy and approachable toolkit for Cocoa Developers, it has evolved into a little bit more, also providing a simple graphical query tool as well as a couple of Automator Actions to the provide user level access to the ODBC databases

What this means in the real world is that using this toolkit, it should be easier to write and maintain applications that have ready access to enterprise level data sources like Oracle, Microsoft SQL Server and others. Why is this a big deal? well, one of the biggest concerns with the Mac platform is business applications. If there is an easy way to create and maintain applications that use the same enterprise database engines as their Windows counterparts, expanding the Mac in to the world of big business and corporate development becomes just a little bit easier.

By making this open source, specifically under the BSD license model, the toolkit is readily usable in both commercial and open source projects without concern for the viral nature of some of the open source alternatives while allowing users to guide the forward evolution of the project through both suggestions and code contributions.

Though we do all of the development on this project under the auspices of Druware, we have no commercial products built upon it that pay for it. If you find it useful, make a contribution to the SourceForge.net ODBCKit project. All of those donations go directly to the people writing the code and doing the maintenance.

Licensing

One of the questions that is most often asked is licensing. The short version is that while the ODBCKit is not Public Domain, it is as close as a license can get. It is a BSD style license, that grants you to redistribute it provided you keep the original copyright on with it. It further states that our name may not be used to endorse any product built using it. Other than that, have at it. The intent has always been to provide a toolkit to make it easier to build ODBC based applications on the Mac. This is not a multi-page legal contract. It is short and to the point. So short and to the point that we have included it, in it's entirety. below.

Copyright (c) 2005-2014, Druware Software Designs
All rights reserved.

Redistribution and use in binary forms, with or without modification, are 
permitted provided that the following conditions are met:

1. Redistributions in binary form must reproduce the above copyright notice, 
this list of conditions and the following disclaimer in the documentation 
and/or other materials provided with the distribution. 
2. Neither the name of the Druware Software Designs nor the names of its 
contributors may be used to endorse or promote products derived from this 
software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
THE POSSIBILITY OF SUCH DAMAGE.

History

0.5.0 - 11/19/2010 - Re-Cycle Release Cycle

Departing from the trend, we have are now in serious dogfood mode with regards to both ODBCKit and the Query Tool. With the coming Mac App Store, one of the goals is to make the Query Tool into somehting that can go there to provide an easy way for people to get to their ODBC data.

    Specific issues addressed in this release are as follows:
  • Dropped support for 10.4 due to use of latest Xcode toolchains, 10.4 support may return as Xcode evolves.
  • fixed a bug with unicode databases (MSSQL Server 2008) and char/varchar datatypes truncating the result
  • fixed a potential leak in ODBCLogin
  • rebuilt with x86_64 support enabled to allow use with 64 bit drivers
  • changed result view to adjust column widths the the length of the fields as returned instead of an assumed default size.
  • fixed a bug inthe title when the file has not been saved
  • fixed 'save results as' to properly display the save panel and choose a proper path for the save file. https://sourceforge.net/tracker/index.php?func=detail&aid=1655295&group_id=177561&atid=881729
  • started research into long standing edit bug that can lock up the editor when editing the 0,0 char in the text view after they have been entered once.
  • fixed a bug where the last column in the results window would be squished to 8 pixels wide.
  • found and fixed initial issue with highlighting that caused edits at the start of any line to cause a random editor hang.
  • bumped version number to 0.5.0 in prep for a weekend release.
  • added dsn name to window title. https://sourceforge.net/tracker/index.php?func=detail&aid=2417506&group_id=177561&atid=881729
  • started syntax highlighting rework to better handle sql syntax styles also abstract enough that it could be used in other sql tools in the system.

0.4.1 - 09/18/2009 - Whoa Nelly Release

Continuing the trend of squiching bugs, this is a small release that works on expanding the base for Prepared Statements, but also cleans up the current code.

    Specific issues addressed in this release are as follows:
  • Last two leaks as seen in Instruments testing cleaned up.
  • Remove a potential bottleneck in the Async execution code.

0.4.0 - 08/06/2009 - Crunchy Critter Release

Well, this is not the 1.0 release but it is a major step forward. It addresses several issues, and adds a couple of little items. Prepared Statements are the only outstanding feature missing from going to 1.0.

    Specific issues addressed in this release are as follows:
  • All classes have been analyzed for object and memory leaks.
  • Removes a bug in which large result sets could run out of memory.
  • Garbage Collection is now enabled in all builds.
  • Tested and working on current builds of Snow Leopard.
  • Removed extraneous -retains in several classes, this may cause some applications to EXC_BAD_ACCESS upon exiting a function. Remove the -release on any recordsets to clear the error
  • Added optional parameter to ODBCField asString method to support encoding: [ODBCField asString:(NSStringEncoding)encoding]
  • Fixed a significant bug in ODBCField init that truncated long data at 1024 bytes.

0.3.0 - 04/22/2009 - Pothole Avoidance Release

This is expected to the be the last release before we begin the push to 1.0.0. It adds some enhancments to the framework itself, but most importantly, paves the way for the last few features for the 1.0 release.

    Specific issues addressed in this release are as follows:
  • Added basic Ôschema browserÕ to the Query Tool
  • Addressed several small issues in the ODBCRecordset and ODBCConnection classses.
  • Added License text to all files.
  • Added new functionality to ODBCConnection Class
  • Removed a bug in ODBCLogin that prevented the Callback from proper function in some cases.
  • Added Clone method to ODBCConnection to allow a connection to spawn multiple connections.

0.2.8 - 09/17/2008 - Bug Fix Release

Continuing the trend of the last release, this is primarily a bug fix release effecting many areas of the toolkit. All of the ÔnewÕ functionality is in support of customer identified issues and shortcomings. Full BLOB post support is not yet implemented and remains the largest outstanding issue in the toolkit.

    Specific issues addressed in this release are as follows:
  • ODBCRecordset returns EXC_BAD_ACCESS on moveFirst
  • Empty login credentials cause infinite loop / logs fill
  • Cannot Login using domain\user
  • Connection Cannot use ConnectionStrings only DSNÕs

Some of these issues required a few API additions, including limited cursor support. By default, cursors are not enabled and must be enabled on the connection if required. At present, none of the drivers implement full cursor support, so the ODBCKit will fake a cursor if it is not supported.



0.2.6 - 11/02/2007 - Leopard Compatability Release

Due to a change in Leopards version of the underlying iODBC libraries, there where several potential problems with 0.2.5 on Leopard. This release is primarily about addressing those.

  • Added moveFirst, moveLast &l movePrevious functions.
  • Altered all internal functions to fall back to ODBC version 1 behavior if possible.
  • Modifed several functions to properly return a nil on error.

  • News




    Support This Project