Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
azure SQL Database
Tento příklad ukazuje, jak lze šablonové soubory složené ze SQL nebo XPath dotazů zadat pomocí vlastnosti CommandText. Místo zadávání SQL nebo XPath dotazu jako hodnoty CommandText můžete jako hodnotu zadat název souboru. V následujícím příkladu je vlastnost CommandType specifikována jako SqlXmlCommandType.TemplateFile.
Ukázková aplikace spouští tuto šablonu:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:query>
SELECT TOP 2 ContactID, FirstName, LastName
FROM Person.Contact
FOR XML AUTO
</sql:query>
</ROOT>
Toto je ukázková aplikace v C#. Pro testování aplikace uložte šablonu (TemplateFile.xml) a poté aplikaci spustíte.
Poznámka:
V kódu musíte v řetězci spojení uvést název instance Microsoft SQL Serveru.
using System;
using Microsoft.Data.SqlXml;
using System.IO;
class Test
{
static string ConnString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI";
public static int testParams()
{
//Stream strm;
SqlXmlCommand cmd = new SqlXmlCommand(ConnString);
cmd.CommandType = SqlXmlCommandType.TemplateFile;
cmd.CommandText = "TemplateFile.xml";
using (Stream strm = cmd.ExecuteStream()){
using (StreamReader sr = new StreamReader(strm)){
Console.WriteLine(sr.ReadToEnd());
}
}
return 0;
}
public static int Main(String[] args)
{
testParams();
return 0;
}
}
Otestování aplikace
Ujistěte se, že máte na počítači nainstalovaný Microsoft .NET Framework.
Šablonu XML (TemplateFile.xml), která je uvedena v tomto příkladu, uložte do složky.
Uložit C# kód (DocSample.cs), který je uveden v tomto příkladu, do stejné složky, ve které je schéma uloženo. (Pokud soubory uložíte do jiné složky, budete muset upravit kód a zadat vhodnou cestu k adresáři pro mapovací schéma.)
Zkompilujte kód. Pro kompilaci kódu v příkazovém řádku použijte:
csc /reference:Microsoft.Data.SqlXML.dll DocSample.csTím vzniká spustitelný soubor (DocSample.exe).
V příkazovém řádku spusťte DocSample.exe.
Pokud předáte parametr šabloně, název parametru musí začínat na znaménku (@); například p.Name="@ContactID", kde p je objekt SqlXmlParameter.
Toto je aktualizovaná šablona, která zabírá jeden parametr.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:header>
<sql:param name='ContactID'>1</sql:param>
</sql:header>
<sql:query>
SELECT ContactID, FirstName, LastName
FROM Person.Contact
WHERE ContactID=@ContactID
FOR XML AUTO
</sql:query>
</ROOT>
Jedná se o aktualizovaný kód, do kterého je parametr vložen pro spuštění šablony.
public static int testParams()
{
Stream strm;
SqlXmlParameter p;
SqlXmlCommand cmd = new SqlXmlCommand(ConnString);
cmd.CommandType = SqlXmlCommandType.TemplateFile;
cmd.CommandText = "TemplateFile.xml";
p = cmd.CreateParameter();
p.Name="@ContactID";
p.Value = "1";
strm = cmd.ExecuteStream();
StreamReader sw = new StreamReader(strm);
Console.WriteLine(sw.ReadToEnd());
return 0;
}