INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

datenbankomponenten unter linux



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

12.06.2007, 16:10
Beitrag #11

t4b-1re-2 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 155
Registriert seit: May 2007

8.5
2007
de

99*
Deutschland
datenbankomponenten unter linux
Hallo Rolf,

Datenbankkommunikation per TCP - also entweder versteh ich oder ihr hier was grundlegend falsch. welche Datenbank hat denn bitte eine direkte TCP Schnittstelle die ich verwenden kann um mit SQL rummzuhantieren und in geeigneter Weise Ergebnisse zurückbekomm? Ich würd da wirklich gern mal ein Beispiel sehen. Werd mal bitte konkret, wie sieht der ConnectionString aus und wie verarbeite ich einen SQLString ala 'SELECT * FROM tbl;' und dessen Ergebnisse?

Grüße
t4b-1re-2
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.06.2007, 19:38
Beitrag #12

dc6xs Offline
registered alien
****


Beiträge: 762
Registriert seit: Aug 2006

6.1,7.00
2006
kA

79106
Sonstige
datenbankomponenten unter linux
' schrieb:Hallo Rolf,

Datenbankkommunikation per TCP - also entweder versteh ich oder ihr hier was grundlegend falsch. welche Datenbank hat denn bitte eine direkte TCP Schnittstelle die ich verwenden kann um mit SQL rummzuhantieren und in geeigneter Weise Ergebnisse zurückbekomm? Ich würd da wirklich gern mal ein Beispiel sehen. Werd mal bitte konkret, wie sieht der ConnectionString aus und wie verarbeite ich einen SQLString ala 'SELECT * FROM tbl;' und dessen Ergebnisse?

Grüße
t4b-1re-2

so mal eben den mysqld auf meinem embedded-PC unter linux angeworfen und siehe da er lauscht auf port 3306:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
root@2PC04-1:/home/dc6xs$ netstat -veeplan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 0 74457 26138/mysqld
(Natürlich sind noch mehr Ports von verschiedenen anderen Programmen offen, aber die sind nicht relevant) </div>

macht man jetzt nen telnet auf den port 3306 des rechners:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
dc6xs@roblappy:~$ telnet 2pc04-1 3306
Trying 192.168.2.221...
Connected to 2pc04-1.
Escape character is '^]'.
8
4.1.14-log=H3e%'4n,P&khJx@q<v`Z
</div>

Ok das verrät uns nocht nicht viel, ausser das der mysqld dort auf ne Verbindung wartet.

Aber ich hab mal fix im mysql-handbuch gesurft und das hier gefunden:
der mysql-client (Kommandozeile) im batchmodus

Also könnte man die SQL-Operationen von LV aus in eine Textdatei scheiben und dann per system_exec.vi-Aufruf ausführen.

Zwar nicht der eleganteste Weg, aber machbar.

Da es auch eine C API für mysql gibt, müsste man mal suchen, wie das mit dem Libary-Aufrufen unter LV Linux ist.

Gruß, Rob

[1] gibt auch andere APIs neben der C-API

Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.

N.B.:
"Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.06.2007, 10:18 (Dieser Beitrag wurde zuletzt bearbeitet: 13.06.2007 10:19 von VDB.)
Beitrag #13

VDB Offline
LVF-Stammgast
***


Beiträge: 426
Registriert seit: Oct 2005

2010-2011
1997
kA

52134
Deutschland
datenbankomponenten unter linux
' schrieb:Hallo,

Ich bin FÜNDIG geworden: Eigentlich hät ich s mir ja denken können und gleich dort nachsehn: http://www.sourceforge.net!!!!
Es gibt mehrere Projekte die sich mit der Problematik beschäftigen die (scheinbar) Wichtigsten sind:
http://sourceforge.net/projects/sql-lv/
http://sourceforge.net/projects/lvdevtools
http://sourceforge.net/projects/lvlposixio

ich hab noch nich alles ausprobiert, aber zumindest das erste ist auf jedenfall vielversprechend.

Viele Grüße
t4b-1re-2

Also, das sql-lv in der Version 1.07 krieg ich nicht ans laufen. Beim Laden fehlen DLLs von vorigen Versionen (1.05 und 1.06). Ersetze ich die DLL-Calls mit der neuen Version, dann kann er die Einträge in der DLL nicht mehr finden, obwohl sie laut Dependency Walker da sind...


VDB
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.06.2007, 22:42 (Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2007 22:43 von rolfk.)
Beitrag #14

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
datenbankomponenten unter linux
' schrieb:so mal eben den mysqld auf meinem embedded-PC unter linux angeworfen und siehe da er lauscht auf port 3306:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
root@2PC04-1:/home/dc6xs$ netstat -veeplan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 0 74457 26138/mysqld
(Natürlich sind noch mehr Ports von verschiedenen anderen Programmen offen, aber die sind nicht relevant) </div>

macht man jetzt nen telnet auf den port 3306 des rechners:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
dc6xs@roblappy:~$ telnet 2pc04-1 3306
Trying 192.168.2.221...
Connected to 2pc04-1.
Escape character is '^]'.
8
4.1.14-log=H3e%'4n,P&khJx@q<v`Z
</div>

Ok das verrät uns nocht nicht viel, ausser das der mysqld dort auf ne Verbindung wartet.

Aber ich hab mal fix im mysql-handbuch gesurft und das hier gefunden:
der mysql-client (Kommandozeile) im batchmodus

Also könnte man die SQL-Operationen von LV aus in eine Textdatei scheiben und dann per system_exec.vi-Aufruf ausführen.

Zwar nicht der eleganteste Weg, aber machbar.

Da es auch eine C API für mysql gibt, müsste man mal suchen, wie das mit dem Libary-Aufrufen unter LV Linux ist.

Gruß, Rob

[1] gibt auch andere APIs neben der C-API
Für mysql gibt's sogar irgendwo im Netz jemanden der direkt mit den TCP/IP Funktionen in LabVIEW versucht hat das Protokol zu programmieren. Ist zwar binär aber ja nicht wirklich sehr schwierig da mysql das Protokoll zumindest dokumentiert.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.06.2007, 22:52
Beitrag #15

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
datenbankomponenten unter linux
' schrieb:Hallo Rolf,

Datenbankkommunikation per TCP - also entweder versteh ich oder ihr hier was grundlegend falsch. welche Datenbank hat denn bitte eine direkte TCP Schnittstelle die ich verwenden kann um mit SQL rummzuhantieren und in geeigneter Weise Ergebnisse zurückbekomm? Ich würd da wirklich gern mal ein Beispiel sehen. Werd mal bitte konkret, wie sieht der ConnectionString aus und wie verarbeite ich einen SQLString ala 'SELECT * FROM tbl;' und dessen Ergebnisse?

Fast jeder professionele (das schliesst Basteldatenbanken wie Access usw aus :-) Datenbankserver kann mit TCP/IP angesprochen werden.

MySQL hat das Protokoll sogar dokumentiert.

SQL Server hat neben Kommunikation über Named Pipes, auch die Möglichkeit per TCP/IP oder IPX angesprochen zu werden. Das sind auch die Protokolle die der ODBC, resp. ADO/DAO Treiber letzten Endes benützt. Das Problem mit SQL Server ist nur das Microsoft das Protokol nicht mehr dokumentiert, da es urspünglich aber auf TDS beruht (Wird von Sybase verwendet) kann man mit FreeTDS damit kommuniziern und theoretisch kann man das FreeTDS analysieren und das in LabVIEW herimplementieren (Gibt aber sicher sinnvollere Dinge um die Zeit totzuschlagen).

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2007, 06:13
Beitrag #16

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
datenbankomponenten unter linux
' schrieb:Fast jeder professionele (das schliesst Basteldatenbanken wie Access usw aus :-) Datenbankserver kann mit TCP/IP angesprochen werden.

MySQL hat das Protokoll sogar dokumentiert.
[...]

<hosen runter>
ich will das eigentlich seit Jahren in meinem ADO-Toolkit drin haben. Nativ mySQL-Server / SQL-Server und auch Oracle ansprechen zu können wäre ein echtes AlleinstellungsmerkmalSmile. Aber wie alle, bin auch ich faul, und was hab ich verwendet? Richtig --> ADO (drum heisst ja auch ADO-Toolkit), weils schneller geht und einfacher ist.

Ich hatte schonmal angefangen eine mySQL Anbindung zu implementieren, nach 2 Tagen probieren und basteln hab ich's wieder in die Ecke gelegt, weil der Aufwand in keinem Verhältnis zum Nutzen (für mich) steht ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.06.2007, 06:58 (Dieser Beitrag wurde zuletzt bearbeitet: 15.06.2007 07:03 von rolfk.)
Beitrag #17

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
datenbankomponenten unter linux
' schrieb:<hosen runter>
ich will das eigentlich seit Jahren in meinem ADO-Toolkit drin haben. Nativ mySQL-Server / SQL-Server und auch Oracle ansprechen zu können wäre ein echtes AlleinstellungsmerkmalSmile. Aber wie alle, bin auch ich faul, und was hab ich verwendet? Richtig --> ADO (drum heisst ja auch ADO-Toolkit), weils schneller geht und einfacher ist.

Ich hatte schonmal angefangen eine mySQL Anbindung zu implementieren, nach 2 Tagen probieren und basteln hab ich's wieder in die Ecke gelegt, weil der Aufwand in keinem Verhältnis zum Nutzen (für mich) steht ...

Haha, das ist wirklich nur eine interessante Alternative wenn Du:

1) Diese Datenbank von einem anderen System dann Windows ansprechen willst.
2) Dir jemand die unzähligen Wochen und Monate Arbeit dafür bezahlt.
3) Du schon immer mal ein richtiges Binärdatenprotokol selber implementieren wolltest um zu sehen wie das geht.
4) Und Du gewisse masochistische Neigungen hast.

Wenn nicht mindestens drei der vier obengenannten Gründe bestehen solltest Du gar nicht erst beginnen :-)

sqlLv ist da sicher ein vielversprechenderer Weg da es Gebrauch macht von bestehenden C Libraries um mit den Datenbanken zu sprechen. Nur finde ich die Art der Implementation davon ein wenig eingeschränkt. Wenn schon ein LabVIEW Importwrapper dann könnte der auch ein bischen mehr auf LabVIEW zugeschnitten sein was Datentypen, Fehlerabhandlung und so betrifft.

Ich glaube ich werde mal schauen ob ich mein ODBC Toolkit (das funktionierende ODBC Treiber vorausgesetzt auf MS, Linux und OS-X läuft) soweit aufräumen kann dass man das an andere geben kann.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2007, 10:40
Beitrag #18

t4b-1re-2 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 155
Registriert seit: May 2007

8.5
2007
de

99*
Deutschland
datenbankomponenten unter linux
Hallo,

hab gar nich gesehen, dass hier noch heftig diskutiert wurde. Mein neuer Stand zum Thema - auch wenn sich die Diskussion mittlerweile etwas entfernt hat. Neulich habe ich bei einem anderen Projekt Eiblick in die Blockdiagramme nehmen dürfen und gesehen, dass sie für MySQL die mysql.dll eingebunden haben und Funktionen zur Kommunikationen mit einem MySQL-Server über diese Schnittstelle laufen lassen.
Für PostgreSQL dürfte das mittels libpg.dll bzw. libpgxx.dll oder psqlodbc.dll genauso gehen, ich bin derzeit dabei dass auszuprobieren. Mal schaun, vielleicht springt ja im Ergebnis dieser Entwicklung hier die ein oder andere Komponente für die Allgemeinheit raus. Anregungen und Mithilfe sind mir jederzeit willkommen.

Grüße
t4b-1re-2
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2007, 16:10
Beitrag #19

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
datenbankomponenten unter linux
' schrieb:Hallo,

hab gar nich gesehen, dass hier noch heftig diskutiert wurde. Mein neuer Stand zum Thema - auch wenn sich die Diskussion mittlerweile etwas entfernt hat. Neulich habe ich bei einem anderen Projekt Eiblick in die Blockdiagramme nehmen dürfen und gesehen, dass sie für MySQL die mysql.dll eingebunden haben und Funktionen zur Kommunikationen mit einem MySQL-Server über diese Schnittstelle laufen lassen.
Für PostgreSQL dürfte das mittels libpg.dll bzw. libpgxx.dll oder psqlodbc.dll genauso gehen, ich bin derzeit dabei dass auszuprobieren. Mal schaun, vielleicht springt ja im Ergebnis dieser Entwicklung hier die ein oder andere Komponente für die Allgemeinheit raus. Anregungen und Mithilfe sind mir jederzeit willkommen.

Grüße
t4b-1re-2

Das ist doch glaube ich auch die DLL die lvsql für die Kommunikation mit mySQL benötigt. psqlodbc.dll dagegen wird wohl der ODBC Treiber sein also nicht so interessant für Dich um direkt anzusprechen. Wenn Du dieses Interface schon ansprechen willst kannst Du direkt das ODBC Manager API auf Deiner Platform ansprechen dann funkts wenigstens mit allen ODBC Treibern. Ist übrigens was meine Library schon tut.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.06.2007, 10:10 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2007 16:21 von t4b-1re-2.)
Beitrag #20

t4b-1re-2 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 155
Registriert seit: May 2007

8.5
2007
de

99*
Deutschland
datenbankomponenten unter linux
Hallo

' schrieb:Das ist doch glaube ich auch die DLL die lvsql für die Kommunikation mit mySQL benötigt. psqlodbc.dll dagegen wird wohl der ODBC Treiber sein also nicht so interessant für Dich um direkt anzusprechen. Wenn Du dieses Interface schon ansprechen willst kannst Du direkt das ODBC Manager API auf Deiner Platform ansprechen dann funkts wenigstens mit allen ODBC Treibern. Ist übrigens was meine Library schon tut.
Rolf Kalbermatter

Ja, lvsql verwendet auch die mysql.dll. Leider bekomm ich lvsql ähnlich wie "VDB" nicht so richtig ans laufen. Ausserdem präferiere ich auch postgres als DB, diese wird von lvsql nicht explizit unterstützt.

Zu deiner Library, du hast nicht zufällig Lust die offenzulegen? Ich denke das könnte einigen Leuten ne Menge Arbeit sparen - mich eventl. eingeschlossen Wink

editiert:
Nachdem ich mich heute dann noch mal n bisl mit der pgsql.dll auseinandergesetzt hab: Die Funktionen sind leider nicht LV kompatibel, Etliche Funktionen einen geben structs zurück oder gar structs aus arrays of pointer und da steht ja LV nunmal nich so drauf. schade eigentlich

Des Weiteren hab ich sql_lv.dll zum Laufen bekommen (openG-tools und libmysql.dll müssen da sein) - und wie vermutet: das ding rennt nicht mit PostgreSQL.

Grüße
t4b-1r-2
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Lightbulb Dateien unter Windows 7 unter verschiedenen Benutzern öffnen! sm_marian 3 5.627 14.11.2014 16:37
Letzter Beitrag: sm_marian

Gehe zu: