Genişletilmiş oluşturma yordamları depolanan

Önemli notÖnemli

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmayın ve bu özelliği kullanmakta olan uygulamaları mümkün olduğunca erken bir zamanda değiştirin.clr tümleştirme kullanın.

Genişletilmiş saklı yordam, bir prototip ile bir fonksiyonu şudur:

SRVRETCODE xp_extendedProcName **(**SRVPROC *);

Önekini kullanarak xp_opsiyoneldir. Genişletilmiş saklı yordam adları harf olarak başvurulduğunda duyarlı Transact-SQLne olursa olsun kod deyimleri sayfa/sıralama düzeni sunucuda yüklü. Ne zaman bir dll dosyasını oluşturun:

  • Bir giriş noktası gerekli ise, yaz bir DllMainişlevi.

    Bu işlev, isteğe bağlı; Bu kaynağı kodunda belirtmediğiniz takdirde, derleyici return true ama hiçbir şey yok, kendi sürümü, bağlar. Eğer bir DllMainişlevi, işletim sistemi bir iş parçacığı olduğunda işlev çağrıları veya işlem ekler veya dll dosyasından çıkarır.

  • Tüm fonksiyonlar, dan dışında (tüm genişletilmiş saklı yordamı Efunctions) dll adı verilen aktarılması gerekir.

    Bir işlev adını .def dosyası ihracat bölümünde listeleyerek verebilirsiniz ya da kaynak kodu ile __declspec(dllexport), bir Microsoft Derleyici uzantısı (Not Bu __declspec() iki alt çizgi ile başlar) işlev adı öneki.

Bu dosyalar, genişletilmiş saklı yordam dll oluşturmak için gereklidir.

Dosya

Açıklama

SRV.h

Genişletilmiş saklı yordam API üstbilgi dosyası

Opends60.lib

Opends60.dll alma kitaplığı

Genişletilmiş saklı yordam dll oluşturmak için bir proje türü dinamik bağlantı kitaplığı oluşturun. Bir dll dosyası oluşturma hakkında daha fazla bilgi için geliştirme ortamında belgelerine bakın.

Tüm genişletilmiş DLL'ler uygulamak ve aşağıdaki işlevi verme saklı yordamı önerilir:

__declspec(dllexport) ULONG __GetXpVersion()
{
   return ODS_VERSION;
}

__declspec(dllexport) ULONG __GetXpVersion()
{
   return ODS_VERSION;
}

[!NOT]

__declspec(dllexport), Microsoft özel derleyici bir uzantısıdır. Senin derleyici bu yönerge desteklemiyorsa, ihracat bölümünde def dosyanızdaki bu işlev vermeniz gerekir.

Ne zaman SQL Serverizleme ile başlayan Bayrak - T260 veya sistem yönetici ayrıcalıklarına sahip bir kullanıcı dbcc traceon (260) çalışır ve eğer genişletilmiş saklı yordamı dll __GetXpVersion(), bir uyarı iletisi desteklemez (hata 8131: genişletilmiş saklı yordamı dll '%' __GetXpVersion().) vermez hata günlüğüne yazdırılır. (O __GetXpVersion() iki alt çizgi ile başlar unutmayın.)

Genişletilmiş saklı yordamı dll __GetXpVersion() verir, ancak işlev tarafından döndürülen sürüm sunucu tarafından gerekli azdır, işlev tarafından döndürülen sürüm ve sunucunun beklediği sürüm bildiren bir uyarı iletisi hata günlüğüne yazdırılır. Bu iletiyi alırsanız, yanlış bir değer __GetXpVersion() iade ettiğiniz ya da srv.h eski bir sürümünü derlemek.

[!NOT]

SetErrorMode, a MicrosoftWin32 fonksiyonu, değil denilen genişletilmiş saklı yordamları.

Uzun süreli genişletilmiş saklı yordamı çağırmalıdır önerilir srv_got_attentionböylece düzenli aralıklarla yordamı kendisini bağlantı öldürülür ya da toplu iş iptal kesebilirler.

Genişletilmiş saklı yordam dll hata ayıklamak için kopyalamak için SQL Server\Binn dizin. Hata ayıklama oturumu için yürütülebilir dosyayı belirtmek için yolu ve dosya adını girin Microsoft  SQL Serveryürütülebilir dosyasını (örneğin, C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe). Hakkında bilgi sqlservrbağımsız görmek Sqlservr uygulama.

Ayrıca bkz.

Başvuru

srv_got_attention (genişletilmiş saklı yordam API)