Generating Query Results
There are several ways to generate query results:
rigDBresult()
This function returns the query result data as an array. Typically you'll use this in a loop, like this:
get rigDbQuery("YOUR QUERY")
put rigDBresult() into tResult
repeat for each key tKey in tResult
put tResult[tKey] into tRow
put tRow[2] & comma after tResultData
put tRow[4] & comma after tResultData
put tRow[7] & return after tResultData
end repeat
In the example above index 2, 4 and 7 of tRow define the value in the second, fourth and seventh column of the current row. Note: If you need to keep the order of the result values, you need to add an incrementer:
get rigDbQuery("YOUR QUERY")
put rigDBresult() into tResult
put 0 into tIncr
repeat for each key tKey in tResult
add 1 to tIncr
put tResult[tIncr] into tRow
put tRow[2] & comma after tResultData
put tRow[4] & comma after tResultData
put tRow[7] & return after tResultData
end repeat
You may fetch the values for each row by column name like in the following example:
get rigDbQuery("YOUR QUERY")
put rigDBresult() into tResult
put 0 into tIncr
repeat for each key tKey in tResult
add 1 to tIncr
put rigDbRow(tIncr) into tRow
put tRow["title"] & comma after tResultData
put tRow["name"] & comma after tResultData
put tRow["body"] & return after tResultData
end repeat
If you run queries that might not produce a result, you are encouraged to test the result first:
put rigDbQuery("YOUR QUERY") into tQuery
# CHECK IF THE QUERY RESULT HAS DATA
if tQuery["numrows"] > 0 then
put rigDBresult() into tResult
put 0 into tIncr
repeat for each key tKey in tResult
add 1 to tIncr
put rigDbRow(tIncr) into tRow
put tRow["title"] & comma after tResultData
put tRow["name"] & comma after tResultData
put tRow["body"] & return after tResultData
end repeat
end if
yourQuery["resultarray"]
This query result index contains the pure result data as an array. Typically you'll use this in a loop, like this:
put rigDbQuery("YOUR QUERY") into tQuery
repeat for each key tKey in tQuery["resultarray"]
put tQuery["resultarray"][tKey] into tRow
put tRow[2] & comma after tResultData
put tRow[4] & comma after tResultData
put tRow[7] & return after tResultData
end repeat
yourQuery["fieldnames"]
This query result index contains the table field names in a numbered array.
yourQuery["fieldnumbers"]
This query result index contains the table field numbers in an associative array where the keys are the field names. Using this array allows you to write the code above referencing field names instead of field numbers like:
put rigDbQuery("YOUR QUERY") into tQuery
repeat for each key tKey in tQuery["resultarray"]
put tQuery["resultarray"][tKey] into tRow
put tRow[tQuery["fieldnumbers"]["title"]] & comma after tResultData
put tRow[tQuery["fieldnumbers"]["name"]] & comma after tResultData
put tRow[tQuery["fieldnumbers"]["body"]] & return after tResultData
end repeat
rigDbRow()
This function returns a single result row as an array. If your query has more than one row, it returns only the first row. The result is returned as an array. Here's a usage example:
put rigDbQuery("YOUR QUERY") into tQuery
if tQuery["numrows"] > 0 then
put rigDbRow() into tRow
put tRow["title"] & comma after tResultData
put tRow["name"] & comma after tResultData
put tRow["body"] & return after tResultData
end if
If you want a specific row returned you can submit the row number as a digit in the first parameter:
put rigDbRow(5) into tRow
In addition, you can walk forward/backwards/first/last through your results using these variations:
put rigDbFirstRow() into tRow
put rigDbLastRow() into tRow
put rigDbNextRow() into tRow
put rigDbPreviousRow() into tRow
put rigDbCurrentRow() into tRow
They all return an array.
Result Helper Functions
rigNumRows()
The number of rows returned by the query.
put rigDbQuery("SELECT * FROM myTable") into tQuery
get rigNumRows()
Note: You can always use tQuery["numrows"].
rigNumFields()
The number of FIELDS (columns) returned by the query.
put rigDbQuery("SELECT * FROM myTable") into tQuery
get rigNumFields()