Launching AeroSQL – a MySql web based manager built with ExtJS library
I’ve developed a MySql manager back in 2000 for MySql 3.23 using Borland Delphi. The software was used internally in a company. I’ve decided to switch completely to web based application development. I found ExtJS and I was amazed! … Then I thought what application to develop in order to get some ExtJS experience, so I recalled my intention to create a GUI for MySql. Here is how AeroSQL was born.
In my first release of AeroSQL I concentrated my efforts on the grid that manages the result set of an SQL statement. The main feature is that result set are editable: you can change the values of some columns and just press
Save. Of course not all
SELECTs returns a ‘live’ result set. I’m checking if the query fetched the data from a single table only, and if the result set contains all the columns of a unique index defined for that table, only in this case I let the user modify/save changes.
The easiest way to edit a table is to select it and click
Edit Data from the associated popup menu, but it’s a very restricting way of managing the content of a table, that is why I considered the
Live Result Set an important feature.
When issuing commands that doesn’t return a result set (INSERT, UPDATE), AeroSQL will let you know the number of affected rows.
AeroSQL also supports multi queries: a series of SQL statements delimited by semicolon (Notice that the
Execute buton has a dropdown where you’ll find the
Execute Batch option.). If a multi query has result sets, only the last one will be returned to the client. Multi queries can be used to perform transactions, define triggers and stored procedures/functions. In the next versions I want to add the possibility to upload an SQL file on the server (useful when restoring a database from a sql dump file for example).
I like shortcuts, but the only shortcuts available are the
Ctrl+Enter in the query textarea (it executes the query),
Ins key adds a new row to the grid,
Ctrl+Del deletes a row. Shortcut scheme will be improved in next versions.
I want to mention the nice icon set I used: Fugue Icons. I’ve modified a few of them to better fit into the interface.
Also I want to thank the ExtJS Forum for the invaluable knowledge that they “publish” there.