3.2 KiB
DATABASE
Baza danych w postaci tabeli — zbiór wierszy o jednolitym schemacie. Schemat definiuje powiązana zmienna STRUCT: jej pole 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 (bezpośrednio na indeks), NEXT (kolejny wiersz) i FIND (po wartości w kolumnie). Dane zapisywane są w plikach .DTA w formacie z separatorem | — można je ładować (LOAD) i zapisywać (SAVE).
Pola
MODEL
STRING MODEL
Nazwa zmiennej typu STRUCT definiującej schemat bazy. Pole obowiązkowe — metoda LOAD wymaga, by schemat został wcześniej zsynchronizowany ze STRUCT.
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 — 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 — 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) 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) 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 (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).