Returnerer en streng som inneholder et SQL-kommandotekstfragment som bruker den angitte XML-noden.
expression.BuildSQLFromXMLNodes(ByRef pXmlNode As IXMLDOMNode) As String
expression Obligatorisk. Et uttrykk som returnerer en referanse til ADOAdapter-objektet.
pXmlNode Obligatorisk Object. XML-noden som skal konverteres til et SQL-fragment.
returns String.
Sikkerhetsnivå
2: Kan åpnes bare av skjemaer som kjører på samme domene som skjemaet som i øyeblikket er åpent, eller av skjemaer som har fått tillatelser på tvers av domener.
Merknader
SQL-fragmentet som genereres av BuildSQLFromXMLNodes-metoden, er en SQL WHERE
-setningsdel i formatet field = value
. XML-noden som du bruker for pXmlNode-argumentet, bør være en etterkommer av dfs:queryFields-noden. Når du har SQL-kommandotekstfragmentet, kan du legge det til i den eksisterende SQL-kommandostrengen for ADOAdapter-objektet ved hjelp av Command-egenskapen.
Eksempel
I eksemplet nedenfor brukes BuildSQLFromXMLNodes-metoden for ADOAdapter-objektet til å opprette et SQL-kommandotekstfragment basert på en angitt XML-node. Dette eksemplet er basert på et skjema som bruker Orders-tabellen (Ordrer) i eksempeldatabasen Northwind (Gastronor) i Microsoft SQL Server.
function QueryGreaterThan()
{
var objQueryFieldNode;
var strWhereClause;
var strOldCommand;
var objQueryFieldAttributes;
var objCurQueryFieldAttribute;
// Build the WHERE clause from the QueryFields in the form's
// underlying XML DOM.
objQueryFieldNode = XDocument.DOM
.selectSingleNode("dfs:myFields/dfs:queryFields/q:Orders");
strWhereClause = XDocument.QueryAdapter
.BuildSQLFromXMLNodes(objQueryFieldNode);
// Replace the '=' signs with '>=', and append the clause to
// the SQL command text.
strWhereClause = strWhereClause.replace(/=/, ">=");
strOldCommand = XDocument.QueryAdapter.Command;
if (strWhereClause != "")
{
XDocument.QueryAdapter.Command = strOldCommand +
" where " + strWhereClause;
}
// Clear the QueryFields so the WHERE clause isn't
// automatically generated.
objQueryFieldAttributes = objQueryFieldNode.attributes;
while (objCurQueryFieldAttribute = objQueryFieldAttributes.nextNode())
{
objCurQueryFieldAttribute.text = "";
}
// Perform the query.
try
{
XDocument.Query();
}
catch (e)
{
XDocument.UI.Alert("Failed to query.\n\n" + e.message);
}
// Reset the command so that subsequent queries are based on
// the correct SQL command text string.
XDocument.QueryAdapter.Command = strOldCommand;
// Clean up.
objQueryFieldNode = null;
strWhereClause = null;
strOldCommand = null;
objQueryFieldAttributes = null;
objCurQueryFieldAttribute = null;
}