Obsługa baz danych > GetField - polecenie

Drukuj

GetField - polecenie symp

Polecenie przeznaczone jest do stosowania tylko w programach linii Symfonia 2.0. W programach linii Symfonia ERP, w celu uzyskania dostępu do bazy danych, należy stosować polecenie GetADOConnection.

 

Polecenie odczytuje wartość pola rekordu bazy danych. Pole w bazie danych może być dowolnego typu prostego. Typ konkretnego pola zależy od definicji bazy danych w programie. Pole identyfikowane jest przez jego nazwę. Typ zwracanej wartości odpowiada typowi pobieranego pola. Baza danych, musi być otwarta poleceniem Open.

 

Składnia

GetField (Int  numerBazy,  String  nazwaPola)

 

Argumenty

Typ

Nazwa

Opis

Int

numerBazy

Numer identyfikujący otwartą bazę danych

String

nazwaPola

Tekstowa nazwa pola rekordu bazy danych

 

Wartość zwracana

Zawartość wskazanego pola rekordu. Typ zwracanej wartości odpowiada typowi pola rekordu.

 

Przykład

//Utworzenie struktury definicji bazy danych
BaseDef bDef
//Utworzenie nowej definicja tabeli typu "osoby"
bDef.New("Osoby")
//Zdefiniowanie pól tabeli
bDef.Field(15, 4, "ID")
bDef.Field(11, 40, "Nazwisko")
bDef.Field(11, 20, "Imie")
//Zdefiniowanie klucza podstawowego "ID", automatyczna numeracja
bDef.Key(0x0100, "ID")
//Określenie pola klucza podstawowego
bDef.KeyField(15, 4, "ID")
//Utworzenie i udostępnienie definicji
bDef.Create()
//Określenie położenia pliku bazy
String sciezka=KatalogFirmy() + "NOWABAZA.DAT"
//Utworzenie pliku bazy danych
Create sciezka For Base "Osoby"
//Ustalenie sposobu obsługi błędu tworzenia bazy
BaseError (sciezka, 4)
//Otworzenie bazy danych
Int nrBazy=Open sciezka For Base "Osoby"
BaseError (sciezka, 4)
//Wpisanie do bazy rekordu
SetKey (nrBazy, "ID")
SetKeySeg (nrBazy, "ID", 0)
SetField (nrBazy, "Nazwisko", "Nazwisko1")
SetField (nrBazy, "Imie", "Imię1")
InsRec (nrBazy)
baseError (nrBazy, 4)
//Zamknięcie pliku bazy danych
Close nrBazy
//Powtórne otworzenie pliku bazy danych
Int nrBazy1=Open sciezka For Base "Osoby"
baseError (nrBazy1, 4)
//Ustawienie rekordu bazy do odczytu
SetKey (nrBazy1, "ID")
SetKeySeg (nrBazy1, "ID", 1)
//Odczytanie rekordu bazy
GetRec (nrBazy1, EQ)
baseError (nrBazy1, 4)
//Sprawdzenie zapisanych w rekordzie informacji
String p1=GetField (nrBazy1, "Nazwisko")
String p2=GetField (nrBazy1, "Imie")
String wpis="Zawartość rekordu odczytana z bazy: "+" "+p1+" "+p2
Print wpis;LF
//Zmiana zawartości rekordu
SetField (nrBazy1, "Nazwisko", "NoweNazwisko1")
SetField (nrBazy1, "Imie", "NoweImię1")
PutRec (nrBazy)
//Ponowne ustawienie rekordu bazy do odczytu
SetKey (nrBazy1, "ID")
SetKeySeg (nrBazy1, "ID", 1)
//Sprawdzenie istnienia ustawianego rekordu
Int jest=GetKey (nrBazy1, EQ)
If jest then
Print "W bazie brak ustawianego rekordu"; LF
else
Print "W bazie istnieje ustawiony rekord"; LF
EndIf
//Sprawdzenie zawartości wybranego segmantu klucza ustawionego rekordu
Int Seg=GetKeySeg (nrBazy1, "ID")
Print "Segment ID klucza wybranego rekordu ma wartość: ", Seg; LF
//Odczyt nowej zawartości rekordu
GetRec(nrBazy1, EQ)
//Sprawdzenie zapisanych w rekordzie nowych informacji
String p1n=GetField (nrBazy1, "Nazwisko")
String p2n=GetField (nrBazy1, "Imie")
String wpisn="Zmieniona zawartość rekordu odczytana z bazy: "+" "+p1n+" "+p2n
Print wpisn;LF
//Usunięcie rekordu
SetKey (nrBazy1, "ID")
SetKeySeg (nrBazy1, "ID", 1)
DelRec (nrBazy1)
//Ponowne ustawienie rekordu bazy do odczytu usuniętego rekordu
SetKey (nrBazy1, "ID")
SetKeySeg (nrBazy1, "ID", 1)
//Sprawdzenie istnienia ustawianego rekordu
Int jest1=GetKey (nrBazy1, EQ)
If jest1 then
Print "Sprawdzenie usunięcia rekordu - rekord został usunięty"; LF
else
Print "Sprawdzenie usunięcia rekordu - rekord istnieje"; LF
EndIf
//Zamknięcie pliku bazy danych
Close nrBazy1
//Usunięcie pliku bazy danych
Delete File sciezka
//Sprawdzenie usunięcia pliku bazy danych
Int nrBazy2=Open sciezka For Base "Osoby"
If nrBazy2>0 then
Print "Sprawdzenie usunięcia pliku bazy - baza istnieje"; LF
Close nrBazy2
else
Print "Sprawdzenie usunięcia pliku bazy - baza została usunięta"; LF
EndIf