I'm taking a stab at what your mean by some of these features, but with the exception of:
* Enable multiple active ODBC connections and the ability to switch be
+tween them
I think that the Cygwin bash shell might suit your needs. Some of the things bash doesn't do internally can be implemented with auxiliary scripts or shell 'functions'. Specifically, bash can do:
* Command History
* Multi-line command input
* Enable editing of multi-line statements retrieved from history
* Flowthru of DOS commands from shell
* Enable predefined commands to be easily added to shell
and the rest probably can be implemented as external commands.
Maintaining active ODBC connections is a potential problem, but I see a couple of different approaches:
- Add this feature directly to bash (it's open source).
- Create an 'ODBC server process' which would accept commands from some sort of socket connection (either real socket or named pipe), direct them to the appropriate ODBC connection and return the results. The ODBC connections would persist for the lifetime of this server process.
This would require you to invent a serialization for ODBC commands and results.
Finally, another thing I'd look into is the Windows PowerShell. One of the things I remember reading about it was that it had extended the stream concept to include streams of objects, not just characters. This would be helpful if you want to pass complex data structures between processes using the pipes paradigm. For instance, how about being able to write something like:
odbc 'select * from foo' | format-html-table
The 'lines' emitted by the odbc command are really objects so that it is easy for downstream processes to correctly interpret the row data.
|