Ummm, onestamente ti consiglierei C++. Ma e' portabile finche' usi gli standard. Se fuoriesci da questo limite devi usare librerie che vadano bene su tutte le piattaforme.
Io ho trovato l'interfiaccia per C++ al database MySQL, che non solo e' molto buono, gratuito eccetera, ma probabilmente va sulle piattaforme che ti servono (certamente su linux e su win).

Il problema e' che poi ti servirebbero, probabilmente, delle librerie per una interfaccia grafica... a questo punto sorgono i problemi. Forse con QT puoi realizzare un'interfaccia che vada su i 3 sistemi operativi, ma a questo punto mi sa che tutti e 3 i sistemi devono avere installato QT (Trolltech, se non mi sbaglio... cerca su google per approfondimenti). QT e' usato da KDE, ma andrebbe anche su GNOME (per quanto riguarda linux). So comunque che e' un'interfaccia multi piattaforma... quindi puo' rivelarsi utile.

A questo punto non credo serva altro, per il C++.

Se usi JAVA la storia cambia... java e' uguale su tutte le makkine, dato che usa la JVM per funzionare su tutte le piattaforme (o quasi tutte). Il problema e' che JAVA al contrario di C++ e' un bel po piu' lento...
ma per interagire con un database, non so a quanto serva la velocita'... basti pensare a Visual Basic, che e' lento come la fame, eppure la maggior parte delle applicazioni sono per Database.
Ovviamente VB non e' portabile, escludilo dalla lista.

Tornano al C/C++. Se nn mi sbaglio, quando installi MySQL ti viene fornita l'interfaccia, el librerie e gli header per programmare in C. Queste sono le librerie piu' basilari, non basate sulla programmazione ad oggetti. Se vuoi qualcosa che usa gli oggetti (ma nn so a quanto ti possano servire nel contesto) trovi delle librerie, anchesse multipiattaforma, che sfruttano quelle di MySQL per fornire un'interfaccia ad oggetti.

Rimando sempre a GOOGLE per ulteriori informazioni

ciauz