Files
Rex-EMoolator-docs/docs/pl/reference/DATABASE.md
Patryk Gensch 198d9cf477 Finished automatically generated docs
Time to correct it by itself
2026-05-20 22:49:46 +02:00

153 lines
3.2 KiB
Markdown

# DATABASE
Baza danych w postaci tabeli — zbiór wierszy o jednolitym schemacie. Schemat definiuje powiązana zmienna [`STRUCT`](STRUCT.md): jej pole [`FIELDS`](STRUCT.md#fields) wyznacza kolumny tabeli oraz typy danych w poszczególnych kolumnach.
Dostęp do wierszy realizowany jest sekwencyjnie poprzez kursor. Bieżąca pozycja kursora jest zmieniana metodami [`SELECT`](#select) (bezpośrednio na indeks), [`NEXT`](#next) (kolejny wiersz) i [`FIND`](#find) (po wartości w kolumnie). Dane zapisywane są w plikach `.DTA` w formacie z separatorem `|` — można je ładować ([`LOAD`](#load)) i zapisywać ([`SAVE`](#save)).
## Pola
### MODEL
```
STRING MODEL
```
Nazwa zmiennej typu [`STRUCT`](STRUCT.md) definiującej schemat bazy. Pole obowiązkowe — metoda [`LOAD`](#load) wymaga, by schemat został wcześniej zsynchronizowany ze [`STRUCT`](STRUCT.md).
## Metody
### FIND
```
INTEGER FIND(STRING columnName, mixed columnValue, INTEGER defaultIndex)
```
Wyszukuje pierwszy wiersz, w którym kolumna o nazwie `columnName` ma wartość `columnValue`. Zwraca jego indeks lub `defaultIndex`, jeżeli żaden wiersz nie pasuje.
**Parametry**
- `columnName` — nazwa przeszukiwanej kolumny.
- `columnValue` — szukana wartość.
- `defaultIndex` — indeks zwracany, jeżeli nie znaleziono dopasowania.
**Zwraca**: [`INTEGER`](INTEGER.md) — indeks znalezionego wiersza lub `defaultIndex`.
**Przykłady**
```
DBOBJECTS^FIND("IDNAME",VARSTAKENAME,0);
DBOBJECTS^FIND("TYPE",102,0);
DBDIALOGI^FIND("ID",SDIALOGNAME,IDIALOGINDEKS);
```
### GETROWSNO
```
INTEGER GETROWSNO()
```
Zwraca liczbę wierszy w bazie.
**Zwraca**: [`INTEGER`](INTEGER.md) — liczba wierszy.
**Przykłady**
```
DBOBJECTS^GETROWSNO();
```
### LOAD
```
void LOAD(STRING dtaName)
```
Ładuje zawartość bazy z pliku `.DTA`. Każda linia pliku to jeden wiersz; kolumny w wierszu rozdzielone są znakiem `|`. Wywołanie metody bez wcześniej zdefiniowanego schematu ([`MODEL`](#model)) jest przerywane z komunikatem błędu.
**Parametry**
- `dtaName` — ścieżka do pliku `.DTA`.
**Przykłady**
```
DBOBJECTS^LOAD(VARSCURRARCADE);
DBITEMS^LOAD("$COMMON\ITEMS0.DTA");
```
### NEXT
```
void NEXT()
```
Przesuwa kursor do kolejnego wiersza.
**Przykłady**
```
DBSCENE^NEXT();
```
### REMOVEALL
```
void REMOVEALL()
```
Usuwa wszystkie wiersze z bazy. Schemat ([`MODEL`](#model)) pozostaje bez zmian.
**Przykłady**
```
DBITEMS^REMOVEALL();
```
### SAVE
```
void SAVE(STRING dtaName)
```
Zapisuje aktualną zawartość bazy do pliku `.DTA` w tym samym formacie, którego oczekuje [`LOAD`](#load) (wiersze rozdzielone znakiem nowej linii, kolumny — znakiem `|`).
**Parametry**
- `dtaName` — ścieżka docelowego pliku `.DTA`.
**Przykłady**
```
DBOBJECTS^SAVE(VARSCURRARCADE);
DBLEVEL^SAVE(["$COMMON\SAVE_BD\BD_CLEV"+VARIACTIVESLOT+".FLD"]);
```
### SELECT
```
void SELECT(INTEGER rowIndex)
```
Ustawia kursor na wiersz o podanym indeksie (liczonym od zera).
**Parametry**
- `rowIndex` — indeks docelowego wiersza.
**Przykłady**
```
DBOBJECTS^SELECT(0);
DBOBJECTS^SELECT(VARITER);
```
## Sygnały
### ONINIT
Wywoływany w momencie inicjalizacji obiektu.
### ONSIGNAL
Wywoływany po otrzymaniu sygnału (zobacz [Zdarzenia i sygnały](../engine/events.md#onsignal)).