Ana içeriğe geç

Query

Depoda XQuery yürütür ve sonuçları dize dizisi olarak döndürür.

$XmlRepository.Query(xquery: string, parameters?: object, collection?: string):Array<string>

Parametreler

dize xquery
    Veritabanında yürütülecek XQuery ifadesi.

nesne parameters optional
    XQuery ifadesine bağlanacak parametreleri içeren bir nesne.

dize collection optional
    Sorgulanacak koleksiyonun adı. Belirtilmezse alanadı veritabanı sorgulanır.

Döndürür

XQuery sonuçlarını temsil eden bir dize dizisi. Sorgu sonuç döndürmezse boş bir dizi döndürür.

Açıklamalar

Aşağıdaki örnekler, alanadı veritabanının nasıl sorgulanacağını gösterir.

Sorgu söz dizimi ayrıntılı olarak şu sayfada açıklanmıştır: XQuery standardı sayfasında. XQuery hataları betik hataları olarak bildirilir. Güncelleme ifadeleri depo tarafından yürütülür; bu nedenle bu yöntemi yalnızca sorgu bilerek değişiklik yapacaksa kullanın.

Tüm müşteri düğümlerini dize olarak sorgulama

1
2
var results = $XmlRepository.Query('//Customer');
$Xml.InnerXml( 'Customer', results.join() );

Parametrelerle ID'ye göre müşteri sorgulama

1
2
3
4
var results = $XmlRepository.Query('//Customer[Id=$id]', {
id : $Xml.Evaluate('CustomerId')
 });
$Xml.InnerXml( 'Customers', results.join() );

XQuery ile müşteri adını güncelleme

1
2
3
$XmlRepository.Query('for $customer in //Customer[Id=$id] return replace value of node $customer/Name with "Lady Gaga"', {
   id : $Xml.Evaluate('CustomerId')
});

XQuery ile yeni bir XML düğümü ekleme

1
2
3
4
$XmlRepository.Query('insert node (<Kaynak><Id>{$newId}</Id><Ad>{$newName}</Ad></Kaynak>) as last into /KVKEnvanter/Tanimlar/Kaynaklar', {
    newId: newId,
    newName: name.trim()
});

XQuery güncellemesiyle kayıt silme

1
2
3
4
5
6
7
$XmlRepository.Query('let $nodeValue := fn:parse-xml-fragment($nodeValue)' +
                     'for $record in Relation[Id=$id]/RepHistory/RepHistoryRecord[InstanceId=$instanceId] return ' +
                     '(delete node $record)', {
   id : relationId,
   instanceId : $Xml.Evaluate('SelectedHistory/Id'),
   nodeValue : $Xml.SelectSingle('.').InnerXml()
});

Info

Bir işlem veritabanını sorgulamak için collection anahtar sözcüğünü kullanın ve veritabanının GUID değerini sağlayın.

İşlem veritabanlarında GUID değerini şu yöntemi kullanarak edinebilirsiniz: $Instance.ProcessId.

İşlem veritabanı koleksiyonunu sorgulama

1
2
3
4
var results = $XmlRepository.Query('collection("49551ed3-6229-408a-aaaa-eb510463acad")//Customer[Id=$id]', {
   id : $Xml.Evaluate('CustomerId')
 });
$Xml.InnerXml('Customers', results[0]);

Ayrıca bkz.