Seite 1 von 1

MySql Put / Get

Verfasst: Mittwoch 15. Februar 2012, 20:32
von t.ebbinghaus
Hallo,

Ich Wünsche mir ein Bauteil, mit denen ich Daten in eine MySql Datenbank speichern kann. im Bauteil benötigt man folgende Einstellungen
- Server
- Benutzer
- Passwort
- Datenbank
- Tabelle
- Feld(er) als String oder numerisch zum Füllen

Toll wäre natürlich was zum auslesen, aber das wäre für mich optional

Besten dank für die Berückschtigung dieses Vorschlags,
Beste Grüsse
Thorsten

Re: MySql Put / Get

Verfasst: Freitag 17. Februar 2012, 09:23
von abacom

Re: MySql Put / Get

Verfasst: Freitag 17. Februar 2012, 22:31
von t.ebbinghaus
Hallo,

ja, danke, habe ich gesehen, hilft aber nicht: die Daten sollen nicht Lock sondern auf einem Zentralen Server hinterlegt werden. Dazu möchte ich die Daten direkt mit anderen Systemen verknüpfen und via HTML auf meiner Homepage darstellen. Dies geht via PHP am besten.

Daher schliesse ich mich dem Wunsch der Community an: da war in dem Thread ja einiges interesse an einem entsprechenden Bauteil. MySql halte ich für die zugänglichste Lösung: quelloffen, frei und kostenlos erhältlich, Portierung auf diverse Betriebssysteme verfügbar...

Beten Dank und Gruss
Thorsten

PS: Da gibt doch schon eine Datenbankaplikaton via OPC, leider haben die Server nicht die obigen Vorteile...

Re: MySql Put / Get

Verfasst: Samstag 18. Februar 2012, 19:09
von abacom
Wir sind leider keine Datenbankprogrammierer und wollen es auch nicht werden. Von daher werden wir diesem Ableger nicht folgen.
Da muss man dann einmal selbst Hand anlegen und das DLL-API verwenden.

Re: MySql Put / Get

Verfasst: Montag 5. März 2012, 21:41
von t.ebbinghaus
Hallo,

danke, Liebes Abacom-Team für den telefonischen Support - Ich habe es geschafft:
Im Anhang findet Ihr eine DLL, um vorhandenen Werte (Numerisch oder Strings) in eine MySQL Datenbank (ab Version 4) zu speichern.

Das Zip enthält die DLL, den Code in FreePascal (sollte auch Kompatibel zu Delphi sein) zur freien Weiterarbeitung sowie eine PL-Beispieldatei. Weiterhin benötigt man die Datei libmysql.dll, ich habe Sie von http://www.dll-files.com heruntergeladen. An paar Hinweise zu zur Anwendung: Die DLL besteht aus 14 Eingängen:

SRV : IP des MySQL Server, z.B. 192.168.0.1
DB: der Name der Datenbank, z.B. PLDaten
TBL: Name der Tabelle, z.B. Wetter
USR: User mit Schreibrechten auf die Datenbank / Tabelle
PWD: Password des Users
DTA1...4: Hier werden die Daten (numerisch oder Strings angelegt)
LIN1..4: Namen der zu DTA1..4 gehördenen Spalten in der Tabelle TBL
CLK: Be einer fallenden Flanke an CLK werden die an DTA1..4 anliegenden Daten in eine Zeile jeweils in die Spalten LIN1..4 der Tabelle TBL aus der Datenbank DB auf dem Server SRV geschrieben...

Hinweise:
[*] Die DLL arbeitet auf dem Standard-Port 3306

[*] Der Zugriff auf den MySQL Server muss auch ausserhalb vom localhost möglich sein. bei meiner 4.1 Installation musste ich ich der my.cnf den eintrag

Code: Alles auswählen

bind localhost
in

Code: Alles auswählen

bind 0.0.0.0
ändern
[*] Profilab verwendet "," als Dezimaltrennzeichen, der MySQL-Server benötigt "," jedoch als Trennzeichen für die Separierung von Werten. Daher muss ein numerisches Eingang wie im Beispiel "," durch "." ersetzt werden. Um die Eingänge Variabel zu halten habe ich hierzu ein vorhandenes PL String-Bauteil verwendet.
[*] Die DLL MUSS mit vier Werten / Lines belegt werden, sonst klappt das Schreiben nicht. Falls jemand die Anzahl Lines sowie deren Benamsung in einem Konfigurationsdialog hinkriegt, sowie die Konstanten SRV, DB, TBL, USR, PWD ebenfalls in einem Konfiguratinsdialog hinbekommt - Ich wäre sehr dankbar. Ansonsten: Free-Pascal & Lazarus herunterladen, die Anzahl Lines im Quellcode anpassen und neu kompilieren. Es ist einfacher als man Dankt - Ich hatte bis letzte Woche faktisch keinerlei Programmierkenntnisse jenseits von Q-Basic aus den 80ern....
[*] Der Code basiert auf frei zugänglichen Beispielen und Schnippseln aus dem Internet: Vor allem die Free-Pascal Beispiele zu MySQL / Datenbanken sowie die vorhandenen Beispiele (Counter, WordtoHex) aus PL waren hier eine grosse Hilfe.

Beste Grüsse und Viel Spass beim Probieren
Thorsten

Re: MySql Put / Get

Verfasst: Mittwoch 21. März 2012, 19:43
von mstaudi
Hallo t.ebbinghaus,
Toll dass jemand an so einer Lösung jemand arbeitet!
Ich schaue mir die Lösung bei Gelegenheit mal genauer an. Muss mich da aber wohl noch ein bisschen einarbeiten.
möglicherweise ist das genau die Lösung für mein Problem viewtopic.php?f=26&t=2406

Gruß mstaudi

Re: MySql Put / Get

Verfasst: Donnerstag 5. April 2012, 20:25
von t.ebbinghaus
Hallo MStaudi,

[quote="mstaudi"Ich schaue mir die Lösung bei Gelegenheit mal genauer an. Muss mich da aber wohl noch ein bisschen einarbeiten.
möglicherweise ist das genau die Lösung für mein Problem viewtopic.php?f=26&t=2406

Gruß mstaudi[/quote]

Danke, ich freue mich über Lob, Anerkennung und (konstruktive) Kritik.

Schau mal hier:
http://www.ebbinghaus.dyndns.org/Zentya ... en-Logbuch
(An der Optik arbeite ich noch ... :roll: )

Beste Grüsse
Thorsten

Re: MySql Put / Get

Verfasst: Montag 9. April 2012, 23:11
von KAKTUS
Klasse, endlich kann PLE auch mit MySQL.

Danke.

Re: MySql Put / Get

Verfasst: Montag 5. September 2016, 13:15
von mainframe
Hallo Thorsten,

ich bekomme Deine DLL leider nicht zum laufen.

Ich hab die DLL dank deines Source Codes mit Lazarus und FreePascal nocheinmal kompiliert, aber irgendwie will das nicht. Ich bin leider nicht der Entwickler um hier nach Ursachen zu forschen. Vielleicht liegt es auch an meiner mysql dll !?

Wo muss die DLL liegen ? Ich habe Sie zur Zeit unter C:\Program Files (x86)\ProfiLab-Expert40\ liegen. Zusätzlich hatte ich sie noch in c:\Windows

Wenn ich die DLL in Profilab verwenden will, passiert einfach garnix :-/

Bild

Bild

Über Hilfe wäre ich sehr dankbar.



@ABACOM Ein MySQL Recorder und ein MySQL Reader in dem man z.B. den Stringt mit dem entsprechenden Select einfügen kann wäre SUPER !

MfG Denis

Re: MySql Put / Get

Verfasst: Montag 5. September 2016, 13:25
von mainframe
Kaum schreibt man einen Beitrag funktioniert es !?

Es lag wohl an einer zu neuen libmysql. Ich hab jetzt eine in der Version 4.0 genommen und sie in s Profilabverzeichnis kopiert. Jettz funktioniert die DLL :-)