| Termin | Definicja |
|---|---|
| EXECUTE na procedurze | EXECUTE na procedurze to operacja wywołania wcześniej zdefiniowanego bloku logiki bazodanowej z podanymi parametrami. Wywołanie procedury jako operacja wykonawczaEXECUTE na procedurze oznacza uruchomienie wcześniej zdefiniowanego obiektu bazodanowego, który zawiera zapisany zestaw instrukcji. Procedura może przyjmować parametry wejściowe, wykonywać operacje odczytu lub modyfikacji danych, zwracać parametry wyjściowe, kod zakończenia albo zestaw wyników. Samo wywołanie nie definiuje logiki procedury od początku. Odwołuje się do procedury zapisanej wcześniej w konkretnej bazie danych lub schemacie. W praktyce procedura działa w kontekście aktualnej sesji użytkownika, jego uprawnień oraz ustawień połączenia z bazą. Znaczenie mają między innymi wybrana baza, schemat, sposób obsługi transakcji i wartości przekazane w parametrach. Jeżeli procedura wymaga parametru, a wywołanie go pomija lub przekazuje wartość niezgodnego typu, silnik może przerwać wykonanie przed rozpoczęciem właściwej logiki. Błąd może również wynikać z braku uprawnienia do uruchamiania procedury albo z braku dostępu do tabel i innych obiektów używanych przez procedurę. Składnia EXECUTE zależna od silnika bazy danychNie istnieje jedna identyczna składnia EXECUTE obowiązująca we wszystkich systemach bazodanowych. W Microsoft SQL Server procedurę składowaną można wywołać między innymi za pomocą instrukcji W innych silnikach słowo EXECUTE może mieć inne zastosowanie. PostgreSQL używa instrukcji Parametry, transakcje i wynik wykonaniaParametry procedury przekazują dane potrzebne do wykonania zapisanej logiki. Mogą reprezentować tekst, liczbę, datę, identyfikator rekordu lub inną wartość obsługiwaną przez dany silnik. Bezpieczne wywołanie powinno przekazywać wartości jako parametry, a nie przez niekontrolowane sklejanie tekstu SQL. Ma to znaczenie zarówno dla poprawnej konwersji typów, jak i dla ograniczenia ryzyka wstrzyknięcia SQL w aplikacjach, które pobierają dane od użytkownika. Wywołanie procedury może odbywać się wewnątrz transakcji. Wtedy skutki operacji zależą od tego, czy transakcja zostanie zatwierdzona, wycofana lub zakończy się automatycznym wycofaniem po błędzie. Nie każda procedura zwraca tabelę wynikową. Jedna może zmienić dane bez zwracania wierszy, inna może zwrócić zestaw rekordów, a jeszcze inna może przekazać kod statusu albo wartości przez parametry wyjściowe. Przy diagnozie trzeba więc sprawdzić nie tylko komunikat błędu, ale także oczekiwany kontrakt procedury: nazwy i typy parametrów, wymagane wartości, kolejność operacji oraz sposób odczytu wyniku przez aplikację. Rozpoznawanie problemów przy uruchamianiu proceduryJeżeli EXECUTE na procedurze kończy się błędem, pierwszym krokiem jest potwierdzenie, że wywoływany obiekt istnieje w używanej bazie i schemacie. Następnie należy porównać deklarację parametrów z kodem aplikacji, sprawdzić typy danych oraz ustalić, czy połączenie korzysta z właściwego konta. Komunikat o braku obiektu może wskazywać na niewłaściwą bazę lub schemat, a komunikat o odmowie dostępu na brak uprawnienia do wykonania procedury albo obiektów zależnych. Błąd konwersji zwykle oznacza niezgodność wartości przekazanej przez aplikację z typem oczekiwanym przez procedurę. W komputerze użytkownika problem może być widoczny jako błąd programu, brak danych na ekranie, niezatwierdzona operacja albo długie oczekiwanie na odpowiedź. Nie musi to oznaczać awarii sprzętu. Przy diagnostyce laptopa lub komputera PC warto rozdzielić błąd połączenia, błąd aplikacji i błąd samego silnika bazy danych, a następnie przeanalizować log aplikacji oraz pełny komunikat zwrócony przez serwer. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów stacjonarnych PC, w tym diagnostyką problemów z oprogramowaniem uruchamianym na tych urządzeniach. |