VoxCommando
Help and Support (Using VoxCommando) => Python Scripting => Topic started by: marcusvdt on June 02, 2015, 02:35:27 PM
-
Quick example demonstrating how to get a python script to query map tables.
First of all you need to download the library from here (https://bitbucket.org/jdhardy/ironpython.sqlite/downloads). Then copy ONLY the DLL file (only the dll file) to the folder below and ignore any instructions from the developer.
<your VC folder>\dlls
Here is the command:
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.4.2-->
<commandGroup open="True" name="map query test" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="633" name="Run the querymaps.py at startup" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>PY.ExecFile</cmdType>
<params>
<param>PY\querymaps.py</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>VC.Loaded</event>
<event>VC.Rebuild</event>
</command>
<command id="549" name="Query maps.db3" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="Quick example on how to query a table Sensors_Presentation listing all the lines from the table where the fromkey field is equal to the ones in the Sensors_Control_Type table and the tovalue field is equal to 'BOOLEAN' on the Sensors_Control_Type table. Purely a relational database example.">
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>executesquery("select * from Sensors_Presentation where fromkey in (select fromkey from Sensors_Control_Type where tovalue='BOOLEAN')")</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</command>
</commandGroup>
Here is the python script. Save it inside your VC installation folder, inside the PY folder and name it querymaps.py:
import sqlite3
#Executes queries to VC's map tables
def executesquery(sql):
print "Going to execute the query:"
print str(sql)
con=sqlite3.connect("data\\maps.db3")
c=con.cursor()
c.execute(sql)
print c.fetchall()