LabVIEWForum.de
Database Connectivity Toolkit record count-1 - 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: Database Connectivity Toolkit record count-1 (/Thread-Database-Connectivity-Toolkit-record-count-1)



Database Connectivity Toolkit record count-1 - montanaro - 18.03.2013 11:00

Guten Tag an alle,
befasse mich seit kurzer Zeit mit dem Thema Datenbanken und verwende dazu das Labview Databse Connectivity Toolkit.
Bin jetzt auf ein kleines Problem gestossen: Ich mache eine Select und hole mir Daten aus der DB. Nun muesste ich aber wissen wieviele Werte mir diese Select zurückgibt (record count), um die Anzahl der Schleifendurchläufe zu definieren.
Habe versucht die Eigenschaft record count des Vi´s "Db Tools Get Properties" zu verwenden, die cursor zu ändern (dynamic,static usw), aber leider ohne Erfolg. Bekomme immer -1 zurück. Ich weiss jetzt nicht on das wegen meiner Db "Mysql" oder an der ODBC verbindung liegt aber es funktioniert nicht.
Mir ist natürlich bewusst dass ich eine separate Select mit (Select count(*).....) ausführen kann um die Anzahl der records zu erhalten, aber diese Löosung ist vielaufwendiger und nicht "elegant".
Also bitte wenn mir jemand weiter helfen kann..

Vielen dank


RE: Database Connectivity Toolkit record count-1 - Clyde - 18.03.2013 11:10

Hi,

das Select-VI hat doch einen data-Ausgang mit dem Datentypen 2D-Array of Variant.
Die Anzahl der erhaltenen Werte kannst du doch einfach über die Größe dieses Array überprüfen, oder habe ich dich falsch verstanden?


Gruß
Clyde


RE: Database Connectivity Toolkit record count-1 - montanaro - 18.03.2013 11:43

Hallo Clyde,
danke für die schnelle Antwort.
Ich verwende aber nicht das Selcet Vi sondern das Execute Query um dann die einzelnen records "fetchen" zu können. Oder kann man mit einer Select Vi auch die einzelenen records durchlaufen???
Vielen Dank,

montanaro


RE: Database Connectivity Toolkit record count-1 - jg - 18.03.2013 11:51

Na und? Nach "Execute Query" kommt dann das VI "DB Tools Fetch Recordset", was dir ein 2D-Array of "Variant" mit allen Abfrage-Ergebnissen liefert.

Wo brauchst du jetzt vorab die Info, wie viele Datensätze dein Query liefert?

Gruß, Jens

EDIT: Die DB-VIs sind offen, da kannst du reinschauen, was wo gemacht wird, z.B. die Reihenfolge aus "DB Tools Select Data.vi" abschauen?!


RE: Database Connectivity Toolkit record count-1 - montanaro - 18.03.2013 12:21

Dankeschön Jg.
Konnte zwar durch deine Lösung die Anzahl der records erhalten, aber nun funktioniert aber der restliche, schon zuvor programmierte Teil, nicht mehr. (Da verwende ich Fetch element).

ich mach also Db "DB Execute" (füre Select aus)--> "Fetch Recordset" (Erhalte anzahl der werte) --> "Fetch Element" (und hier durchlaufte ich zuvor die Recodsets)

Mein Problem ist dass ich noch keine gute Dokumentation über Das Toolkit gefunden habe und somit bin ich noch ziemlich verwirrt

Sollte ich das mit fetch elemt vergessen und mit dem Array des fetch recodset arbeiten??? Wo finde ich sinvolle Beispuiele dazu???
Vielen Dank,
montanaro


RE: Database Connectivity Toolkit record count-1 - jg - 18.03.2013 13:24

(18.03.2013 12:21 )montanaro schrieb:  Sollte ich das mit fetch elemt vergessen und mit dem Array des fetch recodset arbeiten???
IMHO JA! Du bekommst alles, was du willst, als 2D-Array in einem Aufwasch zurück. Wieso jedes Element einzeln abfragen, und das auch noch über die ADO-DB API?
Über die Wandlung in das richtige LabVIEW-Datenformat kannst du dich in LabVIEW kümmern.

Gruß, Jens


RE: Database Connectivity Toolkit record count-1 - Y-P - 18.03.2013 13:47

http://www.labviewforum.de/Thread-SQL-Datenbank?pid=124173#pid124173

Gruß Markus


RE: Database Connectivity Toolkit record count-1 - montanaro - 18.03.2013 18:34

Vielen vielen Dank! Es hat funktioniert