$Database Get Belirtilen sorguyu yürütür ve sonuçları bir DataTable örneği olarak döndürür.
$Database.Get(query: Query):DataTable (Query , DataTable )
Parametreler Query query Yürütülecek sorgu.
Döndürür Sorgu sonuçlarını içeren bir DataTable iş akışı örneği.
Belirtilmediğinde Parameters.TargetDataStore, vekil komut dosyası bağlamının varsayılan veri deposunu belirler. Depo hataları komut dosyası hatalarına dönüştürülür. Döndürülen tablo bellekte değiştirilebilir; değişikliklerin kalıcı olarak kaydedilmesi gerektiğinde DataTable.Save çağrısını yapın.
Temel Sorgu 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 var myTable = $Database . Get ({
Parameters : {
TargetSchema : 'HR' ,
TargetTable : 'Groups'
},
Where : {
Criteria : [
{
Name : 'Name' ,
Value : 'Administrators'
}
]
},
Order : [
{ Name : 'Order' , Type : 'Ascending' }
]
});
Aşağıdaki örnekte, Groups tablosu sorgulanır. Sonuçlar azalan sırada düzenlenir ve yalnızca bir satır içerir; çünkü Start değeri ise 0 olarak, MaxLength değeri ise 1.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 var myTable = $Database . Get ({
Parameters : {
TargetSchema : 'HR' ,
TargetTable : 'Groups'
},
Columns : [
{ Name : 'Order' }
],
Start : 0 ,
MaxLength : 1 ,
Where : {
Criteria : [
{ Name : 'Name' , Value : 'Administrators' , Comparison : 'Different' }
]
},
Order : [
{ Name : 'Name' , Type : 'Descending' }
]
});
Birden çok koşul içeren daha karmaşık bir sorguya ihtiyacınız varsa AND ve OR koşulları (örneğin (X OR Y OR Z) AND W) için Blocks seçeneğini kullanabilirsiniz. Aşağıdaki kod örneğine bakın.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 var myTable = $Database . Get ({
Parameters : {
TargetSchema : 'HR' ,
TargetTable : 'UserLogons'
},
Where : {
Blocks : [{
Condition : 'And' ,
Criteria : [{
Name : 'User.EMailAddress' ,
Value : '...' ,
Condition : 'Or'
}, {
Name : 'User.EMailAddress' ,
Value : '...' ,
Condition : 'Or'
}, {
Name : 'User.EMailAddress' ,
Value : '...'
},]
}],
Criteria : [{
Name : 'User.Disabled' ,
Value : 'true' ,
Condition : 'And' ,
Comparison : 'Different'
}]
}
});
Aşağıdaki sorguda, bir çalışanın kazandığı günler Sum işlevi kullanılarak seçilir.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 var daysGained = $Database . Get ({
Parameters : {
TargetSchema : 'HR' ,
TargetTable : 'LeaveAllowance'
},
Columns : [{
Name : 'DaysGained' ,
Expression : "Sum(DaysGained)"
}],
Start : 0 ,
MaxLength : 1 ,
Where : {
Criteria : [{
Name : 'Employee' ,
Value : $Initiator . Id
}]
}
});
$Xml . SetValue ( 'GeneralInfo/EarnedDays' , daysGained . Rows ()[ 0 ][ "DaysGained" ]);
// OR
totalLeaves . Each ( function () {
$Xml . SetValue ( 'GeneralInfo/EarnedDays' , this . DaysGained );
});
Info
Aşağıdaki örnekte tedarikçi teklifleri güne göre gruplandırılır ve her gruptaki teklif sayısı da gösterilir.
İfade İçeren Sorgu - Gelişmiş 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 var offerCountByDayTable = $Database . Get ({
Parameters : {
TargetSchema : 'OFR' ,
TargetTable : 'Offers'
},
Columns : [{
Name : "Day" ,
Expression : "DateTrunc('Day', OfferDate)"
},
{
Name : "Amount" ,
Expression : "Count(DateTrunc('Day', OfferDate))"
}],
Order : [
{ Name : "DateTrunc('Day',OfferDate)" , Type : 'Ascending' }
]
});
offerCountByDayTable . Each ( function () {
console . info ( this . Amount + ' offers made on the date ' + this . Day . toISOString ());
});
Ayrıca bkz.