Aracılığıyla paylaş


SQLDescribeCol ve SQLColAttribute

SQLDescribeCol ve SQLColAttribute , sonuç kümesi meta verilerini almak için kullanılır. Bu iki işlev arasındaki fark, SQLDescribeCol'un her zaman aynı beş bilgi parçasını (sütunun adı, veri türü, hassasiyet, ölçek ve null atılabilirlik) döndürmesi iken, SQLColAttribute'un uygulama tarafından istenen tek bir bilgi parçasını döndürmesidir. Ancak SQLColAttribute sütunun büyük/küçük harf duyarlılığı, görüntü boyutu, güncelleştirilebilirlik ve aranabilirlik gibi çok daha zengin bir meta veri seçimi döndürebilir.

Özellikle de yalnızca veri görüntüleyen birçok uygulama, yalnızca SQLDescribeCol tarafından döndürülen meta verileri gerektirir. Bu uygulamalar için, bilgiler tek bir çağrıda döndürülür çünkü SQLDescribeCol kullanmak SQLColAttribute'tan daha hızlıdır. Diğer uygulamalar, özellikle de verileri güncelleştiren uygulamalar, SQLColAttribute tarafından döndürülen ek meta verileri gerektirir ve bu nedenle her iki işlevi de kullanır. Ayrıca , SQLColAttribute sürücüye özgü meta verileri destekler; Daha fazla bilgi için bkz. Driver-Specific Veri Türleri, Tanımlayıcı Türleri, Bilgi Türleri, Tanılama Türleri ve Öznitelikler.

Bir uygulama, bir deyim hazırlandıktan veya yürütüldükten sonra ve sonuç kümesi üzerindeki imleç kapatilmeden önce istediğiniz zaman sonuç kümesi meta verilerini alabilir. Çok az uygulama, deyimi hazırlandıktan sonra ve yürütülmeden önce sonuç kümesi meta verilerini gerektirir. Bazı veri kaynakları hazırlanmış deyimler için meta verileri döndüremediğinden ve bu özelliği sürücüde öykünmek genellikle yavaş bir işlem olduğundan, mümkünse uygulamalar deyimin yürütülmesinden sonra meta verileri almayı beklemelidir. Örneğin, sürücü bir SELECT deyiminin WHERE yan tümcesini WHERE 1 = 2 yan tümcesiyle değiştirip sonuç deyimini yürüterek sıfır satırlı bir sonuç kümesi oluşturabilir.

Meta verilerin veri kaynağından alınması genellikle pahalıdır. Bu nedenle, sürücüler sunucudan aldıkları tüm meta verileri önbelleğe almalı ve sonuç kümesinin üzerindeki imleç açık olduğu sürece bu meta verileri tutmalıdır. Ayrıca, uygulamalar yalnızca kesinlikle ihtiyaç duydukları meta verileri istemelidir.