yoy.be "Why-o-Why"

2013 ...

januari februari (4) maart (3) april (1) mei juni (1) juli augustus september oktober november december (1)

Delphi's TDateTime in a datetime column: how to manipulate from SQL?

2013-03-19 22:25  i3065  coding delphi  [permalink]

Thanks to sqlite's manifest typing, it's possible to insert Delphi's TDateTime values in a field defined by SQL as datetime. I was using this for a while without any problem before I found out sqlite was actually storing a floating point value. There may be a problem though when you try to manipulate these dates with SQL. I searched around for a suitable conversion, and using default sqlite features, I came up with this code:

datetime('1900-01-01','+'||(myDateField-2)||' day')

where myDateField is a column or value of type datetime.

(At least, I have this with my own SQLite connector, if you use something else, your milage may vary.)

Ik wil ook wel zo van die structurele maatregelen.

2013-03-21 23:00  i3066  politiek actueel beurs  [permalink]

Ik heb geen pol en sok gestudeerd. Ik ben helemaal geen expert. Ik heb iedere dag het gevoel dat ik nog maar net een beetje probeer de politiek te volgen. Ook belangrijk: ik baseer mij enkel op de zaken zoals ze via het 'normale' kanaal tot bij u en mij raken: nieuws op TV, radio, tijdschriften en internet. En toch...

Als het geld op is moeten ze er nieuwe bij drukken. De VS doet het. Groot Britannië doet het. Maar Europa? Ho maar. Ik veronderstel voorlopig even gemakkelijkheidshalve dat Merkel en Hollande dat niet wil. Als het moeilijk gaat, en je beschikt over een nationale munt, en met het sleutelen aan de percentages van dit en dat helpt niet meer, dan kan je gaan voor een devaluatie (een duur woord voor geld bij drukken). De mensen zijn even kwaad, de koopkracht schommelt een beetje, maar uiteindelijk keert er vanalles, doet iedereen verder en komt het goed.

Ik vermoed dat er iemand zal gedacht hebben misschien werkt het ook als we gewoon van iedereen een stuk spaargeld afnemen, dan daalt de koopkracht toch ook? In Cyprus zit zelfs veel geld van buiten Europa, dat is ook mooi meegenomen. Maar zo werkt het niet. Ik vrees dat een run-on-the-bank onafwendbaar is. Misschien zelfs trubbels met Rusland. Niet goed.

Intussen in eigen land vragen de banken of de staat toch niet wat langer zou willen schulden maken. Lijkt me geen zo'n goed idee, al was het voor de trubbels met Europa. Ze vragen 'structurele maatregelen'... Dat vond ik wel heel vreemd. Banken schreven meer leningen uit dan goed voor hun was, toegegeven vooral in de VS, maar die rommelkredieten worden in alle soorten en vormen herverpakt en doorverkocht, tot het boeltje ineenstort, ze straten en wijken met een keer iedereen uit het huis zetten (en niemand die wil kopen, lijkt me nog eens een slecht idee op zijn eigen) en dan lijken er wereldwijd banken of onderuit te gaan of het heel erg moeilijk te krijgen.

Maar da's intussen al een paar jaar terug. Intussen gaat het niet goed met het heropleven van de economie, dus houden ze de percentages laag. Wij krijgen minder dan de inflatie op spaargeld (handig voor de banken) en lenen zou moeten makkelijker om dragen zijn met zo'n lage rente, toch als de bank je wil lenen. Daar lijkt het te schorten als ik het zo hoor. Ze zijn nu plots wel heel streng om hun geld uit te geven. En ze vragen om 'structerele maatregelen', om wat precies? Of de staat zou willen borg staan voor de leningen voor deze heroplevende economie? Lijkt me wat vreemd dat de huizen die sterker uit de storm zijn gekomen zo bang zijn van een beetje risico.

In plaats van te liggen verhuizen, zouden de rijke mensen beter zelf schuldnota's uitdelen. Iets in de zin van 'deze bon geeft u in 2020 recht op 50 euro uit de pocket van rijke mijnheer of mevrouw X'. Daarmee betaal je dan je boodschappen. En dan zien we in 2020 wel om ze terug te betalen. Lijkt misschien vreemd, maar het totaal bedrag aan Amerikaanse staatsschuld lijkt me een groot genoeg bedrag om een volledig land uit te bouwen. En hoeveel de dollar waard is, is toch afhankelijk van hoeveel de Chinezen er voor willen geven, toch?

Maar ik ben geen expert. En ik probeer maar te volgen wat ik in het nieuws zie. Maar ik denk er toch het mijne van.

"database locked" errors with SQLITE_CONFIG_SERIALIZED

2013-03-23 22:36  i3068  coding delphi  [permalink]

I've been impressed by sqlite3 ever since I get to know about it. It's open source, and even more it's really put in the public domain completely avoiding the licensing headache. I haven't read the source in great detail, but as I understand it it's all in a single big file! Even how it works internally is impressive.

Since I didn't like the options available, I created my own very thin wrapper for sqlite3.dll without much trouble. Only in this one multi-threaded application, I've run into an occasional "database locked" error, so I had to search documentation and source for what I can do about it.

Working with other database solutions, I've had the common sense of using a database connection for each thread, so each could work with the database undisturbed by eachother. As it turns out this is not required with sqlite3! As stated with SQLITE_CONFIG_SERIALIZED, which is the default setting, you're better off using a single connection over all threads. Indeed in my case it solved the "database locked" errors.

Update 2016-03-02: Using a single connection over all threads, has a negative effect on transactions over queries that make changes, especially when multiple threads want to start a transaction on the same connection, which is not at all the point of connections! After some searching around, the normal way to avoid the 'SQLITE_BUSY' errors (which apparently translate to "Database is locked.") is to set a busy timeout.