Where is Base?

Everyone can have the same frontend too (so it's keep updated) if its
definition resides on the server side.
Not necessarily in the same db instance or even db type. That's the
way of Kexi even if "only" local SQLite instances are used.
All combinations possible: local data + shared frontend, shared data +
local frontend, everything shared, nothing shared.
This is an entry point to the cloud infra.

Without this, "splited database" with local frontend sounds still very
"Access way" no matter how we criticize it.

Also and idea, for a higher level operation is based on 3-tier
architecture where users have access to business logic and not to
physical database instances. Reasons being: reliability,
maintainability and security.

Hi :slight_smile:
Yeh, in attempting to clarify i did add an extra confusion! Sorry! The
HsqlDb version 1.8 is only a problem when using the internal version in
Base. However Base doesn't give you much choice about what to use as the
internal back-end. Just the heavily tweaked and broken version of 1.8.
Regards from
Tom :slight_smile:

Hi :slight_smile:
I have been told, off-list, that i am quite wrong about what i have been
saying about Base.

I'm not clear exactly which bits of what i have said are wrong. Almost all
of what i said was things i had picked-up from experts on this mailing list
or discussions elsewhere, rather than from my own direct experience or
knowledge of the issues. It would be nice to know where i am wrong to help
me be less wrong in the future!

Also it would be good for such corrections to be in this thread if possible
because it has been a really good thread with a lot of good feedback about
different people's knowledge and experience.

Finally if i have given people a wrong impression about Base then it would
be nice to be able to fix that.
Regards from
Tom :slight_smile:

Just want to say this thread has been so helpful and enlightening, I have
learned a lot about base, mysql and databases.

Tom, thanks for all your input!

Howard

Ditto!!!

+1

It has cemented the decision I took last year to move to Base+MySQL - which works very well indeed!!

IanW
Pretoria RSA

Hi :slight_smile:

I'm working with FilemakerPro since it was available for Windows (1995) for Standalone-Databases. I'm working with PHP and mySql since 1998 and with Typo3 (using PHP and MySql) since 2002.
I always used FilemakePro for all kinds of single-user databases, e.g. Address_lists, Invoices, etc. and later (beginning with FileMaker Pro 7.0) I used it as a Frontend for MySql.

But unfortunately Filemaker ist not available for Linux, only for Mac+Windows, so some days ago I gave LibreOffice Base (4.4) a try, did some tutorials and now I'm very exited about its possibilites - especially the use of direct mysql-queries (thats not possible with FileMaker).

But in LibreOffice Base there are some (in my opinion very important) things missing:

1. I cannot use the internal LibreOffice Database together with an other external (e.g. Mysql-) Database.
With Filemaker I often created local (Filemaker-) Databases, containing search-filters (or settings) for the local user that filter the lists of the mySql-Data-Forms. This seems not possible with LO Base.

2. LO Base is missing options to create apps for 'simple' users.
Using a LibreOffice Base file is too complicate for many users who simply have to add/edit data. I know, there are standalone-forms, but there are too few possibilities with that (e.g. no Macros).
For a 'simple' user, I'd like to have
- *one* Window and buttons to switch the content of the window to different forms/reports etc.
- a tab-controller element (switching through subforms with tabs)
- a script-engine easier to use than macros (see FileMaker how this can be made perfectly)
- Security-Settings/User-Rights, so that users cannot destroy their app by mistake

This year, I have to create a frontend for a really big MySql-Database (100+ Tables). There is a web-app to browse this data, but for adding/editing data there is no perfect solution yet (This customer uses a php-import-script for his Access-Databses atm...)

I would really like to implement this frontent with LO-Base, but I'm afraid I will end up with Filemaker because I can create a more robust tool with it (and also, because I'm used to it since years...)

I'm curious to see what will be new in the next versions of LibreOffice Base.

Regards
   Stefan

P.S.:
Maybe I'm wrong with the results of my test and all/some of these options already are possible - if so, please let me know :wink:

Hello again,
As was mentioned in a reply to one of my remarks: Yes, there are a number of things missing in the
LO-Front end to databases: Just ONE little thing eg.: When selecting tuples using the standard filter,
the selection criteria (max 3 in number) are too restricted.
Like -- eg. if I want to select tuples, where ((fielda = x or fielda = y) and fieldb = z) I cannot specify this
(no parenthesis capability!). This kind of filter is naturally possible when accessing MySQL through
phpMyAdmin.
But then, it is not a big issue to quickly create a view using native SQL. So, while I would like to have
this capability, it doesn't really prevent me from using LO-Base.
On the other hand, trying to build a REAL application system using LO-Base and (eg.) Basic Macros and
Forms is not really a choice. I suppose that M$-Access isn't fit to handle this kind of requirements either.
For this kind of system I am looking at frameworks such as Symfony2 at the moment.
Keep up the good work!
Heinrich

Ian Whitfield schrieb:

Regarding the "interface to the big irons":
Base can not handle arrays field types.
Base can not handle binary field types. It crashes (possibly losing the
embedded database) when you load a form with many records having
pictures ("normal" size as in typical photos).
Form grids become unusable when you load some thousand records from a
calculated record set.

All sorts of arbitrary complicated filtering can be done by means of
filter forms bound to filter tables (search the AOO forum for the term
"power filtering"). Since many years this has been a nice but clumsy
work-around for all Base users. It lets you implement a desparately
missing feature on your own. It lets you enter filter criteria (contrary
to table data) directly into your form.
Personally, I find the built-in "form based filter" not too bad.
Indeed, macros are not an option. Writing macros is highly unproductive.
The useful ones are contained in the "Access2Base" extension.

Are Macros also available, if the form is saved as a *standalone form* ?
I've heard, that not...

Regards,
    Stefan

Why not? Of course they are. You can store the code in the form document
or in the global container just like any other office macro.

You can check this out within a minute. Create a "Bibliography" form on
an arbitrary Calc, Writer or Draw document. Add some control and point
some control change event or some form navigation event to a
MsgBox("Hello").

Tom, It is too obvious that you never use LibreOffice Base.

Stefan ,

Macro's can "live" in any document so also in a "Standalone form" , better is to place your macro's in the LO application, who makes is fast more easy to Update and distribute for several users as a extension.
Greetz

Fernand

Hi :slight_smile:

I'm working with FilemakerPro since it was available for Windows (1995) for Standalone-Databases. I'm working with PHP and mySql since 1998 and with Typo3 (using PHP and MySql) since 2002.
I always used FilemakePro for all kinds of single-user databases, e.g. Address_lists, Invoices, etc. and later (beginning with FileMaker Pro 7.0) I used it as a Frontend for MySql.

But unfortunately Filemaker ist not available for Linux, only for Mac+Windows, so some days ago I gave LibreOffice Base (4.4) a try, did some tutorials and now I'm very exited about its possibilites - especially the use of direct mysql-queries (thats not possible with FileMaker).

But in LibreOffice Base there are some (in my opinion very important) things missing:

1. I cannot use the internal LibreOffice Database together with an other external (e.g. Mysql-) Database.
With Filemaker I often created local (Filemaker-) Databases, containing search-filters (or settings) for the local user that filter the lists of the mySql-Data-Forms. This seems not possible with LO Base.

2. LO Base is missing options to create apps for 'simple' users.
Using a LibreOffice Base file is too complicate for many users who simply have to add/edit data. I know, there are standalone-forms, but there are too few possibilities with that (e.g. no Macros).
For a 'simple' user, I'd like to have
- *one* Window and buttons to switch the content of the window to different forms/reports etc.
- a tab-controller element (switching through subforms with tabs)
- a script-engine easier to use than macros (see FileMaker how this can be made perfectly)
- Security-Settings/User-Rights, so that users cannot destroy their app by mistake

This year, I have to create a frontend for a really big MySql-Database (100+ Tables). There is a web-app to browse this data, but for adding/editing data there is no perfect solution yet (This customer uses a php-import-script for his Access-Databses atm...)

I would really like to implement this frontent with LO-Base, but I'm afraid I will end up with Filemaker because I can create a more robust tool with it (and also, because I'm used to it since years...)

LibreOffice base will bring not real new stuff due to lack of developer interest, but you can perfectly build yourseff a frontend using the API and basic. Keep away from "forms" and use Dialogs instead.

Greetz
Fernand

Hi :slight_smile:
Thanks for your support chaps! :slight_smile:

I think the main problem was about HSqlDb being fairly fantastic as a
back-end when used as an external back-end, preferably as their latest
version from their official website (or your distro's repos or whatever)
but any of their versions will do apparently;
http://hsqldb.org/
Their 2.3.2 does full multi-threading. "The latest version 2.3.2 improves
on access and management of very large data sets. It supports up to 270
billion rows of data in a single database and a hot backup capability."

Ok, so it seem my thoughts about it being mainly for small, light and very
fast databases was "a bit off" too! I'm not sure how that compares with
MySql/MariaDb or Postgresql but it sounds like, as almost always ime, the
simplest explanation to cover all available information is not always the
truth! HSqlDb seems good for rather large databases after all.

Also it sounds as though it is reasonably easy to export a ".jar" file (or
something) from Base, if you are currently using the internal back-end and
then just use that in an external version of HSqlDb then that works quite
well too apparently. This is something i wish had been clear many years
ago!!

So the only problem is with continued current usage of the internal
back-end but having easy migration routes into external back-ends might
help us deal with people's problems MUCH more easily in the future. Does
anyone here have a database that does still use the internal back-end? If
so is there any chance of experimenting with exporting as some sort of java
file with maybe a little help from some of the experts on this mailing
list? I would be interested to see how it plays out and whether it really
is as easy as has been suggested.

Right now my feeling right now is that moving to MySql/MariaDb still has
advantages, such as possibly being more widely used and therefore maybe
easier to get advice, guidance and maybe even training in.
Regards from
Tom :slight_smile:

LibreOffice Base is not a database development platform. It is hardly
more than a bridge between databases and office documents. Yes, there is
a limited set of form controls and yes, it comes with macro languages
anyway. The core functionality is built around the ODF standard.
Database connectivity is a *simple* give-away which can be used in
various ways, mainly to fill ODF documents with external data.
Filemaker and Access are a completely different category.

I guess Andreas is right in all his observations. I'll never expected LO or
similars to be an top Databse development front end (although if it would
reach filemakers level would be nice). What I expect, as a non IT person, from
such kind of platform, is to help me out to delevelop relative simple to
medium simple personal and sometimes professional problems without having to
learn several programming languages to achive the same through web pages. I
have some friends which simply gave up building such DB just because it was to
cumberson to learn several different thinks to achieve one purpose only.

I thing every tool is a right tool if we keep their limitation in mind and I
think Base is in the absolute right direction. After starting to read the 4.4
manual, Tom pointed me out, I got over enthusiastic again, because I saw how
much progress the Base team has done (good work folks). I got so enthusiastic
that I started to translate it to my native language (as soon I reach some
chapter translated I'll make the drafts available).

I think that one of the major draw backs of Base and why people isn't using it
is the lack of up to date manuals. There more up to date literature and
information is available more people can understand power and limitations of
base and how to employ it. I know there are some tutorials around, but there
more there better so people can see what is possible to do with base. I know
the develop and documentation team might be small for this herculean work but
as I said before "good job folks", the rest comes with time.

Just curious, per a good practice, why the macros wouldn't be stored
on the server as other db objects (data)?
Why in the networked era, user needs to update their clients? We're in
post-networked era even.

Because Kexi does that by design. But here local file (reliable
sqlite3 that -based on reports- almost never crashes for users) is
handled in the same way as any server so there are no special cases.
Asking because of an intent to harmonize behaviours and approaches.

Because we are talking about office macros. An office macro is stored in
the user profle, in the install directory or in an office document.

What you have up and running on your server is a database. The office
suite and the database are 2 completely separate things. The database
accepts requests and returns requested record sets without knowing any
of your queries, forms, reports and macros. It accepts the exact same
requests from your web server returning the exact same record sets
without knowing anyting about your web server, script language or the
client's browser.

Stefan ,

Macro's can "live" in any document so also in a "Standalone form" , better
is to place your macro's in the LO application, who makes is fast more easy
to Update and distribute for several users as a extension.

Just curious, per a good practice, why the macros wouldn't be stored
on the server as other db objects (data)?
Why in the networked era, user needs to update their clients? We're in
post-networked era even.

Because Kexi does that by design. But here local file (reliable
sqlite3 that -based on reports- almost never crashes for users) is
handled in the same way as any server so there are no special cases.
Asking because of an intent to harmonize behaviours and approaches.

Because we are talking about office macros. An office macro is stored in
the user profle, in the install directory or in an office document.

Thanks for sharing the perspective. I'll explain the simple logic
that's a building block of data-oriented environments such as Kexi.

Macro in LO is an equivalent of an MS Access module, which is stored
in database, just like in Kexi.
It's also an equivalent of a stored procedure, which is stored in a
database, and in addition execution engine usually happens to be
bundled in the same product database and can be controlled using the
same channel as data, structure and triggers are controlled.

(Sorry if I am writing this under the eyes of seasoned (real) db users
but still I hope it will be useful to someone)

I don't need to mention that sharing authentication rules and
transmission channels with the database engine is beneficial for
security. Compare that to storing code in home directory, enabled for
free modification.

What you have up and running on your server is a database. The office
suite and the database are 2 completely separate things. The database
accepts requests and returns requested record sets without knowing any
of your queries, forms, reports and macros.

It accepts the exact same
requests from your web server returning the exact same record sets
without knowing anyting about your web server, script language or the
client's browser.

True, just like the database does not know that a NAME column's
semantics is "person's name".
It's the one or two upper layer(s) of your architecture that implement
the semantics.

Scripts/macros/forms/reports/query statements and everything else are
strings perfectly stored. Just like your bash scripts in a file
system. They are programs, stored as arrays of characters, without any
knowledge what's inside.

From that perspective, database is a storage medium, just like a file
system, with a different feature set.
For executing it you need an execution engine (javascript or python or
a clone of VB, etc.) and an execution context. Execution in an
environment itself calls a process call into being.

Ability of handling _programs_ on the server side is irrelevant to
ability of properly storing (textual, or binary) definition of
_macros_ and offering them to clients for retrieval, maybe versioning,
and protecting the access.