Indy Homepage


Web Designer Wanted!

   Download   |  
    Indy Project  »  Indy.Data



Website problems?
Contact webmaster.


Our builds are

VCS by



Current Status

Several months after Indy.Data was release Microsoft brought LINQ to the forefront at PDC in 2005. While LINQ will not be officially released until late 2007, obviously LINQ will take over and become the dominant player. Microsoft has the ability to extend the compiler, while the Indy.Data project does not. The LINQ project is extremely well thought out and in an amazing number of ways implemented very similarly to Indy.Data. Indy.Data contains a few advantages over DLINQ (Data LINQ), as does DLINQ over Indy.Data. In the end it is a draw.

Indy.Data pages and downloads are being preserved for educational purposes but likely will not be updated or continued.



  • VCS now online - We now have a project in a Team Coherence server and team contributions are now possible.

Database Support

Currently Indy.Data supports Firebird, and SQL Server. Support for DB2, Oracle, Interbase and others can easily be added and is planned. If you can help in testing, please join the Indy Data Dev yahoo group. For information on setting up your database or requirements, please see Database Information.

Discussion, Support, Contributions

If you require support, or would like to contribute please join the Indy Data Dev yahoo group.


Indy.Data is a rewrite of an older version which is in use in several production systems. It was rewritten to take advantage of C# specific features and from studying strengths and weaknesses of the first implementation. In fact, even the first version is a newer implementation in .NET of a system originally built in Delphi in 1998. The .NET platform allowed me to implement it in a much more robust manner.

The current library is fully functional with only minimal parts remaining to be finished. There is of course an endless list of improvements that will be implemented over time.

Major Unfinished Items

  • Class Generator - The class generator is complete for Firebird. SQL server is nearly complete. SQL server can currently be used by using classes generated from Firebird databases, or by manually creating the classes.
  • Documentation - Of course always a work in progress. For questions please join the Indy Data Dev yahoo group.

Future Directions

Not all functions have been ported from the older framework such as creating DataSets, selecting by primary key, ordering, returning in memory result sets, and more. These are in the process of being implemented in Indy.Data. Some of the major features in progress are:

  • Dynamic SQL support - In some cases loosely bound SQL queries are required. In such cases, I've been able to build prototypes of Indy.Data to support the Select as well as Join clauses of the SQL language. The disadvantage is that the reading of the output is not type safe, but the inputs are. So any database changes are still caught during the compilation cycle.
  • Integrated Custom Tool - The utility to generate the classes is currently an external tool. I have plans to integrate it directly into Visual Studio similar to how typed DataSets are implemented.
  • Support for other types of Primary Keys - Currently all table are assumed to have a simple int primary key.
    Alternate Where clauses in Updates - Currently all updates are performed using the primary key. For me this has been fine as all my tables have a int simple primary key.
  • Support for versioned updates - For conflict resolution I use Firebird which supports a versioned architecture, however very few databases support this model. Many databases allow similar functionality, but only using locks. Because of this I plan to add support in the future to increase performance in contentious systems and still retain data integrity.
  • Improved memory and speed efficiency - The library is well within tolerable limits, but there are always areas to be scrutinized and improved.
  • Stored Procedures with result sets - The ability to create a View based on a stored procedure that returns a result set. Such stored procedures are common in SQL server, but in other databases views are used instead.



Corporate Sponsors
[Image] [Image]


Copyright © 1993 - 2008
Chad Z. Hower (Kudzu)
and the Indy Pit Crew.