IBConnection - verbinden

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Unter Linux, ist auch noch die Frage des Zugriffweges. socket oder tcp ? Bei win ist auch noch pipe möglich. Die Frage deshalb, weil in der STandardinstallation einige Verbindungsarten blockiert sind.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

xnalpf
Beiträge: 43
Registriert: Di 4. Sep 2007, 15:43

Beitrag von xnalpf »

Dann dürfte es aber keinen Unterschied zwischen root und non-root geben. Möglicherweise läuft das ganze über sockets und der socket hat nur Zugriffsrechte für root. Das kann ich prüfen, wenn ich wieder unter Linux bin. Jetzt ist aber gerade mal win an der Reihe...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

xnalpf hat geschrieben:Dann dürfte es aber keinen Unterschied zwischen root und non-root geben.


Gerade DANN ! Wenn es als root geht, dann würde ich bei den Sockets suchen und mal sehen welche Rechte gesetzt sind.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

xnalpf
Beiträge: 43
Registriert: Di 4. Sep 2007, 15:43

Beitrag von xnalpf »

Ja. hast ja recht. War ja auch Teil meiner Antwort. Ich war halt auf deine Aussage es seien Verbindungsarten blockiert (hab ich als deaktiviert verstanden) eingegangen. Und wenn etwas abgeschaltet ist funktioniert es unabhängig vom account nicht. Im Fall von Sockets geb ich dir Recht. Die haben Zugriffsrechte und wenn die falsch gesetzt sind gehts halt nicht mit jedem user. Ich checke gleich mal.

xnalpf
Beiträge: 43
Registriert: Di 4. Sep 2007, 15:43

Beitrag von xnalpf »

Ach, es ist doch zum Mäuse melken. Jetzt meldet das Drecksteil unter windows libmysql.dll kann nicht geladen werden. Hab gerad frisch mysql5 installiert. libmysql.dll aus dem bin verzeichnis in das system32 kopiert. geht nich. Komischerweise ist die dll wohl schon gealden denn so lange lazarus läuft kann ich die dll nicht löschen. Erst wenn lazarus beendet wird ist sie wieder freigegeben. Wahrscheinlich fehlt der dll irgendwas. Nur was?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

:-) Kopier eine Kopie der DLL ins Verzeichnis von Lazarus UND eine, wo deine Exe ist.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

xnalpf
Beiträge: 43
Registriert: Di 4. Sep 2007, 15:43

Beitrag von xnalpf »

Hab ich gemacht. Nicht gleichzeitig. Aber ich hatte die dll in system, system32, hab in Umgebungsvariablen den kompletten Pfad zum MySQL bin Verzeichnis aufgenommen und dann hab ich die dll vom Projektverzeichnis ins Lazarus Verzwichnis verschoben. Wenn ich aber das Projekt über doppelklick ausm Explorer starte sollte die dll im Projektverzeichnis ja reichen. Sonst müsste ich ja zu jedem Programm die Lazarus IDE verteilen... Ging aber auch nicht. Wenigstens kann ich jetzt schon mal unter Linux arbeiten und das Projekt weiterentwickeln. Aber so recht glücklich bin ich mit all dem noch nicht. Naja, jetzt ist erst mal Feierabend und morgen gehts dann weiter...

xnalpf
Beiträge: 43
Registriert: Di 4. Sep 2007, 15:43

Beitrag von xnalpf »

So. jetzt klappt schon mal der connect. Was hab ich gemacht? Ich hab mir xampp in der Version 1.6.3 runtergeladen und die dort enthaltene libmysql.dll nach windws\system32 kopiert. Das readme vom xampp liest sich so:

XAMPP 1.6.3 devel package:

- Apache 2.2.4 (includes & libs)
- MySQL 5.0.45 (includes & libs)
- PHP 5.2.3 + PHP 4.4.7 (libs)
- OpenSSL 0.9.8e (includes & libs & bin)
- zlib 1.2.3 (libs & dll)
- MOD_JK/1.2.23 (so)
- Subversion 1.4.3 (svn) + Modules for Apache 2.2.4 => see svn\xampp-svn-howto.txt

Es reicht übrigens das 4Mb kleine devel-paket. Jetzt bin ich mal gespannt, ob auch alles Zugriffe auf die DB möglich sind. Ich berichte weiter.

P.S: Wer hat mir eigentlich die nette Signatur gebastelt? Die ist ja völlig falsch. Da fehlt WinXP, unter XP ist Lazarus Version 0.9.20 Beta. Na, ich schau mal in mein Profil ob ich das selbst ändern kann.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

xnalpf hat geschrieben:P.S: Wer hat mir eigentlich die nette Signatur gebastelt? Die ist ja völlig falsch. Da fehlt WinXP, unter XP ist Lazarus Version 0.9.20 Beta. Na, ich schau mal in mein Profil ob ich das selbst ändern kann.


Im eigenen Profil kann du das ändern. Wer anders kann das nicht ändern.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

xnalpf
Beiträge: 43
Registriert: Di 4. Sep 2007, 15:43

Beitrag von xnalpf »

Erstaunlicherweise steht in meiner Signatur nix. Na, egal.
Es klappt jetzt alles. Ich hab nur noch zwei kleine Fragen offen:

1. Ich hab eine Tabelle mit zwei Spalten: id : primary key und test : varchar(200) Auf meinem Formular hab ich einen button der macht das hier:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    sqlquery1.ApplyUpdates;
  except
  end;
  sqltransaction1.Commit;
  sqlquery1.active:=false;
  sqlquery1.active:=true;
end;

Wenn ich auf den Button drücke wird für jeden Datensatz, den ich verändert habe eine exception " EVariantTypeCastError Could not convert variant of type (string) into type (OleStr) " geworfen. Erstaunlicherweise passiert das aber nur, wenn ich mehr als einen Datensatz verändere. Wenn ich genau einen Datensatz verändere passiert nix.
Unabhängig davon, ob eine Exception kommt oder nicht sind die Daten in der Tabelle korrekt gespeichert. Durch das zugegebenermassen etwas rabiate exceptionhandling passiert zur laufzeit nix. Der User würde also nix merken. In der IDE wird aber immer der Debugger angeworfen und das nervt natürlich. Im übrigen hinterlässt es ein ungutes Gefühl...

2. Wenn das Progeamm beendet wird meldet sich Lazarus mit einer Messagebox "Ausführung angehalten" Ist das mal doof? Kann man das abschalten? Hab das Häckchen dazu noch nicht gefunden.
[edit] hab das häckchen gefunden. War in den debuggeroptionen. Gut. Punkt 2 geklärt, bleibt Punkt 1 ;-)
Zuletzt geändert von xnalpf am Fr 7. Sep 2007, 17:58, insgesamt 1-mal geändert.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ne, das ist gar nicht so doof denn manchmal läuft z.b. ein thread noch und das ganze programm dadurch dem debugger merkt man das aber nicht an.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

xnalpf
Beiträge: 43
Registriert: Di 4. Sep 2007, 15:43

Beitrag von xnalpf »

Christian hat geschrieben:Ne, das ist gar nicht so doof denn manchmal läuft z.b. ein thread noch und das ganze programm dadurch dem debugger merkt man das aber nicht an.
Ok. Ich leg das mal unter Geschmackssache ab. Zu der Exception fällt niemand was ein?

Antworten