Umgang mit blockierenden Datenbankfunktionen
Umgang mit blockierenden Datenbankfunktionen
Ich vermute, dass die SQL-Komponenten von Lazarus blockieren, also nicht asynchron sind. In diesem Fall würde ich einen Query in einen Thread packen. Ist kenn ich mich aber noch nicht sonderlich mit Lazarus aus, wäre das das übliche Vorgehen (Thread)? Danke!
-
- Beiträge: 90
- Registriert: Fr 2. Nov 2007, 13:32
- OS, Lazarus, FPC: Win (L 1.0 FPC 2.6.0)
- CPU-Target: 32Bit
- Wohnort: Ulm
Re: Umgang mit blockierenden Datenbankfunktionen
Ich kenne es nur blockierend. Geht aber wahrscheinlich auch anders.
Ich habe mehrere Threads parallel laufen.
Ich habe mehrere Threads parallel laufen.
Re: Umgang mit blockierenden Datenbankfunktionen
Ich nutze einfach eine zweite Connection, (Transaction), Query und DataSource. Wenn z.B. die erste Conenction mit einer DBGrid verbunden ist, kann man mit der zweiten Verbindung zusätzliche Abfragen/Befehle etc. machen. Dafür braucht es keinen Extra-Thread.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Umgang mit blockierenden Datenbankfunktionen
Wenn die Abfragen länger als 1 Sekunde dauern (können) ist ein Thread anzuraten.Michl hat geschrieben:Ich nutze einfach eine zweite Connection, (Transaction), Query und DataSource. Wenn z.B. die erste Conenction mit einer DBGrid verbunden ist, kann man mit der zweiten Verbindung zusätzliche Abfragen/Befehle etc. machen. Dafür braucht es keinen Extra-Thread.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Umgang mit blockierenden Datenbankfunktionen
Jep, das versteht sich von selbst, war mir nur nicht im klaren darüber, was für Eigenschaften die DB-Objekte in Lazarus haben, hätte ja sein können, dass sie über einen flotten async-Modus verfügen. Bin mit der Thread-Theorie bestens vertraut und habe auch schon Threads zusammen mit z. B. Gtk benutzt. Habt ihr eine Linkempfehlung für mich, so als erste Lektüre? Gibt's überhaupt so etwas wie "die Free Pascal Bibel"? So wie K&R bei C, oder Richard Stevens' Werke, wenns um UNIX/Socket/IPC usw. gehtSocke hat geschrieben:Wenn die Abfragen länger als 1 Sekunde dauern (können) ist ein Thread anzuraten.Michl hat geschrieben:Ich nutze einfach eine zweite Connection, (Transaction), Query und DataSource. Wenn z.B. die erste Conenction mit einer DBGrid verbunden ist, kann man mit der zweiten Verbindung zusätzliche Abfragen/Befehle etc. machen. Dafür braucht es keinen Extra-Thread.
