Aracılığıyla paylaş


İfade İşleyicileri

Deyimin sql deyimi olarak düşünülmesi en kolayıdır; örneğin SELECT * FROM Employee. Ancak, deyimi yalnızca bir SQL deyiminden fazlasıdır; deyimi tarafından oluşturulan sonuç kümeleri ve deyiminin yürütülmesinde kullanılan parametreler gibi bu SQL deyimiyle ilişkili tüm bilgilerden oluşur. Bir deyiminin uygulama tanımlı bir SQL deyimine sahip olması bile gerekmez. Örneğin, SQLTable'lar gibi bir katalog işlevi bir deyim üzerinde yürütüldüğünde, tablo adlarının listesini döndüren önceden tanımlanmış bir SQL deyimi yürütür.

Her deyim bir deyim tanıtıcısı tarafından tanımlanır. Bir deyim tek bir bağlantıyla ilişkilendirilir ve bu bağlantıda birden çok deyim olabilir. Bazı sürücüler, destekledikleri etkin deyimlerin sayısını sınırlar; SQLGetInfo'daki SQL_MAX_CONCURRENT_ACTIVITIES seçeneği, bir sürücünün tek bir bağlantıda kaç etkin deyimi desteklediğini belirtir. Bir deyim, bekleyen sonuçlar varsa, yani sonuçlar bir sonuç kümesi veya INSERT, UPDATE, ya da DELETE deyimleriyle etkilenen satırların sayısı ise ya da veriler SQLPutData'ya birden çok çağrıyla gönderiliyorsa aktif olarak tanımlanır.

ODBC uygulayan bir kod parçası içinde (Driver Manager veya bir sürücü), ifade tanıtıcısı, ifade bilgilerini içeren bir yapıyı tanımlar.

  • Deyimin durumu

  • Anlık deyim düzeyi tanılama

  • Deyimin parametrelerine ve sonuç kümesi sütunlarına bağlı uygulama değişkenlerinin adresleri

  • Her deyim özniteliğinin geçerli ayarları

İfade tanıtıcıları çoğu ODBC işlevinde kullanılır. Özellikle, parametreler ve sonuç kümesi sütunlarını (SQLBindParameter ve SQLBindCol) bağlamak, deyimleri hazırlamak ve yürütmek (SQLPrepare, SQLExecute ve SQLExecDirect), meta verileri almak (SQLColAttribute ve SQLDescribeCol), sonuçları getirmek (SQLFetch) ve tanılamaları (SQLGetDiagField ve SQLGetDiagRec) almak için işlevlerde kullanılırlar. Ayrıca katalog işlevlerinde (SQLColumns, SQLTables vb.) ve bir dizi diğer işlevde de kullanılırlar.

Açıklama tutamaçları SQLAllocHandle ile tahsis edilir ve SQLFreeHandle ile serbest bırakılır.