# Database Functions

Veri tabanı fonksiyonları, inSCADA platformunda script/expression ile veri tabanından veri almak veya yazmak için kullanılır.

## Write Data To The Log

#### ins.writeLog(String type, String source, String activity, String msg)

Veritabanı günlük tablosuna bilgi veya uyarı mesajı yazmak için kullanılır.

String type : Yazılacak mesajın türü. (info,warning,error ..)

String source: Yazılacak mesajın kaynağı. Mesaj ile ilgili bir nesnenin veya bir modülün açıklaması olabilir. (Device 01, Communication Channel 1, Pompa 1 ..)

String activity : Yazılacak mesajın ilgili olduğu aktivite açıklaması. (Read Data From PLC ..)

Return Value : Herhangi bir değer geri döndürmez.

#### Syntax

```javascript
ins.writeLog("info","UNIT 01","Starting Sequence","Water Cooling System is Ready");
```

## Fetching Data From The Log

#### ins.getLoggedVariableValueStats(String\[] variableNames, Date startDate, Date endDate)

Veritabanındaki değişken değerlerinin kaydedildiği tablodan talep edilen zaman aralığındaki min,max,first,last,avg,counter,total,integral değerlerini getirir.

String\[] variableNames : Değişken isimlerinin tutulduğu string dizi.

startDate : Veri tabanından getirilecek verilerin başlangıç zamanı.

endDate : Veri tabanından getirilecek verilerin bitiş zamanı.

Return Value : Değişken ve değerlerini içinde barındıran bir JSON nesnesi geri döndürür.

#### Syntax

```javascript
    var startD = ins.getDate((new Date(2021,5,3,9, 24, 0)).getTime());
    var endD = ins.getDate((new Date(2021,5,28,20, 24, 0)).getTime());
    var result = ins.getLoggedVariableValueStats(["V001_STATUS"], startD, endD);
    ins.notify("info", "", result[0].maxValue);

```

## Fetching Hourly Data From The Log

#### ins.getLoggedHourlyVariableValueStats(String\[] variableNames, Date startDate, Date endDate)

Veritabanındaki değişken değerlerinin kaydedildiği tablodan talep edilen zaman aralığındaki saatlik olarak min, max, first, last, avg, counter, total, integral değerlerini getirir.

String\[] variableNames : Değişken isimlerinin tutulduğu string dizi.

startDate : Veri tabanından getirilecek verilerin başlangıç zamanı.

endDate : Veri tabanından getirilecek verilerin bitiş zamanı.

Return Value : Değişken ve değerlerini içinde barındıran bir JSON nesnesi geri döndürür.

#### Syntax

```javascript
var aaaa
```

## Fetching Daily Data From The Log

#### ins.getLoggedDailyVariableValueStats(String\[] variableNames, Date startDate, Date endDate)

Veritabanındaki değişken değerlerinin kaydedildiği tablodan talep edilen zaman aralığındaki günlük olarak min, max, first, last, avg, counter, total, integral değerlerini getirir.

String\[] variableNames : Değişken isimlerinin tutulduğu string dizi.

startDate : Veri tabanından getirilecek verilerin başlangıç zamanı.

endDate : Veri tabanından getirilecek verilerin bitiş zamanı.

Return Value : Değişken ve değerlerini içinde barındıran bir JSON nesnesi geri döndürür.

#### Syntax

```javascript
var aaaa
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://inscada.gitbook.io/ins/master/programing/apis/database-functions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
