Podręcznik Application Development Guide: Call Level Interface (CLI)
|
|
|Aktualizacja tabeli diagnostycznej dla funkcji
|SQLDescribeParam (CLI)
|Funkcja SQLDescribeParam() zwraca opis znacznika parametru
|powiązanego z przygotowaną instrukcją SQL.
|W tabeli diagnostycznej został zaktualizowany stan SQLSTATE HYC00.
|
|Diagnostyka
|
|
|
|Tabela 24. Stany SQLSTATE funkcji SQLDescribeParam
|
|
|SQLSTATE |
|Opis |
|Wyjaśnienie |
|
|
|
|
|HYC00 |
|Sterownik nie może wykonać operacji |
|Procedury zapisane w bazie dla funkcji schematu są niedostępne na tym
|serwerze.
|Zainstaluj je na serwerze i upewnij się, że są dostępne. |
|
|
|
|
|
|Asynchroniczne wykonywanie funkcji interfejsu
|CLI
|Interfejs CLI (Call Level Interface) programu DB2 (DB2 CLI) umożliwia
|asynchroniczne uruchamianie pewnego podzbioru funkcji.
|Sterownik interfejsu DB2 CLI zwraca sterowanie do aplikacji po wywołaniu
|funkcji, ale zanim funkcja zakończy działanie. Funkcja zwraca wartość
|SQL_STILL_EXECUTING za każdym razem, gdy jest wywoływana, aż zakończy
|działanie, kiedy to zwraca inną wartość (na przykład SQL_SUCCESS).
|Wykonywanie asynchroniczne jest korzystne tylko w jednowątkowych systemach
|operacyjnych. Aplikacje działające w wielowątkowych systemach operacyjnych
|powinny uruchamiać funkcje w osobnych wątkach. Asynchronicznie
|można wykonywać te funkcje, które podczas normalnej pracy wysyłają żądanie do serwera, a
|następnie czekają na odpowiedź. Funkcja działająca asynchronicznie zamiast
|czekać zwraca sterowanie do aplikacji. Aplikacja może wykonywać inne zadania
|albo zwrócić sterowanie do systemu operacyjnego i przy użyciu przerwania
|odpytywać okresowo funkcję do czasu uzyskania kodu powrotu innego niż
|SQL_STILL_EXECUTING.
|Obsługa wykonywania asynchronicznego funkcji interfejsu CLI jest dostępna w
|programie DB2 Universal Database (UDB), począwszy od wersji 8.2 z pakietem
|poprawek 1 (odpowiednika wersji 8.1 z pakietem poprawek 8). Dokumentację tej
|opcji można znaleźć w Centrum informacyjnym programu DB2 UDB, wersja 7, pod
|adresem
|http://publib.boulder.ibm.com/infocenter/db2v7luw/index.jsp. Wszystkie informacje z dokumentacji wersji 7 odnoszą się również do
|wersji 8.2 z pakietem poprawek 1 (odpowiadającej wersji 8.1 z pakietem poprawek
|8) i nowszych. Centrum informacyjne programu DB2, wersja 8, nie zawiera żadnej
|dokumentacji dotyczącej tej opcji.
|
|
|Atrybut połączenia SQL_ATTR_PING_DB
|
|SQL_ATTR_PING_DB (DB2 CLI, wersja 8.2)
|Atrybut SQL_ATTR_PING_DB jest to 32-bitowa liczba całkowita, której używa się łącznie z funkcją
|SQLGetConnectAttr() do uzyskiwania czasu odpowiedzi sieci dla
|istniejącego połączenia między klientem DB2 UDB a serwerem DB2 UDB. Czas odpowiedzi jest podawany w mikrosekundach.
|Jeśli połączenie zostało wcześniej nawiązane, a następnie zerwane przez bazę
|danych, zwracana jest wartość 0. Jeśli połączenie zostało zamknięte przez
|aplikację, zgłaszany jest stan SQLSTATE 08003. Ten atrybut połączenia może
|zostać zwrócony przez funkcję SQLGetConnectAttr(), ale nie można go
|ustawiać przy użyciu funkcji SQLSetConnectAttr(). Każda próba ustawienia tego
|atrybutu spowoduje otrzymanie stanu SQLSTATE HYC00 (Sterownik nie może wykonać
|operacji).
|
|
|Funkcja SQLBindParameter (CLI)
|W dokumentacji funkcji SQLBindParameter opis parametru wejściowego jest
|niepoprawny. Poprawny opis ma następującą postać:
|
|- Parametr wejściowy
|- Wartość ColumnSize równa 0 oznacza, że
|interfejs DB2 CLI będzie używał maksymalnej długości dopuszczalnej dla typu SQL dostarczanego
|jako parametr wielkości kolumny lub procedury zapisanej w bazie. Interfejs DB2
|CLI wykona wszelkie niezbędne konwersje, używając tej wielkości.
|
|
|
|
|Funkcja SQLMoreResults (CLI)
|W dokumentacji funkcji SQLMoreResults odwołanie do atrybutu instrukcji
|SQL_ATTR_ROW_ARRAY_SIZE jest niepoprawne. Poprawnym atrybutem instrukcji
|jest SQL_ATTR_PARAMSET_SIZE. Sekcja opisująca składnię powinna wyglądać następująco:
|Ta funkcja może być używana do sekwencyjnego zwracania wielu wyników w
|tabeli wynikowej w przypadku wykonywania:
|
|- zapytania parametrycznego z tablicą wartości parametrów wejściowych
|określonych z atrybutem instrukcji SQL_ATTR_PARAMSET_SIZE i funkcją
|SQLBindParameter()
Dodatkowe atrybuty środowiska
Poniższe atrybuty połączenia interfejsu CLI są również obsługiwane jako
atrybuty środowiska interfejsu CLI:
- SQL_ATTR_INFO_ACCTSTR
- SQL_ATTR_INFO_APPLNAME
- SQL_ATTR_INFO_USERID
- SQL_ATTR_INFO_WRKSTNNAME
Informacje na temat tych atrybutów można znaleźć w dokumentacji atrybutów
połączeń interfejsu CLI w Centrum informacyjnym DB2 lub w podręczniku
CLI Guide and Reference Volume 2.
Wymagania dotyczące dynamicznych kursorów przewijalnych
Aby możliwe było wykonywanie operacji aktualizacji i usuwania wierszy w tabeli
wynikowej dynamicznego kursora przewijalnego, instrukcja UPDATE lub DELETE
musi zawierać wszystkie kolumny co najmniej jednego klucza unikalnego w
tabeli podstawowej. Może to być klucz podstawowy lub dowolny inny klucz
unikalny.
|
|
|Parametr konfiguracyjny RetCatalogAsCurrServer interfejsu CLI/ODBC
|
|- Opis parametru:
|- Funkcje katalogu zwracają dla kolumn katalogu wartość CURRENT SERVER
|zamiast wartości pustej.
|
|- Składnia parametru w pliku db2cli.ini:
|- RetCatalogAsCurrServer= 0 | 1
|
|- Ustawienie domyślne:
|- Jeśli docelowy menedżer DBMS zwróci wartość pustą dla kolumn katalogu,
|wartość CURRENT SERVER nie zostanie zapełniona.
|
|- Informacja o użyciu:
|- Jeśli funkcje katalogu dla docelowego menedżera DBMS zwrócą wartość pustą
|dla kolumn katalogu, nadanie parametrowi RetCatalogAsCurrServer wartości 1
|spowoduje, że menedżer DBMS zwróci w zamian wartość CURRENT SERVER.
|
|- 0 = funkcje katalogu zwracają wartość pustą dla kolumn katalogu
|(domyślnie).
|- 1 = funkcje katalogu zwracają wartość CURRENT SERVER zamiast wartości
|pustej dla kolumn katalogu.
|Załóżmy na przykład, że funkcja katalogu SQLTables() zwraca
|tabelę wynikową, w której wartości w kolumnie TABLE_CAT są puste. Nadanie
|parametrowi RetCatalogAsCurrServer wartości 1 spowoduje, że menedżer DBMS zwróci
|w kolumnie TABLE_CAT wartość CURRENT SERVER.
|
|
|Uwaga:
|Ten parametr jest obsługiwany przez
|program DB2 UDB dla systemów Linux, UNIX(R) i Windows(R) w wersji 8.2 z
|pakietem poprawek 3 (odpowiednik wersji 8.1 z pakietem poprawek 10) i w
|wersjach nowszych.
|
|
Parametr konfiguracyjny ReceiveTimeout interfejsu CLI/ODBC
- Opis parametru:
- Określa (w sekundach) czas oczekiwania na odpowiedź serwera przez nawiązane
połączenie, po jakim próba zostanie zakończona i wygenerowany zostanie błąd
przekroczenia limitu czasu komunikacji.
- Składnia parametru w pliku db2cli.ini:
- ReceiveTimeout = 0 | 1 | 2 |
... | 32767
- Ustawienie domyślne:
- Klient czeka przez nieograniczenie długi czas na odpowiedź z serwera przez
nawiązane połączenie.
- Równoważny atrybut instrukcji:
- SQL_ATTR_RECEIVE_TIMEOUT
- Informacja o użyciu:
- Wartość domyślna 0 oznacza, że klient będzie czekał na odpowiedź przez
nieograniczenie długi czas. Limit czasu odbioru nie obowiązuje podczas nawiązywania
połączenia; parametr ten jest obsługiwany tylko w przypadku protokołu TCP/IP i
jest ignorowany dla wszystkich innych protokołów.
Atrybut instrukcji SQL_ATTR_RECEIVE_TIMEOUT
- SQL_ATTR_RECEIVE_TIMEOUT (interfejs CLI DB2 wersja 8)
- 32-bitowa wartość całkowita określająca w sekundach czas oczekiwania na
odpowiedź serwera przez nawiązane połączenie, po jakim próba zostanie
zakończona i wygenerowany zostanie błąd przekroczenia limitu czasu komunikacji. Wartość domyślna 0 oznacza, że klient będzie czekał na odpowiedź przez
nieograniczenie długi czas. Limit czasu odbioru nie obowiązuje podczas nawiązywania
połączenia; parametr ten jest obsługiwany tylko w przypadku protokołu TCP/IP i
jest ignorowany dla wszystkich innych protokołów. Dozwolone są wartości
całkowite z zakresu od 0 do 32767.
Parametr konfiguracyjny Reopt interfejsu CLI/ODBC
- Opis parametru:
- Włącza optymalizację zapytań lub ponowną optymalizację instrukcji SQL,
które zawierają rejestry specjalne lub znaczniki parametrów.
- Składnia parametru w pliku db2cli.ini:
- Reopt = 2 | 3 | 4
- Ustawienie domyślne:
- W czasie wykonywania zapytania
nie jest przeprowadzana optymalizacja. W odniesieniu do rejestrów specjalnych lub znaczników parametrów używane są
domyślne wartości oszacowane, wybrane przez kompilator.
- Równoważny atrybut instrukcji:
- SQL_ATTR_REOPT
- Informacja o użyciu:
- Optymalizacja polega na przypisaniu rejestrom specjalnym lub znacznikom
parametrów wartości dostępnych w czasie wykonywania zapytania zamiast
domyślnych wartości oszacowanych, wybieranych przez kompilator. Poprawne
wartości parametru to:
- 2 = SQL_REOPT_NONE. Jest to ustawienie domyślne. W czasie wykonywania zapytania
nie jest przeprowadzana optymalizacja. W odniesieniu do rejestrów specjalnych lub znaczników parametrów używane są
domyślne wartości oszacowane, wybrane przez kompilator. Do wykonywania dynamicznych instrukcji SQL używany jest domyślny zestaw
pakietów "NULLID".
- 3 = SQL_REOPT_ONCE. Optymalizacja zapytania przeprowadzana jest w czasie
pierwszego wykonania zapytania. Używany jest zbiór pakietów "NULLIDR1"
powiązany przy użyciu opcji wiązania REOPT ONCE.
- 4 = SQL_REOPT_ALWAYS. Optymalizacja lub ponowna optymalizacja przeprowadzana
jest podczas każdego wykonania zapytania. Używany jest zbiór pakietów
"NULLIDRA" powiązany przy użyciu opcji wiązania REOPT ALWAYS.
"NULLIDR1" i "NULLIDRA" to zarezerwowane nazwy zbiorów
pakietów; gdy są one używane, niejawnie ustawiana jest odpowiednio opcja REOPT
ONCE lub REOPT ALWAYS.
Te zbiory pakietów należy utworzyć jawnie przy użyciu następujących komend:
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
W razie jednoczesnego określenia
parametrów Reopt i CurrentPackageSet, parametr CurrentPackageSet ma
pierwszeństwo.
Atrybut instrukcji SQL_ATTR_REOPT
- SQL_ATTR_REOPT (DB2 CLI v8)
- 32-bitowa wartość całkowita, która umożliwia optymalizację zapytań dla
instrukcji SQL zawierających rejestry specjalne lub znaczniki parametrów. Optymalizacja polega na przypisaniu rejestrom specjalnym lub znacznikom
parametrów
wartości dostępnych w czasie wykonywania zapytania zamiast domyślnych wartości
oszacowanych, wybieranych przez kompilator. Poprawne wartości atrybutu to:
- 2 = SQL_REOPT_NONE. Jest to ustawienie domyślne. W czasie wykonywania zapytania
nie jest przeprowadzana optymalizacja. W odniesieniu do rejestrów specjalnych lub znaczników parametrów używane są
domyślne wartości oszacowane, wybrane przez kompilator. Do wykonywania dynamicznych instrukcji SQL używany jest domyślny zestaw
pakietów "NULLID".
- 3 = SQL_REOPT_ONCE. Optymalizacja zapytania przeprowadzana jest w czasie
pierwszego wykonania zapytania. Używany jest zbiór pakietów "NULLIDR1"
powiązany przy użyciu opcji wiązania REOPT ONCE.
- 4 = SQL_REOPT_ALWAYS. Optymalizacja lub ponowna optymalizacja przeprowadzana
jest podczas każdego wykonania zapytania. Używany jest zbiór pakietów
"NULLIDRA" powiązany przy użyciu opcji wiązania REOPT ALWAYS.
"NULLIDR1" i "NULLIDRA" to zarezerwowane nazwy zbiorów
pakietów; gdy są one używane, niejawnie ustawiana jest odpowiednio opcja REOPT
ONCE lub REOPT ALWAYS.
Te zbiory pakietów należy utworzyć jawnie przy użyciu następujących komend:
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
Atrybuty SQL_ATTR_REOPT i
SQL_ATTR_CURRENT_PACKAGE_SET wykluczają się nawzajem, jeśli zatem jeden z nich
jest ustawiony, użycie drugiego jest niedozwolone.
Parametr konfiguracyjny CurrentPackageSet interfejsu
CLI/ODBC
- Opis parametru:
- Powoduje wywołanie instrukcji SET CURRENT PACKAGESET po każdym połączeniu.
- Składnia parametru w pliku db2cli.ini:
- CurrentPackageSet = nazwa schematu
- Ustawienie domyślne:
- Klauzula nie jest dodawana.
- Równoważny atrybut połączenia:
- SQL_ATTR_CURRENT_PACKAGE_SET
- Informacja o użyciu:
-
Ta opcja powoduje wywoływanie polecenia SET CURRENT PACKAGESET SQL z
wartością CurrentPackageSet po każdym połączeniu z bazą danych. Domyślnie
klauzula ta nie jest dołączana.
Instrukcja SET CURRENT PACKAGESET SQL określa
nazwę schematu (identyfikator kolekcji) używany do wybierania pakietu dla
następnych instrukcji SQL.
Aplikacje CLI/ODBC wywołują dynamiczne instrukcje SQL. Opisywana opcja umożliwia sterowanie uprawnieniami,
z jakimi instrukcje te są wykonywane:
- Wybierz schemat, który ma być używany do uruchamiania instrukcji SQL z
aplikacji CLI/ODBC.
- Dopilnuj, aby obiekty w schemacie miały odpowiednie uprawnienia, a następnie
przeprowadź ponowne wiązanie.
- Ustaw opcję CurrentPackageSet tak, aby wskazywała na ten schemat.
Instrukcje SQL uruchamiane z aplikacji CLI/ODBC będą teraz działały w
tym określonym schemacie ze zdefiniowanymi w nim uprawnieniami.
Następujące
nazwy zbiorów pakietów są zarezerwowane: "NULLID", "NULLIDR1", "NULLIDRA".
W razie jednoczesnego określenia parametrów Reopt i CurrentPackageSet,
parametr CurrentPackageSet ma pierwszeństwo.
Atrybut połączenia SQL_ATTR_CURRENT_PACKAGE_SET
- SQL_ATTR_CURRENT_PACKAGE_SET (DB2 CLI v5)
- Łańcuch znaków zakończony znakiem o kodzie zero określający nazwę schematu
(identyfikator kolekcji) służącego do wybierania pakietu dla następnych
instrukcji SQL.
Ustawienie tego atrybutu powoduje wywołanie instrukcji SQL SET
CURRENT PACKAGESET. Jeśli atrybut ten zostanie ustawiony przed połączeniem,
instrukcja SQL SET CURRENT PACKAGESET zostanie wywołana w czasie połączenia.
Aplikacje CLI/ODBC wywołują dynamiczne instrukcje SQL. Opisywany atrybut
połączenia umożliwia sterowanie uprawnieniami, z jakimi instrukcje te są
wykonywane:
- Wybierz schemat, który ma być używany do uruchamiania instrukcji SQL z
aplikacji CLI/ODBC.
- Dopilnuj, aby obiekty w schemacie miały odpowiednie uprawnienia, a następnie
przeprowadź ponowne wiązanie. Zwykle wymagać to będzie powiązania pakietów CLI
(sqllib/bnd/db2cli.lst) z opcją COLLECTION <id_kolekcji>. Szczegółowe
informacje można znaleźć w opisie komendy BIND.
- Ustaw opcję CURRENTPACKAGESET tak, aby wskazywała na ten schemat.
Instrukcje SQL uruchamiane z aplikacji CLI/ODBC będą teraz działały w
tym określonym schemacie ze zdefiniowanymi w nim uprawnieniami.
Alternatywną
metodą określenia nazwy schematu jest ustawienie parametru konfiguracyjnego
CLI/ODBC CURRENTPACKAGESET.
Następujące nazwy zbiorów pakietów są
zarezerwowane: "NULLID", "NULLIDR1", "NULLIDRA".
Atrybuty SQL_ATTR_REOPT i SQL_ATTR_CURRENT_PACKAGE_SET wykluczają się nawzajem,
jeśli zatem jeden z nich jest ustawiony, użycie drugiego jest niedozwolone.
Parametr konfiguracyjny MapBigintCDefault interfejsu CLI/ODBC
- Opis parametru:
- Określa domyślny typ C kolumn BIGINT i znaczników parametrów.
- Składnia parametru w pliku db2cli.ini:
- MapBigintCDefault = 0 | 1 | 2
- Ustawienie domyślne:
- Domyślna reprezentacja typu C dla danych BIGINT to
SQL_C_BIGINT.
- Informacja o użyciu:
-
Parametr MapBigintCDefault steruje typem C używanym, gdy dla kolumn i
znaczników parametrów typu BIGINT określono reprezentację
SQL_C_DEFAULT. Ten parametr powinien być używany
przede wszystkim z aplikacjami firmy Microsoft, takimi jak Microsoft Access,
które nie obsługują 8-bajtowych liczb całkowitych. Parametr MapBigintCDefault ustawia się w
następujący sposób:
- 0 - dla domyślnej reprezentacji typu C: SQL_C_BIGINT
- 1 - dla domyślnej reprezentacji typu C: SQL_C_CHAR
- 2 - dla domyślnej reprezentacji typu C: SQL_C_WCHAR
Parametr ten ma wpływ na zachowanie funkcji interfejsu CLI, gdzie jako
typ C może być określona reprezentacja SQL_C_DEFAULT, na przykład
SQLBindParameter(), SQLBindCol() i SQLGetData().
Parametr konfiguracyjny DescribeOutputLevel interfejsu CLI/ODBC
- Opis parametru:
- Określa poziom informacji opisowych kolumny wyjściowej, której wymaga
sterownik CLI podczas żądań przygotowania lub opisu.
- Składnia parametru w pliku db2cli.ini:
- DescribeOutputLevel = 0 | 1 | 2 | 3
- Ustawienie domyślne:
- Żąda informacji opisowych wymienionych na poziomie 2 (patrz
Tabela 25).
- Informacja o użyciu:
-
Ten parametr steruje wielkością informacji, których wymaga sterownik CLI w
żądaniach przygotowania lub opisu. Domyślnie, gdy serwer odbiera żądanie
opisu, zwraca w odpowiedzi informacje zawarte na poziomie 2 (patrz
Tabela 25) dla kolumn tabeli wynikowej. Jednak aplikacja może
nie potrzebować wszystkich tych informacji lub może potrzebować informacji
dodatkowych.
Przypisanie parametrowi DescribeOutputLevel poziomu
odpowiedniego dla potrzeb aplikacji może poprawić wydajność, ponieważ
wielkość danych opisu przesyłanych między klientem i serwerem zostaje
ograniczona do minimum wymaganego przez aplikację. Jeśli przypisany
parametrowi DescribeOutputLevel poziom będzie zbyt niski, może to zakłócić
funkcjonowanie aplikacji (zależnie od jej wymagań). Funkcje interfejsu CLI przeznaczone do pobierania informacji opisowych nie
muszą zakończyć działania niepowodzeniem, ale zwrócone przez nie informacje
mogą być niekompletne.
Obsługiwane ustawienia parametru DescribeOutputLevel
to:
- 0 - do aplikacji klienta nie są zwracane żadne informacje opisowe.
- 1 - do aplikacji klienta zwracane są informacje opisowe zaliczane do
poziomu 1 (patrz Tabela 25).
- 2 - (domyślne) do aplikacji klienta zwracane są informacje opisowe
zaliczane do poziomu 2 (patrz Tabela 25).
- 3 - do aplikacji klienta zwracane są informacje opisowe zaliczane do
poziomu 3 (patrz Tabela 25).
W poniższej tabeli przedstawiono listę pól, które tworzą informacje
opisowe zwracane przez serwer w odpowiedzi na żądanie przygotowania lub opisu. Pola
te pogrupowano w poziomy, a parametr konfiguracyjny interfejsu CLI/ODBC
DescribeOutputLevel steruje numerem poziomu informacji, których
żąda sterownik CLI.
Uwaga:
Niektóre serwery DB2 nie obsługują wszystkich poziomów informacji opisowych.
Wszystkie poziomy informacji opisowych są obsługiwane przez następujące serwery DB2: DB2 Universal Database (UDB) dla systemów Linux, UNIX i Windows, wersja 8 i nowsze, DB2 UDB for z/OS, wersja 8 i nowsze oraz DB2 UDB for iSeries, wersja 5 wydanie 3 i nowsze. Wszystkie pozostałe
serwery DB2 obsługują tylko wartości 2 lub 0 parametru DescribeOutputLevel.
Tabela 25. Poziomy informacji opisowych.
Poziom 1 |
Poziom 2 |
Poziom 3 |
SQL_DESC_COUNT
SQL_COLUMN_COUNT
SQL_DESC_TYPE
SQL_DESC_CONCISE_TYPE
SQL_COLUMN_LENGTH
SQL_DESC_OCTET_LENGTH
SQL_DESC_LENGTH
SQL_DESC_PRECISION
SQL_COLUMN_PRECISION
SQL_DESC_SCALE
SQL_COLUMN_SCALE
SQL_DESC_DISPLAY_SIZE
SQL_DESC_NULLABLE
SQL_COLUMN_NULLABLE
SQL_DESC_UNSIGNED
SQL_DESC_SEARCHABLE
SQL_DESC_LITERAL_SUFFIX
SQL_DESC_LITERAL_PREFIX
SQL_DESC_CASE_SENSITIVE
SQL_DESC_FIXED_PREC_SCALE |
wszystkie pola poziomu 1
oraz:
SQL_DESC_NAME
SQL_DESC_LABEL
SQL_COLUMN_NAME
SQL_DESC_UNNAMED
SQL_DESC_TYPE_NAME
SQL_DESC_DISTINCT_TYPE
SQL_DESC_REFERENCE_TYPE
SQL_DESC_STRUCTURED_TYPE
SQL_DESC_USER_TYPE
SQL_DESC_LOCAL_TYPE_NAME
SQL_DESC_USER_DEFINED_
TYPE_CODE |
wszystkie pola poziomów 1,
2 oraz:
SQL_DESC_BASE_COLUMN_NAME
SQL_DESC_UPDATABLE
SQL_DESC_AUTO_UNIQUE_
VALUE
SQL_DESC_SCHEMA_NAME
SQL_DESC_CATALOG_NAME
SQL_DESC_TABLE_NAME
SQL_DESC_BASE_TABLE_NAME |
[ Początek strony |Poprzednia strona | Następna strona | Spis treści ]