Ana içeriğe geç

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.

Açıklamalar

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.