Menu

Tree [r34] /
 History

HTTPS access


File Date Author Commit
 Expo 2008-01-17 vbar [r1] initial
 Glaze 2009-01-21 vbar [r29] Visual Studio project upgrade
 MacroScope 2009-03-28 vbar [r33] basic MySQL support
 TestGlaze 2009-03-28 vbar [r33] basic MySQL support
 TestMacroScope 2009-03-28 vbar [r33] basic MySQL support
 build 2008-01-17 vbar [r1] initial
 depend 2008-08-16 vbar [r26] using ANTLR 3.1
 licenses 2008-01-17 vbar [r1] initial
 schema 2009-03-28 vbar [r33] basic MySQL support
 COPYRIGHT.txt 2008-01-17 vbar [r1] initial
 HACKING.txt 2009-04-04 vbar [r34] typo
 INSTALL.txt 2008-01-17 vbar [r1] initial
 MacroScope.build 2008-08-16 vbar [r26] using ANTLR 3.1
 MacroScope.sln 2009-01-21 vbar [r29] Visual Studio project upgrade
 README.txt 2009-03-28 vbar [r33] basic MySQL support
 ROADMAP.txt 2009-03-28 vbar [r33] basic MySQL support

Read Me

MacroScope - portable SQL ADO.NET provider

MacroScope is a .NET library (2 libraries, actually) automagically
transforming SQL commands to a form expected by different database
engines, so that (for example) the MS SQL Server-specific construction

SELECT TOP 10 * FROM table_name

becomes

SELECT * FROM table_name WHERE rownum <= 10

when used for Oracle. This is done transparently behind the standard
ASP.NET interface, without littering code with conditionals and
leaving the application programmer free to concentrate on the
application logic.

The transformation is implemented by a custom ADO.NET database
provider, which parses the SQL passed to it and then uses (hardcoded
but encapsulated) rules to recognize and rewrite constructions
incompatible with the target database. As an added benefit, the parsed
tree is available to the application, enabling custom SQL
transformations (adding selected columns, conditions, clauses etc.) on
an object model based on the standard SQL grammar, even for commands
not known at compile time and passed to the application as simple
strings.

MacroScope supports a practically useful subset of SQL commands
INSERT, SELECT, UPDATE and DELETE, for 4 database backends: MySQL,
MS SQL Server, Oracle and MS Access. It is used in production, but new
users will probably find the list of supported backends incomplete,
some constructions they'd like to use unsupported and many
incompatibilities remaining (especially for MS Access - there's a lot
things it just doesn't do, and no amount of SQL rewriting is going to
make the backend more capable). These limitations are an important
reason for releasing the component as Open Source, so that many users
can improve it for their specific needs and share their improvements
for our mutual benefit.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.