Udostępnij za pośrednictwem


Parametry polecenia

Parametry są oznaczone w tekst polecenia, znak zapytania.Na przykład poniższa instrukcja języka SQL jest oznaczony do jednego parametru wejściowego:

{call SalesByCategory('Produce', ?)}

Aby zwiększyć wydajność przez zmniejszenie ruchu w sieci, SQL Server Macierzystego dostawca klient OLE DB nie automatycznie pochodzi informacje o parametrach chyba że ICommandWithParameters::GetParameterInfo or ICommandPrepare::Prepare jest wywoływane przed wykonaniem polecenia.Oznacza to, że SQL Server Macierzystego dostawca klient OLE DB jest automatycznie:

  • Sprawdź poprawność typu danych z ICommandWithParameters::SetParameterInfo.

  • Mapowanie z DBTYPE, określone w metoda dostępu wiążące informacje do właściwego SQL Server Typ danych parametru.

Aplikacje będzie otrzymywać ewentualne błędy lub utratę precyzji z jednej z tych metod, jeśli określają typy danych, które nie są zgodne z SQL Server Typ danych parametru.

W celu zapewnienia tak nie jest, aplikacja powinna:

  • Upewnić się, że pwszDataSourceType pasuje doSQL Server Typ danych parametru, jeśli trwałe kodowanie ICommandWithParameters::SetParameterInfo.

  • Upewnij się, że wartość DBTYPE jest związany z parametrem jest tego samego typu jak SQL Server dla parametru typu danych, jeśli trwałe kodowanie metoda dostępu.

  • Kod aplikacji na wywoływanie ICommandWithParameters::GetParameterInfo tak, aby dostawca może otrzymać SQL Server typy danych parametrów dynamicznie. Należy zauważyć, że to sprawia, że sieć dodatkowe zaokrąglone procesu do serwera.

Uwaga

Dostawca nie obsługuje telefonicznej ICommandWithParameters::GetParameterInfo for any SQL Server UPDATE lub DELETE instrukcja zawiera klauzulę FROM, w przypadku dowolnej instrukcja języka SQL, w zależności od podkwerenda zawierających parametry; dla programu SQL sprawozdania zawierające parametr znaczników danych w obu wyrażeń porównania, takie jak, lub wyliczone predykat; lub kwerendę, gdy jeden z parametrów jest parametr do funkcja. Podczas partia instrukcja SQL, dostawca nie obsługuje telefonicznej ICommandWithParameters::GetParameterInfo dla znaczników parametru w instrukcja po pierwszej instrukcja w instancji.Komentarze (/ * * /) nie są dozwolone w Transact-SQL polecenie.

The SQL Server Native klient OLE DB dostawca supports input parameters in SQL instrukcja commands. Na temat poleceń wywołanie procedury SQL Server Macierzystego dostawca klient OLE DB obsługuje dane wejściowe, wyjściowe i parametry wejścia/wyjścia. Wartości parametrów dane wyjściowe są zwracane do aplikacji na wykonanie (tylko wtedy, gdy nie ma żadnych wierszy zwracanych) lub po wszystkich zestawów wierszy są wyczerpane, przez aplikację.Aby mieć pewność, że zwracane wartości są prawidłowe, IMultipleResults wymusić zużycia zestawu zestaw wierszy.

Nazwy parametrów procedur przechowywanych nie musi być określona w strukturze DBPARAMBINDINFO.Użyj wartości NULL dla wartości pwszName Wskazuje, że element członkowski członkowski SQL Server Macierzystego dostawca klient OLE DB należy zignorować nazwę parametru i używać tylko liczba porządkowa określone w rgParamOrdinals element członkowski członkowskiICommandWithParameters::SetParameterInfo.Jeśli tekst polecenia zawiera zarówno nazwanych i nienazwanych parametrów, należy określić wszystkie parametry nienazwane przed wszystkie nazwane parametry.

Jeżeli określono nazwę parametru procedura przechowywana, SQL Server Macierzystego dostawca klient OLE DB sprawdza nazwę, aby upewnić się, że jest on prawidłowy. The SQL Server Native klient OLE DB dostawca returns an error when it receives an erroneous parameter name from the consumer.

Uwaga

Aby obsługa SQL Server XML i typów zdefiniowanych przez użytkownika (UDT), SQL Server Nowy implementuje macierzystego dostawca klient OLE DB ISSCommandWithParameters interfejs.

See Also

Concepts