db-Zugriff bei mysqldb trennen?
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
db-Zugriff bei mysqldb trennen?
hallo zusammen,
ich möchte aus einer Anwendung heraus mehrfach auf eine mysqldb zugreifen.
Sprich es soll möglich sein von verschiedenen Arbeitsplätzen aus auf die db und verschiedene Tabellen zuzugreifen.
Macht es Sinn, die Verbindung zur DB nach jedem Zugiff zu trennen und vor dem Zugriff wieder aufzubauen, oder ist es ausreichend mit Transaktionen zu arbeiten?
Wie würdet ihr das handeln?
Danke für eure Meinungen
Gruss Kh
ich möchte aus einer Anwendung heraus mehrfach auf eine mysqldb zugreifen.
Sprich es soll möglich sein von verschiedenen Arbeitsplätzen aus auf die db und verschiedene Tabellen zuzugreifen.
Macht es Sinn, die Verbindung zur DB nach jedem Zugiff zu trennen und vor dem Zugriff wieder aufzubauen, oder ist es ausreichend mit Transaktionen zu arbeiten?
Wie würdet ihr das handeln?
Danke für eure Meinungen
Gruss Kh
-
- 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: db-Zugriff bei mysqldb trennen?
hi,
Ich hab zwar noch nicht soviel prakitsche Erfahrung mit der Datenbankprogrammierung und FreePascal (oder auch Delphi) aber das ständige trennen und reconnecten ist in meinen Augen sinnlos, da eine Datenbank zumindest in den meisten Fällen - und MySQL gehört dazu - darauf ausgerichtet ist mehrere Benutzer gleichzeitig und vor allem unabhängig von einander zu bedienen.
Wenn ich mich irren sollte, bitte berichtigt mich
Socke
Ich hab zwar noch nicht soviel prakitsche Erfahrung mit der Datenbankprogrammierung und FreePascal (oder auch Delphi) aber das ständige trennen und reconnecten ist in meinen Augen sinnlos, da eine Datenbank zumindest in den meisten Fällen - und MySQL gehört dazu - darauf ausgerichtet ist mehrere Benutzer gleichzeitig und vor allem unabhängig von einander zu bedienen.
Wenn ich mich irren sollte, bitte berichtigt mich
Socke
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: db-Zugriff bei mysqldb trennen?
Socke hat recht, MySQL ist eine Multiclient-DB.
Ich würde die Verbindungen aufrecht erhalten und entsprechend mit Transaktionen arbeiten. Ich seh auch im Moment keinen Vorteil darin, weshalb man die Verbingung nach jeder Aktion trennen und ggf. wieder neu Aufbauen sollte, höchstens, wenn du nur einmal am Tag auf die DB zugreifen willst und die Verbindung dann stundenlang ohne Aktion aufrecht erhalten würde.
Ich würde die Verbindungen aufrecht erhalten und entsprechend mit Transaktionen arbeiten. Ich seh auch im Moment keinen Vorteil darin, weshalb man die Verbingung nach jeder Aktion trennen und ggf. wieder neu Aufbauen sollte, höchstens, wenn du nur einmal am Tag auf die DB zugreifen willst und die Verbindung dann stundenlang ohne Aktion aufrecht erhalten würde.
Johannes
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
Re: db-Zugriff bei mysqldb trennen?
ich danke euch
gruss KH
gruss KH
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
Re: db-Zugriff bei mysqldb trennen?
irgendwie stehe ich gerade auf dem Schlauch 
also ich öffne die Verbindung beim create des form1 mit mysql50connection.
die Verbindung soll offen bleiben.
aus dem form1 erstelle ich ein form2 und ein form3 in denen ich die verbindung nutzen will.
wioe kann ich jetzt auf die offene connection zugreifen?
uses form1 im form2 geht ja nicht:-(
Danke für eure Hilfe.
Gruss KH

also ich öffne die Verbindung beim create des form1 mit mysql50connection.
die Verbindung soll offen bleiben.
aus dem form1 erstelle ich ein form2 und ein form3 in denen ich die verbindung nutzen will.
wioe kann ich jetzt auf die offene connection zugreifen?
uses form1 im form2 geht ja nicht:-(
Danke für eure Hilfe.
Gruss KH
Re: db-Zugriff bei mysqldb trennen?
Üblicherweise werden mit uses die Units und nicht die Formulare eingebunden. An deiner Stelle würden ich die Datenbank-Komponenten in ein Datenmodul packen und dann von den einzelnen Units darauf zugreifen.khh hat geschrieben: uses form1 im form2 geht ja nicht:-(
Gruss KH
knight
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
Re: db-Zugriff bei mysqldb trennen?
ja klar, ich hab ja die dazugehörende unit gemeint ,-)knight hat geschrieben:Üblicherweise werden mit uses die Units und nicht die Formulare eingebunden. An deiner Stelle würden ich die Datenbank-Komponenten in ein Datenmodul packen und dann von den einzelnen Units darauf zugreifen.khh hat geschrieben: uses form1 im form2 geht ja nicht:-(
Gruss KH
knight
Die Idee mit dem Datenmodul ist gut.
ich danke dir.
Gruss KH
-
- 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: db-Zugriff bei mysqldb trennen?
Naja, wenn ich von Form1 aus die Form2 anzeigen will, muss ich ja irgendwie darauf zugreifen. Also brauche ich in uForm1.pp (da ist Form1 drinnnen) eine uses-Referrenz auf uForm2.pp (da ist Form2 drinnen). Da aber Rekursive Abhängigkeiten böse sind und deswegen nicht funktionieren ist eine zusätzliche Unit die Best Lösung. Müssen troztdem zwei Units aufeinander zugreiffen gibt es noch folgende Lösung:knight hat geschrieben:Üblicherweise werden mit uses die Units und nicht die Formulare eingebunden. An deiner Stelle würden ich die Datenbank-Komponenten in ein Datenmodul packen und dann von den einzelnen Units darauf zugreifen.khh hat geschrieben: uses form1 im form2 geht ja nicht:-(
Gruss KH
Code: Alles auswählen
unit uForm1;
interface
uses SysUtils{...};
type
TForm1 = class(TForm)
{...}
public
function AClass: TObjectClass;
end;
implementation
uses Graphics{...};
procedure TForm1.AClass: TObjectClass;
begin
Result := Graphics.TBitmap.ClassType; {oder so ähnlich}
end;
end.
Dann ist es auch möglich von uForm2.pp auf uForm1.pp zuzugreifen, solange in uForm2.pp im Interface-Abschnitt nichts aus uFrom1.pp vorkommt.
Socke
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
Re: db-Zugriff bei mysqldb trennen?
ich danke euch
Gruss Kh
Gruss Kh