LInkItem SQL query |
SQL query supports the setting of other query conditions. For instance, attributeFilter, groupBy, ids, joinItems, linkItems, orderBy, etc. Here we take setting LinkItem as an example to construct a SQL query to get the records with equal Capital values in the Countries@World and Capitals@World layers.
Two parameters need to be transferred for this SQL query: queryMode and queryParameters. Here queryMode is SqlQuery. The code is as follows:
//LInkItem SQL query
function SQLQueryByLinkItem()
{
var commit=getcommit();
var uri="http://localhost:8090/iserver/services/map-world/rest/maps/World Map/queryResults.rjson";
//Set the request body parameters
var entry={};
entry.queryMode="SqlQuery";
entry.queryParameters={
"startRecord": 0,
"queryParams": [{
"name": "Capitals@world",
"linkItems": [{
"datasourceConnectionInfo": {
"engineType": "UDB",
"readOnly": false,
"connect": true,
"openLinkTable": false,
"alias": "World",
"exclusive": false
},
"name": null,
"foreignKeys": ["Capital"],
"primaryKeys": ["Capital"],
"linkFilter": "Capital = Capital",
"foreignTable": "Countries"
}]
}],
"expectCount": 100000,
"queryOption": "ATTRIBUTEANDGEOMETRY"
};
commit.open("POST",encodeURI(uri),false,"","");
commit.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
//alert(toJSON(entry));
commit.send(toJSON(entry));
//Parse the json string returned from the server to a JavaScript object
var response = json_parse(commit.responseText, null);
//Gets the Div container for display.
var container = document.getElementById('container');
container.innerHTML="";
//Determine whether the query is successful
if(!response.succeed)
{
//Query failed
container.innerHTML+="<p>Query failed</p>";
container.innerHTML+="<p>Error code: "+response.error.code+"</p><p>Cause: "+response.error.errorMsg+"</p>";
}else
{
//Query succeeded
container.innerHTML+="<p>Query succeeded</p>";
container.innerHTML+="<p>URI of queryResult resource: "+response.newResourceLocation+"</p>";
}
}
linkItems is used to specify the parameters for linking external table, please see LinkItem for details. Please refer to SQL Query for other parameters.
Perform the query to get a URI for the queryResult resource similar to http://localhost:8090/iserver/services/map-world/rest/maps/World Map/queryResults/3jx2ilcv_c81111e25a7f404ea36b2c8690756453.rjson 的 queryResult. The queryResult resource contains information about records satisfying the condition.
Please refer to Parsing queryResult to know more about the parsing of the queryResult resource.