Udostępnij za pośrednictwem


Wyniki przetwarzania (ODBC)

Po instrukcja języka SQL, przesyła aplikacji SQL Server Zwraca wszystkie dane wynikowe w postaci jednego lub kilku zestawów wyników. Zestaw wyników jest zbiór wierszy i kolumn, które spełniają kryteria kwerendy.Instrukcji SELECT, funkcje wykazu i niektórych procedur przechowywanych należy utworzyć zestaw wyników były dostępne dla aplikacji w formie tabeli.Jeśli wykonane instrukcja języka SQL jest procedura przechowywana, zadanie partia zawierających wiele poleceń, lub instrukcja SELECT zawierająca słowa kluczowe, takie jak COMPUTE lub COMPUTE BY będzie wiele zestawów wyników do przetworzenia.

Funkcji ODBC wykazu można również pobierać dane.Na przykład SQLColumns pobiera dane dotyczące kolumny w źródle danych.Te zestawy wyników może zawierać zero lub więcej wierszy.

Inne instrukcje SQL, takich jak GRANT i REVOKE, nie zwracają zestawów wyników.Dla tych instrukcja (kod powrotny z SQLExecute or SQLExecDirect jest zazwyczaj wskazuje tylko w instrukcja zakończyła się pomyślnie.

Każda instrukcja INSERT, UPDATE i DELETE zwraca zestaw wyników zawierający tylko liczbę wierszy, które wpływają na modyfikację.Ta odbywa się dostępne, gdy aplikacja wywołań SQLRowCount.ODBC 3. x aplikacje albo należy wywołać SQLRowCount pobrać zestaw wyników lub SQLMoreResults go anulować.Gdy aplikacja wykonuje partia lub procedury przechowywane zawierające wiele instrukcja INSERT, UPDATE lub DELETE zestaw wyników z każdej modyfikacji instrukcja muszą być przetwarzane przy użyciu SQLRowCount lub zostało anulowane za pomocą SQLMoreResults.Te liczniki mogą być anulowane przez tym ON NOCOUNT do zestaw instrukcja wsadowego lub procedura przechowywana.

Języka Transact-SQL zawiera instrukcję zestaw NOCOUNT.Gdy opcja NOCOUNT jest zestaw, program SQL Server nie zwraca liczbę wierszy, dotyczy instrukcja i SQLRowCount zwraca wartość 0.The SQL Server Native klient ODBC driver wersja introduces a driver-specific SQLGetStmtAttr option, SQL_SOPT_SS_NOCOUNT_STATUS, to report on whether the NOCOUNT option is on or off.Kiedykolwiek SQLRowCount zwraca wartość 0, aplikacji należy przetestować SQL_SOPT_SS_NOCOUNT_STATUS.Jeśli zwracany SQL_NC_ON, wartość 0 z SQLRowCount wskazuje tylko programu SQL Server nie zwrócił liczba wierszy.Jeśli zwracany jest SQL_NC_OFF, oznacza to, że NOCOUNT jest wyłączona, a wartość 0 z SQLRowCount wskazuje, że instrukcja nie wpływa na wszystkie wiersze.Aplikacje nie powinny wyświetlać wartość SQLRowCount po SQL_SOPT_SS_NOCOUNT_STATUS SQL_NC_OFF.Dużych partii lub procedury przechowywane mogą zawierać wiele instrukcji zestaw NOCOUNT tak, aby programiści nie może przyjąć SQL_SOPT_SS_NOCOUNT_STATUS pozostaje stała.Opcja powinna być testowana za każdym razem SQLRowCount zwraca wartość 0.

Kilka innych instrukcji języka Transact-SQL zwraca swoje dane w wiadomości zamiast zestawów wyników.Gdy SQL Server Macierzysty sterownik ODBC klient odbiera takie wiadomości, zwraca SQL_SUCCESS_WITH_INFO, aby umożliwić aplikacji, sprawdzić, czy komunikaty informacyjne są dostępne. Aplikacja może następnie wywołać. SQLGetDiagRec w celu pobrania tych komunikatów.The Transact-SQL statements that work this way are:

  • DBCC

  • zestaw plan wykonania (dostępny w starszych wersjach programu SQL Server)

  • zestaw STATYSTYKI

  • DRUKOWANIE

  • RAISERROR

The SQL Server Native klient ODBC driver returns SQL_ERROR on a RAISERROR with a severity of 11 or higher. Jeśli ważności RAISERROR jest 19 lub nowszej, również zostanie usunięte połączenie.

Wynikiem przetwarzania zestawów z instrukcja języka SQL, aplikacji:

  • Określa cechy charakterystyczne zestaw wyników.

  • Powiązanie kolumn do zmiennych programu.

  • Pobiera pojedynczą wartość, jest cały wiersz wartości lub wiele wierszy zawierających wartości.

  • Testy, aby sprawdzić, czy nie ma więcej zestawów wyników, a jeśli tak, pętli z powrotem do określania właściwości nowego zestaw wyników.

Proces pobierania wierszy ze urządzenie źródłowe danych i zwracanie ich do aplikacji, jest nazywany pobieranie.

Trwa pobieranie COMPUTE i zestawy COMPUTE BY wynik

Klauzula COMPUTE BY generuje sum częściowych w ramach zestaw wyników; klauzuli COMPUTE generuje łącznie na końcu zestaw wyników.The SQL Server Native klient ODBC driver presents these totals and subtotals to the calling application by generating multiple result sets for each SELECT instrukcja.

W poniższym przykładzie użyto COMPUTE BY do generowania sum częściowych i COMPUTE do generowania sumy:

SELECT Title = CONVERT(char(20), title), type, price, advance
FROM Titles
WHERE ytd_sales IS NOT NULL
  AND type LIKE '%cook%'
ORDER BY type DESC
COMPUTE AVG(price), SUM(advance) BY type
COMPUTE SUM(price), SUM(advance)

Instrukcje te powodują obliczenia sum częściowych dla średniej ceny i suma zaliczek dla każdego typu księgi i spowodować, że ostateczny suma danych Cena i wcześniejsze.Sterownik stanowi pierwszy zestaw wyników wierszy z książek o pierwszego typu książki.Następnie daje sekundy zestaw wyników dwóch COMPUTE BY kolumnami AVG(price) i SUM(advance) dla to pierwszy zbiór książek.A następnie daje trzeciego zestaw wyników dla następnej grupy książek i czwarty zestaw wyników z COMPUTE BY sumy pośrednie dla tej grupy.Sterownik przeplata tych zestawów wyników, dopóki nie daje wynik końcowy ustawiana sumy dla SUM(price) COMPUTE SUM(advance) klauzula.