Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytický platformový systém (PDW)
SQL databáze v Microsoft Fabric
Parametry jsou označeny v textu příkazů znakem otazníku. Například následující SQL příkaz je označen pro jeden vstupní parametr:
{call SalesByCategory('Produce', ?)}
Pro zlepšení výkonu snížením síťového provozu neodvozuje OLE DB Driver pro SQL Server automaticky informace o parametrech, pokud není před vykonáním příkazu vyvolán ICommandWithParameters::GetParameterInfo nebo ICommandPrepare::P repare . To znamená, že ovladač OLE DB pro SQL Server automaticky ne:
Ověřte správnost datového typu specifikovaného pomocí ICommandWithParameters::SetParameterInfo.
Mapování z DBTYPU specifikovaného v informacích o vazbě přístupového modulu na správný datový typ SQL Server pro daný parametr.
Aplikace mohou obdržet možné chyby nebo ztrátu přesnosti u kterékoli z těchto metod, pokud specifikují datové typy, které nejsou kompatibilní s datovým typem SQL Server daného parametru.
Aby k tomu nedošlo, měla by žádost následující:
Ujistěte se, že pwszDataSourceType odpovídá datovému typu SQL Server pro parametr při tvrdém kódování ICommandWithParameters::SetParameterInfo.
Ujistěte se, že hodnota DBTYPE vázaná na parametr je stejného typu jako datový typ SQL Serveru pro daný parametr, pokud je accessor natvrdo kódován.
Naprogramujte aplikaci tak, aby volala ICommandWithParameters::GetParameterInfo , aby poskytovatel mohl dynamicky získat datové typy SQL Server parametrů. Všimněte si, že to způsobuje další síťovou cestu zpět na server.
Poznámka:
Poskytovatel nepodporuje volání ICommandWithParameters::GetParameterInfo pro jakýkoli SQL Server UPDATE nebo DELETE příkaz obsahující klauzuli FROM; pro libovolný SQL příkaz závislý na poddotazu obsahujícím parametry; pro SQL příkazy obsahující parametrické markery v obou výrazech srovnávacího nebo kvantifikovaného predikátu; nebo dotazy, kde jeden z parametrů je parametrem funkce. Při zpracování sady SQL příkazů poskytovatel také nepodporuje volání ICommandWithParameters::GetParameterInfo pro parametry markerů v příkazech po prvním příkazu v dávce. Komentáře (/* */) nejsou povoleny v příkazu Transact-SQL.
Ovladač OLE DB pro SQL Server podporuje vstupní parametry v příkazech SQL příkazů. U příkazů volaných procedur podporuje ovladač OLE DB pro SQL Server vstupní, výstupní a vstupní/výstupní parametry. Hodnoty výstupních parametrů jsou aplikaci vráceny buď při spuštění (pouze pokud nejsou vráceny žádné řádkové sady), nebo když jsou všechny vrácené řádky aplikací vyčerpány. Pro zajištění platnosti vrácených hodnot použijte IMultipleResults k vynucení spotřeby řádků.
Názvy parametrů uložených procedur nemusí být ve struktuře DBPARAMBINDINFO specifikovány. Použijte NULL pro hodnotu člena pwszName , abyste označili, že ovladač OLE DB pro SQL Server by měl ignorovat název parametru a používat pouze ordinál specifikovaný v členu rgParamOrdinals v ICommandWithParameters::SetParameterInfo. Pokud text příkazu obsahuje jak pojmenované, tak nepojmenované parametry, musí být všechny nepojmenované parametry zadány před jakýmikoli pojmenovanými parametry.
Pokud je specifikován název parametru uložené procedury, ovladač OLE DB pro SQL Server zkontroluje jeho platnost. Ovladač OLE DB pro SQL Server vrací chybu, když uživatel obdrží chybný název parametru.
Poznámka:
Aby bylo možné umožnit podporu SQL Server XML a uživatelsky definovaných typů (UDT), implementuje OLE DB Driver pro SQL Server nové rozhraní ISSCommandWithParameters .