OdbcCommand.CommandText Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Veri kaynağında yürütülecek SQL deyimini veya saklı yordamı alır veya ayarlar.
public:
virtual property System::String ^ CommandText { System::String ^ get(); void set(System::String ^ value); };
public:
property System::String ^ CommandText { System::String ^ get(); void set(System::String ^ value); };
public override string CommandText { get; set; }
public string CommandText { get; set; }
member this.CommandText : string with get, set
Public Overrides Property CommandText As String
Public Property CommandText As String
Özellik Değeri
Yürütülecek SQL deyimi veya saklı yordam. Varsayılan değer boş bir dizedir ("").
Uygulamalar
Açıklamalar
CommandType özelliği olarak StoredProcedure
CommandText ayarlandığında, özellik standart ODBC saklı yordam kaçış dizileri kullanılarak ayarlanmalıdır.
CommandText saklı yordamın adına ayarlanması, diğer .NET Framework veri sağlayıcıları için olduğu gibi çalışmaz.
Dış birleşimler ve skaler işlev çağrıları gibi birçok dil özelliği genellikle veri kaynakları tarafından uygulanır. Bu özelliklerin söz dizimi bile genellikle veri kaynağına özgüdür. Bu nedenle ODBC, aşağıdaki dil özellikleri için standart söz dizimi içeren kaçış dizilerini tanımlar:
Tarih, saat, zaman damgası ve tarih saat aralığı değişmez değerleri
Sayısal, dize ve veri türü dönüştürme işlevleri gibi skaler işlevler
LIKE koşulu kaçış karakteri
Dış birleşimler
Yordam çağrıları
ODBC tarafından kullanılan kaçış dizisi aşağıdaki gibidir:
{extension}
Bu kaçış dizisi ODBC sürücüleri tarafından tanınır ve ayrıştırılır. Daha sonra tüm kaçış dizilerini veri kaynağına özgü dil bilgisi ile değiştirirler.
Yordam, veri kaynağında depolanan yürütülebilir bir nesnedir. Genellikle, önceden derlenmiş bir veya daha fazla SQL deyimidir. Bir yordamı çağırmak için kaçış dizisi şudur:
{[?=]call procedure-name[([parameter][,[parameter]]...)]}
burada procedure-name
bir yordamın adını belirtir ve parameter
bir yordam parametresi belirtir.
Komut, Execute yöntemlerinden birini (örneğin, ExecuteReader veya ExecuteNonQuery) çağırdığınızda bu saklı yordamı yürütür.
Geçerli bağlantı bir yürütme veya getirme işlemi gerçekleştiriyorsa , CommandType ve CommandText özelliklerini ayarlayamazsınızConnection.
ODBC.NET Sağlayıcısı, bir SQL deyimine parametre geçirmek için adlandırılmış parametreleri veya olarak CommandType ayarlandığında Text
tarafından çağrılan saklı OdbcCommand yordamı desteklemez. Bu durumda soru işareti (?) yer tutucusu kullanılmalıdır. Örnek:
SELECT * FROM Customers WHERE CustomerID = ?
Bu nedenle, nesnelerin öğesine OdbcParameterCollection eklenme sırası OdbcParameter doğrudan parametresi için soru işareti yer tutucusunun konumuna karşılık gelir.
Bir parametre null değer içeriyorsa, ODBC için .NET Framework Veri Sağlayıcısı bu parametreyi bağlamaya devam eder, ancak null değer yerine SQL_DEFAULT_PARAM kullanılarak tanımlanmışsa varsayılan parametreyi kullanır. Örneğin, :OdbcParameterCollection
{1, null, 2}
özelliğine geçirildi CommandText :
{call sp(?, ?, ?)}
odbc için .NET Framework Veri Sağlayıcısının ilk parametreyi 1 değerine, üçüncü parametreyi 2 değerine ve ikinci parametreyi SQL_DEFAULT_PARAM olarak bağlamasına neden olur. Ancak, bu davranış sürücüye bağlıdır. Sürücü bu işlevselliği desteklemiyorsa, parametre için bir değer geçirmeyin. Örneğin, kullanın OdbcParameterCollection:
{1, 2}
ve özelliğini aşağıdakine ayarlayın CommandText :
{call sp(?, null, ?)}
Not
Bir parametre atlanırsa, bunu diğer parametrelerden sınırlandıran virgül görünmeye devam etmelidir. Bir giriş veya giriş/çıkış parametresi atlanırsa, yordam parametrenin varsayılan değerini kullanır. Giriş veya giriş/çıkış parametresinin varsayılan değerini belirtmenin bir diğer yolu da parametreye bağlı uzunluk/gösterge arabelleğinin değerini SQL_DEFAULT_PARAM olarak ayarlamaktır.