Moin,
* Andre Heine
Am Sonntag, 7. Juli 2002 20:58 schrieb Thorsten Haude:
* Andre Heine
[02-07-07 20:33]: sollte eine SQL Verbindung schon beim Start einer Anwendung geöffnet werden, oder ist es besser sie bei Bedarf zu erzeugen?
Kommt darauf an, ob Du die Verbindung in jedem Fall brauchts. Wenn Du nur selten oder spät innerhalb der Lebenszeit auf die Datenbank zugreifst, solltest Du die Verbindung erst dann aufbauen.
Ich möchte mit Qt einige GUI's entwickeln, die SQL Klassen möchte sehr allg. entwerfen bzw. implementieren. Ich brauche die Verbindungen eigentlich nur beim speichern,etc in der Maske...
Ich verstehe nicht. Willst Du Widgets bauen? Eine IDE?
Das System soll belastbar & schnell (viele Clients) sein. Würde ich die connection immer wieder aufbauen, dauert das immer etwas.
Klar.
Wenn Du die Verbindung eh ständig brauchst, kannst Du sie ebensogut sofort aufbauen, evtl. sogar einen Pool von Verbindungen.
Wie könnte man das mit dem Pool lösen?
public abstract class Pool { public Pool(int min, int max, int start) { } public Object getItem() { // return item from Pool, removing it } public void addItem(Object object) { // return item to Pool } protected abstract Object createItem(); protected abstract void destroyItem(); } Wenn ein neues Objekt hinzugefügt oder entfernt wird, überprüft ein zweiter Thread, ob die Größe des Pools angepaßt werden muß. Wenn ja, dann wird create/destroyItem aufgerufen. Interessant ist es, verschiedene Strategien zu unterstützen, indem man min, max und start geschickt wählt. public class ConnectionPool extends Pool { protected Object createItem() { // create connection } protected void destroyItem() { // destroy connection } } Die Connections würden dann bei Programmstart (oder sobald Bedarf zu erwarten ist) erstellt werden und von allen Teilen der Applikation benutzt werden. Über Transaktionen mußt Du nochmal nachdenken, evtl. mußt Du get/addItem() überladen. Es würde mich übrigens nicht überraschen, wenn Qt schon so ein Ding anbietet. Thorsten -- Whenever there is a conflict between human rights and property rights, human rights must prevail. - Abraham Lincoln