New DatabaseConnection class

I have just installed the latest Xojo release and was curious about the new DatabaseConnection class.
The developers have really and seriously managed to keep up this endless ignorance of mysql / databases and encodings? Every programming language I know of manages to address a database in a meaningful way without having to eat its guts first.
Operating systems run on utf8, databases run on utf8, development environments run on utf8. Even my refrigerator probably runs on utf8!
Oh yes. Xojo runs on utf8. But if I want to use mysql, I have to define an encoding for every string I read. FOR EVERY!!!
Now Xojo has a GUI for the database that also does not recognize encodings:


What - damn it - is so difficult about building a database connection in 2024 as you would in 2024 and not as you would in 1996? The database server tells you which encoding it uses internally. You know which one you use in your ide. All you have to do now is set the connection accordingly and then provide the received data with the correct encoding.
If you - seriously - think you can’t just change this as a default - because there is someone somewhere who is still developing software from 1996, which then has the wrong encoding:

Hey! Xojo, has made my code completely unusable several times in the last few years and produced rewrites galore!
But even then: Just make it configurable!

And please - I know it’s well meant - but please spare me the workarounds. I know that StringValueX etc. exists. I have solutions for it. But it is simply a bottomless impudence to offer such a thing for a lot of money.

By the way: I have no idea why anyone would build a GUI for the database class tables in Xojo (the time would have been much better spent on the above task) and you can do exactly nothing with it. A (I assume it is one) timeout on the database simply crashes the entire Xojo IDE.

OS: macOS 14.5.0 (23F79)

IDE Version : 2024 Release 2

Stack Trace:
* RuntimeRaiseException
* RaiseNilObjectException
* StudioDatabaseEditor.TableList_Change27079o<StudioDatabaseEditor.StudioDatabaseEditor>o<Listbox>
* _ZN14RuntimeListbox16ListboxSelChangeEP9NuListbox
* _ZN14RuntimeListbox13HandleMouseUpEN4xojo5ValueINS0_6PointsEEES3_
* _Z31Debugger_DictionaryValueByIndexP13RuntimeObjectx
* __NSFireTimer
* __CFRunLoopDoTimer
* __CFRunLoopDoTimers
* __CFRunLoopRun
* CFRunLoopRunSpecific
* RunCurrentEventLoopInMode
* ReceiveNextEventCommon
* _BlockUntilNextEventMatchingListInModeWithFilter
* _DPSNextEvent
* -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
* _Z29CocoaFinishApplicationStartupv
* _Z29CocoaFinishApplicationStartupv
* Application._CallFunctionWithExceptionHandling27079o<Application>p
* _Z33CallFunctionWithExceptionHandlingPFvvE
* _Z29CocoaFinishApplicationStartupv
* -[NSApplication run]
* RuntimeRun
* REALbasic._RuntimeRun
* _Main
* main

Really well done. It’s just wonderful to be able to spend a huge amount of money on alpha-stage software every year. And I’ve just had the new release on my computer for 2 hours and 13 minutes. I must have spent an hour writing this article. It will certainly be exciting to see what else is coming in the next few days.


I recommend you become a pre-release tester.
That way you can help find problems on new features before the release.

1 Like

Operating systems run on utf8, databases run on utf8, development environments run on utf8. Even my refrigerator probably runs on utf8!

i think most of trouble comes because everything is configurable and not standard.

you should put this task in xo⯁o issues as always.

1 Like

Please make sure to create an issue regarding the encoding problem. If you send me the issue number I’ll make it a priority to try and get it fixed quickly.



Just to complete the picture, here is the original ticket. Only 12 years old :wink:

1 Like

Thanks for submitting this. I’ve brought it to the appropriate engineer’s attention. I’m betting it’s a relatively easy fix.


Yeah, that happens. If you look at that issue, not a lot of people were running into it and thus it didn’t bubble to the top. We don’t address issues by age. We address them based upon how much total trouble they cause. So a bug that is brand new but will cause every user a significant amount of trouble is going to get our attention immediately. Another bug that causes a little trouble for just one user won’t likely get a high priority. That doesn’t mean it never gets addressed. It just means that it’s a lower priority. Sometimes an engineer sees a bug like that and just decides to go in and fix it. We do give the engineers some room to work on things they want to work on.


Let’s put it this way, there were obviously enough people affected that a whole bunch of people came together in the forum to ask about it. Christian wrote a blog post about a workaround and built his own plugin to mitigate this.
You yourself have rather used this workaround diligently in your database abstraction layer in order to be able to work with it. MariaDB / MySQL is not necessarily some underground database that only exists because someone forgot to delete it. A few people actually use it.
I’ve been using RealBasic for well over 20 years and there came a time when I gave up writing bug reports. Maybe - at least I have the slightest feeling - someone has been interested in fixing bugs again for a few months now. I won’t believe it until I really see it.
In my opinion, I wouldn’t pay much attention to what arrives in the issue tracker today or what is trending there. After all, Xojo has done everything in the last few years to give users the feeling that Xojo doesn’t give a ■■■■ about them. Professional users in particular have withdrawn massively.

You can see how everyone has actually given up when you see that a “workaround” is pulled out of the hat for every problem. It has simply become completely normal that workarounds are constantly being developed for things that don’t work. It’s tons of working hours because you know that a ticket would remain unfixed forever. And hey, software that I’m developing today that has to be ready in 1 week - 3 months can’t wait months or years for a fix.
A fix is also not a bonus for the user. I expect a development environment (for which I pay!) to simply do what it is supposed to do. It is not my job to look for or document bugs. This is a concession on my part!!! A software tester is provided with the software and receives money for his work. So I am clearly NOT a software tester.
Let’s see where this goes, but at the moment I keep seeing people who are pretty unhappy with the situation and even my best friend (a professional developer himself) thinks I’m pretty stupid to still be working with Xojo.


Who in Xojo is responsible for quality control?


I would like to make a guess, but it would sound “dissatisfied”. :face_with_peeking_eye:

In fact, I can completely understand @Marius_Dieter_Noetzel’s dissatisfaction. And although I think the new database class is a complete waste of Xojo Inc’s development time, I am very happy with the current situation. Xojo has developed massively in the last 2-3 years.

The only thing that worries me is that the team still seems to be far too small to keep up with the demands.