PlaneDisaster.NET
PlaneDisaster.NET is a SQL Frontend for JetSQL (MS Access) and SQLite.NET databases. It is written in C# and available on SourceForge.net
Contents |
Origins and History
I wrote a database viewer due to the fact that I needed a way to browse Microsoft Access files. I was working in C# at the time so that was the language I chose. I wanted to make this an open source project in the hopes of benifiting others.
My project quickly grew to support several databases. I created a nice hierarchy of classes that wrapped around ADO.NET Provider classes. However, I then realized that I wasn't filling a need with the MySQL and Postgres frontend. I prefer the existing frontends for Postgresql, MySQL and Microsoft SQL server. As a result, I dropped support for all databases besides MS access and SQLite. While there are other front ends for SQLite available, I prefer PlaneDisaster to them so I kept support for it. Also, SQLite and MS Access database are used in similar manners and in both cases the database is just a file and the database engine is just a shared library.
The Name PlaneDisaster.NET
The prototype of PlaneDisaster.NET was a VB6 application called PlaneCrash. The plane part of the name refers to the name of the MS Access database engine JetSQL. The words Crash and Disaster refer to my dislike of the JetSQL engine for its lack of scalability and features. I might change the name if I can think of a better one.
Features
- Creating new databases
- Arbitrary SQL execution
- Can retrieve the contents of any table, view or procedure as a CSV or DataGridView.
- "Scripting" of database objects
- You can retrieve the DDL of a database object. All objects besides tables in JetSQL are supported. JetSQL has no mechanism for giving you a "CREATE TABLE" statement that will exactly duplicate a tables schema. There is much code that attempts to create the DDL by examing the schema of the table. This feature would be good to implement. I will gladly accept contributions in this regard.
- Microsoft Access specific features:
- Database compacting. MDB files need to be periodically compacted to remove wasted space. PlaneDisaster.NET allows you to do this.
- Database Repair
- The JetSQL Engine has a method of repairing corrupted databases. I don't know how well it works, but I expose that functionality here. This is the same repair database functionality available from Microsoft Access.
Screen Shots
Getting PlaneDisaster.NET
PlaneDisaster.NET has a project page on sourceforge. I make periodic releases.
Versioning
The first "official release" was 0.9. This is the current release. Previous to that releases were labeles PlaneDisaster.NET-YYYYMMDDHHMMSS-alpha. I felt it was time to release more formal versions.
Its quite stable and haven't broken any databases yet. I use the latest SVN version on my production databases. All that being said, backing up your database involves making a copy of one file, so you have no excuses not to.
Future release plans are outlined below.
Development
The sourceforge page is http://sourceforge.net/projects/plane-disaster/. Feel free to create a source forge account and use the feedback mechanisms provided.
The project is browseable on koders.com. YOu may search for the project directly via its Project Page or search for search the PlaneDisaster.NET source code below:
Feature Requests
Make a feature request on Source Forge
Feature requests fall into three categories.
- Features I will eventually implement
- Features that I'm not quite sure how to implement. Contributions are quite welcome here.
- Features users have requested.
Current Issues
To report a bug or view current ones please see the SourceForge bug tracker page.
Development Roadmap
The version release is as follows. I recently decided I didn't like the lack of version numbers. I also had not done a release for a while. After some thinking about it I did some coding, got it to a releasable state and declared the release 0.9. The 0.9 series will continue until I release 1.0. I will probably be releasing version 1.0 shortly.
Previous Release (0.9.3)
- I catch an exception for when you attempt to display a table you lack permission to display. An error message is displayed.
- Added Jet2SQLite utility to convert a JetSQL database to SQLite.
Current Release (0.9.4)
- Reverted changes that severely broke 0.9.3.
- You can execute the contents of the query window by Hitting F5.
- When you highlight text in the query window and hit execute, only the hightlighted text will be executed.
- The form will now render properly under Vista's default theme.
Upcoming Release (0.9.5)
- Jet2SQLite has an icon.
Beyond 1.0
- Database utilities
- The ability to upgrade or downgrade an existing JetSQL file.
- UI Changes
- Display all tables, views, procedures, etc in one ListTree on the left as opposed to ListBoxes on the bottom. This makes it easier to deal with different databases that have different types of objects. For example I could make a category for System Tables, Linked tables and Notmal tables for JetSQL databases.
- I want to replace the text box that serves as the query editor with the text editor component that is part of SharpDevelop for Applications (SDA) or perhaps Scintilla if I can find an appropiate .NET wrapper.
Contributors
If you send me a patch I'll look at it. If I like it I'll apply it and submit it to SVN. You will get credit in the source and on this page.
- User Rasha on the SQLite.NET forums showed me how to retrieve the DDL of a table in SQLite.NET
- Dmitri Arkhangelski, author of UltraDefrag has provided me with valueable feedback that improved the gui resizing code.