QUERY$ returns a Telitab set from an arbitrary database
QUERY$(QueryScript$, [InpVar])
Arguments
Example of an ACCESS query script
We want to get information from an MS ACCESS database with filename "DrawingOffice.mdb", based on two parameters in the knowledge base, PROJECT$ and MODNO$. The relation will be as follows:
A$ = QUERY$(TEXTITEM$(1), PROJECT$, MODNO$)
with in the data slot of the relations (note: we use "|" characters around the text item):
TEXTITEM1=
|@TYPE:ACCESS
DRIVER=Microsoft Access Driver (*.mdb);DBQ=\\Ma013srv\MVR\Access\DrawingOffice.mdb
admin
drawings
SELECT tbldrawing.drawingno,tblmodel.model,tbltitel.titel,tbldrawing.subject FROM ((tbldrawing INNER JOIN tblmodel ON tbldrawing.modelid=tblmodel.modelid) INNER JOIN tbltitel ON tbldrawing.titelid=tbltitel.titelid) WHERE ((tbldrawing.project=~PROJECT$ ) AND (tblmodel.model='~MODNO$ ')) ORDER BY tbldrawing.drawingno", Project_Nr, Model)|
The places where ~PROJECT$ and ~MODNO$ are defined will be replaced with the values of PROJECT$ and MODNO$ (see also TEXTITEM$() and TEMPLATE$()). Furthermore please realise that the total script may only cover 5 lines of code:
Line 1: Type of query (Access): @TYPE:ACCESS
Line 2: Call for the program (Access) and the Filename: DRIVER=Microsoft Access Driver (*.mdb);DBQ=\\Ma013srv\MVR\Access\DrawingOffice.mdb
Line 3: User name: admin
Line 4: Password: drawings
Line 5: Query script: SELECT tbldrawing.drawingno,tblmodel.model,tbltitel.titel,tbldrawing.subject FROM ((tbldrawing INNER JOIN tblmodel ON tbldrawing.modelid=tblmodel.modelid) INNER JOIN tbltitel ON tbldrawing.titelid=tbltitel.titelid) WHERE ((tbldrawing.project=~PROJECT$ ) AND (tblmodel.model='~MODNO$ ')) ORDER BY tbldrawing.drawingno", Project_Nr, Model)
In other words, the last line (the query script) should be one sentence, without any CRLF's.