datenbankomponenten unter linux - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO) +---- Thema: datenbankomponenten unter linux (/Thread-datenbankomponenten-unter-linux) |
datenbankomponenten unter linux - t4b-1re-2 - 12.06.2007 16:10 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 datenbankomponenten unter linux - dc6xs - 12.06.2007 19:38 ' schrieb:Hallo Rolf, 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 datenbankomponenten unter linux - VDB - 13.06.2007 10:18 ' schrieb:Hallo, 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 datenbankomponenten unter linux - rolfk - 14.06.2007 22:42 ' schrieb:so mal eben den mysqld auf meinem embedded-PC unter linux angeworfen und siehe da er lauscht auf port 3306: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 datenbankomponenten unter linux - rolfk - 14.06.2007 22:52 ' schrieb:Hallo Rolf, 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 datenbankomponenten unter linux - cb - 15.06.2007 06:13 ' schrieb:Fast jeder professionele (das schliesst Basteldatenbanken wie Access usw aus :-) Datenbankserver kann mit TCP/IP angesprochen werden. <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 Alleinstellungsmerkmal. 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 ... datenbankomponenten unter linux - rolfk - 15.06.2007 06:58 ' schrieb:<hosen runter> 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 datenbankomponenten unter linux - t4b-1re-2 - 27.06.2007 10:40 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 datenbankomponenten unter linux - rolfk - 27.06.2007 16:10 ' schrieb:Hallo, 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 datenbankomponenten unter linux - t4b-1re-2 - 29.06.2007 10:10 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. 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 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 |