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
* __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
* __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.
9 posts - 4 participants