Wstawianie danych do tabela Valued parametry
The SQL Server Native klient OLE DB dostawca supports two models for the consumer to specify data for tabela valued parameter rows: model wypychanie i ściągać modelu. Brak próbki dostępne pokazujący model ściągać.Aby uzyskać więcej informacji zobaczConsiderations for Installing SQL Server Samples and Sample Databases.
Uwaga
Kolumna wartości tabela parametr musi mieć inne niż domyślne wartości wszystkich wierszy albo wartości domyślne wszystkich wierszy.Nie jest możliwe wartości domyślne w niektóre wiersze, a innych nie.W związku z tym w powiązaniach wycenione tabela parametru wartości stanu tylko dozwolone dla parametru wartości w tabela zestaw wierszy kolumna danych są DBSTATUS_S_ISNULL i DBSTATUS_S_OK.DBSTATUS_S_DEFAULT spowoduje błąd, a wartość stanu związanego zostanie ustawiony na DBSTATUS_E_BADSTATUS.
Umieść modelu (ładuje wszystkie dane Paremeter Valued tabela w pamięci)
Model wypychanie jest podobne do korzystania z zestawów parametrów (to znaczy DBPARAMS parametru w ICommand::Execute). Model wypychanie jest używane jedynie wtedy, gdy parametr wycenione tabela zestaw wierszy obiekty są używane bez dostosowane wykonania IRowset interfejsy. Model wypychanie jest zalecana, jeśli liczba zestaw wierszy w zestawie zestaw wierszy parametru wartości w tabela jest niewielka, a nie oczekuje się umieszczanie ciśnienia nadmierne pamięci w aplikacji.Jest to prostsze niż model ściągać, ponieważ nie wymaga więcej funkcji z aplikacji konsumenta od wersji, która jest aktualnie często w typowych aplikacji baz danych OLE.
Konsument powinien dostarczyć wszystkich danych parametru wartości w tabela dostawca przed wykonaniem polecenia.Aby dostarczyć dane, konsument wypełnienie obiektu zestawu zestaw wierszy wycenione tabela parametr dla każdego parametru wartości w tabela.Parametr wycenione tabela wierszy obiektu zestaw wierszy umożliwia uzyskanie dostępu wstawianie, ustaw i usuwanie operacji, które konsumenta użyje do operowania na danych parametru wartości w tabela.Dostawca będzie pobierać dane z tego parametru wartości tabela obiektu zestawu zestaw wierszy na wykonanie czas.
Gdy obiekt zestawu zestaw wierszy parametru wartości w tabela jest dostarczany do konsumenta, może przetwarzać w konsumenta jako obiekt zestawu zestaw wierszy.Konsument może uzyskać informacji o typie każdego kolumna (typ, maksymalnej długości, precyzji i skali) przy użyciu IColumnsInfo::GetColumnInfo lub IColumnsRowset::GetColumnsRowset Metoda interfejs. Konsument tworzy akcesora, aby określić powiązań danych.Następnym krokiem jest wstawienie zestaw wierszy danych do zestawu zestaw wierszy parametru wartości w tabela.This can be done by using IRowsetChange::InsertRow.IRowsetChange::SetData or IRowsetChange::DeleteRows can also be used on the table-valued parameter rowset object if you have to manipulate the data.Parametr wycenione tabela zestawu zestaw wierszy obiekty są zliczane, podobne do obiektów strumienia odwołania.
Jeśli IColumnsRowset::GetColumnsRowset jest używany, będzie kolejne wywołania IRowset::GetNextRows, IRowset::GetData, a IRowset::ReleaseRows metody obiektu zestawu zestaw wierszy kolumn wynikowych.
Po SQL Server Macierzysta klient dostawca OLE DB rozpoczyna się wykonywanie polecenia, wartości parametrów wycenione tabela będą pobierane z tego parametru wartości w tabela zestaw wierszy obiektu i wysyłane do serwera.
Model wypychanie wymaga minimalnych pracy przez konsumenta, ale wykorzystuje więcej pamięci niż model ściągać, ponieważ wszystkie dane parametru wartości w tabela nie ma znajdować się w pamięci w czasie wykonywania.
Wyciągnij modelu (otrzymywanie Valued tabela danych parametru na żądanie od konsumenta)
Model ściągać jest przydatne w przypadku dwóch scenariuszy:
Aby wiersze strumienia.
Jeśli zestawu zestaw wierszy od innego dostawca jest używana jako wartość parametru wartości w tabela.
W modelu ściągać konsumenta dostarcza dane na żądanie do dostawca.Tej metody należy użyć, jeśli aplikacja ma wiele wstawienia danych, a dostęp do pamięci nadmierne spowodowałoby parametru wartości w tabela zestaw wierszy danych w pamięci.Jeśli używane są wielu dostawców OLE DB, model ściągać konsumenta umożliwia konsumenta do zapewnienia dowolny obiekt zestawu zestaw wierszy jako wartość parametru wartości w tabela.
Aby korzystać z modelu ściągać, konsumentów konieczne podanie realizacji obiektu zestawu zestaw wierszy.Podczas korzystania z modelu ściągać z parametru wartości w tabela zestaw wierszy (CLSID_ROWSET_TVP), konsument jest wymagany do agregowania obiekt zestawu zestaw wierszy wycenione tabela parametr, który dostawca udostępnia za pośrednictwem ITableDefinitionWithConstraints::CreateTableWithConstraints Metoda lub IOpenRowset::OpenRowset Metoda. Obiekt konsumenta tylko powinien zastąpić implementacji interfejs IRowset.Należy zastąpić następujące funkcje:
IRowset::GetNextRows
IRowset::AddRefRows
IRowset::GetData
IRowset::ReleaseRows
IRowset::RestartPosition
SQL Server Macierzysta klient dostawca OLE DB odczyta co najmniej jeden wiersz w czas od konsumenta obiektu zestawu zestaw wierszy do obsługi przesyłania strumieniowego zachowanie wartości w tabela Parameters.Na przykład użytkownik może mieć parametru wartości tabela danych zestawu zestaw wierszy na dysku (nie w pamięci) i może implementować funkcji do odczytu danych z dysku, gdy jest to wymagane przez SQL Server Macierzysta klient dostawca OLE DB.
Konsument przekaże jego format danych SQL Server Macierzysta klient dostawca OLE DB przy użyciu IAccessor::CreateAccessor wartości tabela parametr obiektu zestawu zestaw wierszy. Podczas odczytywania danych z buforu konsumenta, dostawca sprawdza, czy są dostępne za pośrednictwem co najmniej jeden metoda dostępu uchwyt wszystkie kolumny zapisu i innych niż domyślne i używa odpowiednich dojść do odczytywania danych kolumn.Aby uniknąć niejednoznaczności, powinny być odpowiedniooci jeden-do-jednego między kolumna parametru wartości w tabela zestaw wierszy i wiązanie.Powiązania zduplikowane do tej samej kolumna spowoduje błąd.Ponadto każdy metoda dostępu powinny mieć iOrdinal element członkowski członkowski DBBindings w sekwencji. Będzie tak wiele połączeń w celu IRowset::GetData jak liczba Akcesory wierszu i kolejność połączeń będzie się opierał w celu o iOrdinal wartość z niższych do wyższych wartości.
Dostawca powinien zaimplementować większość interfejsów, udostępniane przez wartości tabela parametr obiektu zestawu zestaw wierszy.Konsument wykona obiektu zestawu zestaw wierszy z interfejsów minimalny)IRowset). Z powodu niewidomych agregacja pozostałe interfejsy obiektu obowiązkowe zestawu zestaw wierszy będą wykonywane przez wartości tabela parametr obiektu zestawu zestaw wierszy.
Dla każdego innego obiektu zestawu zestaw wierszy, takie jak obiekty zestawu zestaw wierszy dla dostawca OLE DB dostarczone przez konsumenta zestawu zestaw wierszy musi implementować wszystkie interfejsy wymagane zestawu zestaw wierszy obiektu zgodnie ze specyfikacją OLE DB.
W czasie wykonywania, SQL Server Macierzysta klient dostawca OLE DB będzie wywołania zwrotnego do obiektu zestawu zestaw wierszy, aby pobrać wiersze i odczytu danych kolumna.