Ana içeriğe geç

Get

Belirtilen sorguyu çalıştırır ve sonuçları bir DataTable iş akışı örneği olarak döndürür.

1
$Database.Get(query: Query):DataTable

Parametreler

Query sorgusu
    Çalıştırılacak sorgu.

Döndürür

Sorgu sonuçlarını içeren bir DataTable iş akışı.

Notlar

Şu olmadan Parameters.TargetDataStore, proxy komut bağlamının varsayılan veri deposunu çözümler. Depo hataları komut hatalarına dönüştürülür. Döndürülen tablo bellek içinde değiştirilebilir; değişiklikleri kalıcı hale getirmek istiyorsanız yalnızca 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ç azalan düzende sıralanır ve yalnızca bir satır içerir; çünkü Start şu değere ayarlanmıştır: 0 ve MaxLength şu değere ayarlanmıştır: 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 fazla

AND ve OR koşulu içeren daha karmaşık bir sorguya (örneğin (X OR Y OR Z) AND W) ihtiyacınız varsa 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 şu işlev kullanılarak seçilir:

Sum .

 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, sayılarıyla birlikte güne göre gruplandırılır.

İfade iç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.