Aracılığıyla paylaş


Bir saklı yordam çağırma

The SQL Server Native Client ODBC driver supports both the ODBC CALL escape sequence and the Transact-SQL EXECUTE statement for executing stored procedures; the ODBC CALL escape sequence is the preferred method.odbc sözdizimi kullanarak saklı yordamlar dönüş kodları almak bir uygulama sağlar ve SQL Server yerel istemci odbc sürücüsü kullanmak için optimize da bir protokol ilk olarak çalıştıran bilgisayarlar arasındaki (rpc) uzaktan yordam çağrılarını göndermek için geliştirilen SQL Server.rpc protokol bu parametre işleme çoğunu ortadan kaldırarak performansı artırır ve deyim sunucu üzerinde yapılan ayrıştırma.

Not

Ararken SQL Server saklı yordamlar odbc ile adlandırılmış parametreleri kullanarak (daha fazla bilgi için bkz: Bağlama Parametreler (adlandırılmış parametreleri) adıyla), parametre adları ile başlamalı '@' karakter.Bu, bir SQL Server belirli bir kısıtlama.The SQL Server Native Client ODBC driver enforces this restriction more strictly than the Microsoft Data Access Components (MDAC).

Bir yordamı çağırmak için odbc call çıkış sırası aşağıdaki gibidir:

{[?=]callprocedure_name[([parameter][,[parameter]]...)]}

Burada procedure_name bir yordamın adını belirtir ve parametresi yordam parametresi belirtir.Adlandırılmış parametreleri yalnızca odbc call çıkış sırasını kullanarak deyimler desteklenir.

Sıfır veya daha fazla parametre bir yordam olabilir.Bir değer döndürebilirsiniz (isteğe bağlı parametre işaretçisi tarafından belirtildiği şekilde? sözdizimi başlangıcında =).Parametre bir giriş veya bir giriş/çıkış parametresi, bir hazır bilgi ya da bir parametre işaretçisi olabilir.Parametresi, çıktı parametresi ise, çıkış bilinmediği için bir parametre işaretçisi olması gerekir.Parametre imleyicileri bağlı, ile SQLBindParameter yordam çağrısı önce deyim yürütülür.

Yordam çağrılarının giriş ve giriş/çıkış parametreleri kullanılmaz.Bir yordam parantezli ancak herhangi bir parametre olmadan çağrılırsa, ilk parametre için varsayılan değeri kullanmak için veri kaynak sürücüsü bildirir.Örneğin:

{call procedure_name**()**}

Yordamı herhangi bir parametre yoksa bile yordam başarısız olabilir.Bir yordam parantez olmadan çağrılırsa, sürücünün parametre değerlerini göndermez.Örneğin:

{call procedure_name}

Hazır yordam çağrılarının parametrelerinde giriş ve giriş/çıkış için belirtilebilir.Örneğin, beş giriş parametreleri InsertOrder yordam vardır.InsertOrder aşağıdaki çağrısına ilk parametresini atlar, ikinci parametre için bir hazır bilgi sağlar ve üçüncü, dördüncü ve beşinci parametre işaretçisi kullanır parametreleri.(Parametreler ardışık olarak değerinin 1 ile başlayarak numaralanır.)

{call InsertOrder(, 10, ?, ?, ?)}

Not parametre atlanırsa, diğer parametrelerden sınırlayan virgül hala görünmesi gerekir.Giriş veya giriş/çıkış parametresi atlanırsa, yordam parametresinin varsayılan değeri kullanır.Giriş veya giriş/çıkış parametresinin varsayılan değeri belirtmek için başka yolları olan küme arabellek uzunluğu/Gösterge değerinin ilişkili parametresi sql_default_param veya varsayılan anahtar sözcüğünü kullanın.

Giriş/çıkış parametre atlanırsa, veya bir sabit değer parametre için sağlanan, sürücü çıkış değeri atar.Benzer şekilde, parametre işaretçisi bir yordamın dönüş değeri atlanırsa, sürücü dönüş değeri atar.Son olarak, bir uygulama bir dönüş değeri parametresi için bir değer döndüren bir yordam belirtiyorsa, sürücü sql_null_data parametresine bağlı uzunluğu/göstergesi arabellek değerini ayarlar.

ARAMA ifadeleri sınırlayıcı

The SQL Server Native Client ODBC driver by default also supports a compatibility option specific to the ODBC { CALL } escape sequence.Sürücü tek bir çağrı ifadelerle kabul küme sınırlayan tüm saklı yordam adı çift tırnak işareti:

{ CALL "master.dbo.sp_who" }

Varsayılan olarak SQL Server yerel istemci odbc sürücüsü de ISO kuralları izleyin ve her tanımlayıcı çift tırnak işareti içine alın ÇAĞRISI ifadeleri kabul eder:

{ CALL "master"."dbo"."sp_who" }

Varsayılan ayarlarla, ancak çalıştırıldığında, SQL Server yerel istemci odbc sürücüsü desteklemiyor ya da kullanarak tırnak işaretli tanımlayıcı tanımlayıcıları yasal olarak ISO standardı. tarafından belirtilen olmayan karakterler içeren tanımlayıcıları ileÖrneğin, sürücü erişemez bir saklı yordam adlı "My.Proc" tırnak tanımlayıcıları kullanarak bir çağrı deyim ile:

{ CALL "MyDB"."MyOwner"."My.Proc" }

Bu deyim, bir sürücü yorumlanır:

{ CALL MyDB.MyOwner.My.Proc }

Sunucu bir hata harekete geçiren, bir bağlantılı sunucu adlı MyDB yok.

Tutucuda tanımlayıcıları kullanırken sorun yok, bu deyim doğru şekilde yorumlanır:

{ CALL [MyDB].[MyOwner].[My.Table] }

Ayrıca bkz.

Kavramlar