[Lazarus] Cross Platform SQL Client/Editor

Michael Van Canneyt michael at freepascal.org
Sat Jan 2 18:06:32 CET 2016



On Sat, 2 Jan 2016, Anthony Walter wrote:

> Michael,
>
> Just FYI currently there is no "fpddmssql.pp" (the dd is for data
> dictionary I suppose) so no, it's not as easy as just adding a unit name to
> the project source. New units must be created and a register function must
> be create for mssql to appear in the connections list.

I have just committed initial support for this.

>
> And as far as your surprise at my lack of research goes, you need to
> rethink about discovery. The first thing your app does is show a blank list
> view of data dictionaries rather than help users create a database
> connection first. Next after switching to the connections tab you have to
> know to right click in the blank list view to get a context menu which
> gives you the option to create a connection. Forcing users to find your
> hidden options by using right click context menus is terrible design. Next
> we get to the point where these is no option for mssql. You say you simply
> include a unit, but in reality no mssql connection register unit currently
> exists, so it's not that simple.

I was writing in the belief this unit existed. 
I was wrong, but this is now remedied.

> When you despair if people "didn't investigate very deeply", how far do you
> want users to go? You need to understand that most people are not going to
> go through a deep investigation before trying to resolve problems deciding
> if your tool suits them or even works for their needs.

Before a _seasoned developer_ (I would say you qualify?) starts writing his own tool, 
I do expect him to investigate, yes.

Let me explain:

- It should be clear what the database desktop is for (more or less).
   It's clearly not a browser or image viewer.

- That being the case, if it still doesn't do something you want,
   then that is a reason for at least investigating.

- If the code is not clear: ask on the mailing list, this IS open source.

I cannot imagine that this is more work than reimplementing it from scratch.

> To improve your tool I'd suggest:
>
> If there is no stored connection, you should have a database connection
> setup screen as the first thing users see when launching your app.

Well, I have added a popup saying what to do. I don't believe starting the
dialog as once as you suggest is the right thing to do, so I offer people
the choice. Clicking one of the 2 'Ok' buttons take them to the appropriate
dialog, as you suggest.

> If there are any hidden right click menus, you should supplement them with
> items in a menu menu or a toolbar with appropriate icons and tooltips.

As I said in a previous mail: The item in the menu was there, since day one.
This, and this alone, prompted my remark about depth of investigation.

That it is not there in the toolbar was indeed a lack which has now been remedied.

> Provide in the sources code at least a comment about how to add additional
> database providers.

Done.

> Also calling database providers (what the rest of the world calls them)
> "dictionaries" (RegisterDictionaryEngine) isn't helping the situation any.

The name is there simply because of the architecture of the tool:
the intent was (and still is, though secondary) to promote the use of the dictionary in DB apps. 
They make life easier. 
You cannot add a connection type without a corresponding data dictionary engine.

I have made the connections more prominent by putting them first.

I hope that recent commits convince you that we do want people to work with
these tools, and that we're open for suggestions.

I repeat: comments, suggestions, patches are welcome.

Certainly where UI design is concerned, which is - admittedly - not my forte.

Michael.




More information about the Lazarus mailing list