[Lazarus] Cross Platform SQL Client/Editor

Anthony Walter sysrpl at gmail.com
Sat Jan 2 21:51:31 CET 2016


Michael,

I checked out the lasted code from
svn/fpc/trunk/packages/fcl-db/src/datadict and
svn/lazarus/trunk/tools/lazdatadesktop.

Everything builds fine and it looks/works a lot better. Although I can now
connect to a remote mssql server, I found some problems with the "Run
query".

Here is a short issue list of the problems I nottice off-hand:

1) It doesn't handle typos or incorrect SQL statement very well. The app
presents an uncaught exception error dialog and asks you for permission to
terminate lazdatadesktop.

2) It doesn't allow a selected block of text to be run, rather it tries to
execute everything in the query window (see also issue #7).

3) It doesn't allow for multiple datasets to be returned.

4) Running "select columns into dest_table from source_table" crashes
lazdatadesktop as described in issue #1

5) Running "create database new_database" crashes lazdatadesktop as
described in issue #1.

6) It seems to want to return a live editable dataset and you must have to
press a stop button before the run query button is enabled again. There
should be some option to allow for a query to be run either without being
live, or change run to allow it to close then open a new query.

7) I'm not sure how useful the next/previous buttons are. I think most
people tend to want to maintain a big script they keep on disk containing
"if exists () drop table/procedure/function" followed by a "create
table/procedure/function" statement. They don't want a bunch of small SQL
clips kept in memory which they use forward and back arrows to navigate.

8) There should be a database selector to allow the user to change
databases on connections which support that functionality.

To fix:

All error messages related to SQL execution issues (table already exists,
invalid statements, ect) should be routed to a message area below the
script window. In this way a user can examine the message while trying to
fix their SQL, rather than having to dismiss a window and trying to
remember the details of the error message while trying to fix their SQL. In
all cases, users should never be presented with error dialog asking for
permission to terminate the app because their SQL is invalid.

Create database and database switching need to work. If I have a SQL
client/editor which cannot run a  "create database" statement, then that
editor is broken IMO.

Every SQL client/editor where the connection supports multiple databases
(mssql, firebird, mysql, postgre) should give users the ability to switch
databases without the need to define new connections. Users should be able
to see the databases for a given connection and have an easy way to switch
the connection to a different database, possible integrated with the "use"
SQL command.

Multiple dataset return should be supported. My program (at the top of this
thread) handles it, along with proper error message handling. I'd say the
live/editable dataset thing should be an extra option and not the default,
but that's me. Maybe we need a poll on this but I'd be curious to know how
many people who are typing end executing SQL prefer to just get results,
error messages or a live datagrid?

Execution of selected text should be supported.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20160102/12458ebf/attachment-0003.html>


More information about the Lazarus mailing list