Parametry polecenia
Parametry są oznaczone w tekst polecenia znak zapytania.Na przykład poniższa instrukcja języka SQL jest oznaczony dla jednego parametru wejściowego:
{call SalesByCategory('Produce', ?)}
Aby zwiększyć wydajność przez zmniejszenie ruchu w sieci, SQL Server macierzystego klienta dostawca OLE DB automatycznie pobrać informacji, chyba że ICommandWithParameters::GetParameterInfo lub ICommandPrepare::Prepare jest wywoływana przed wykonaniem polecenia.Oznacza to, że SQL Server macierzystego klienta dostawca OLE DB jest automatycznie:
Sprawdzenia poprawności typu danych z ICommandWithParameters::SetParameterInfo.
Mapa z DBTYPE określone w metoda dostępu powiązanie informacji na prawidłowe SQL Server Typ danych parametru.
Aplikacje otrzyma ewentualne błędy lub utraty dokładności z jednej z tych metod, jeśli typy danych, które nie są zgodne z SQL Server Typ danych parametru.
W celu zapewnienia, tak nie jest, aplikacja powinna:
Upewnij się, że pwszDataSourceType odpowiada SQL Server Typ danych dla parametru, jeśli trwałe kodowanie ICommandWithParameters::SetParameterInfo.
Zapewnienia, że wartość DBTYPE parametru związany jest tego samego typu co SQL Server Typ danych dla parametru, jeśli trwałe kodowanie metoda dostępu.
Kod aplikacji na wywoływanie ICommandWithParameters::GetParameterInfo tak, aby dostawca można uzyskać SQL Server typy danych parametrów dynamicznie.Uwaga, powoduje to dodatkowe sieci do procesu serwera.
Ostrzeżenie
Dostawca nie obsługuje telefonicznej ICommandWithParameters::GetParameterInfo dla każdego SQL Server Instrukcja UPDATE lub DELETE, zawierająca od klauzula; w odniesieniu do wszelkich instrukcja języka SQL, w zależności od podzapytanie zawierających parametry; dla instrukcji SQL zawierających znaczniki parametr oba wyrażenia porównania, jak lub określić ilościowo predykat; lub kwerend, gdzie jeden z parametrów jest parametr funkcja.Podczas partia instrukcja SQL, dostawca nie obsługuje również telefonicznej ICommandWithParameters::GetParameterInfo dla parametru znaczników w sprawozdaniu po pierwszej instrukcja w partia.Komentarze (/ * * /) nie są dozwolone w Transact-SQL polecenia.
SQL Server Macierzystego klienta dostawca OLE DB obsługuje parametry wejściowe polecenia instrukcja języka SQL.Na polecenia wywołanie procedury SQL Server macierzystego klienta dostawca OLE DB obsługuje wejście, wyjście i parametry wejściowe i wyjściowe.Wartości parametrów dane wyjściowe są zwracane do aplikacji na wykonanie (tylko wtedy, gdy nie ma żadnych zestawów wierszy zwracanych) lub wszystkie zwrócone zestawów wierszy wyczerpania przez aplikację.W celu zapewnienia, że wartości zwracane są prawidłowe, należy użyć IMultipleResults wymusić zużycia zestawu zestaw wierszy.
Nazwy procedura składowana parametry nie musi być określony w strukturze DBPARAMBINDINFO.Użyj wartości NULL pwszName Członkowskie, aby wskazać, że SQL Server macierzystym klienta dostawca OLE DB należy zignorować nazwę parametru i używać tylko liczba porządkowa określone w rgParamOrdinals element członkowski ICommandWithParameters::SetParameterInfo.Jeśli tekst polecenia zawiera nazwanych i nienazwanych parametrów, wszystkie parametry nienazwane musi być określony przed nazwanych parametrów.
Jeżeli określono nazwę parametru procedura składowana, SQL Server macierzystego klienta dostawca OLE DB sprawdza, czy nazwa w celu zapewnienia prawidłowego. SQL Server Macierzystego klienta dostawca OLE DB zwraca błąd po odebraniu Nazwa parametru błędnych od konsumenta.
Ostrzeżenie
Udostępnić obsługę SQL Server XML i typy zdefiniowane przez użytkownika (UDT) SQL Server macierzystego klienta dostawca OLE DB implementuje nowy ISSCommandWithParameters interfejs.