Saklı yordamlar genişletilmiş oluşturma
Ö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 yerine kullanın. |
Bir genişletilmiş saklı yordam bir işlev bir prototip ile:
SRVRETCODE xp_extendedProcName **(**SRVPROC *);
Önekini kullanarak xp_ isteğe bağlıdır.Genişletilmiş saklı yordam adları büyük küçük durum olarak başvurulduğunda, duyarlı Transact-SQL deyimleri, gözetmeden kod sayfa/sıralama düzeni yüklü sunucu.Ne zaman bir dll dosyası oluşturun:
Bir giriş noktası gerekli ise, Yaz bir DllMain işlev.
Bu işlev isteğe bağlıdır; Bu kaynak kodunda belirtmezseniz, derleyici return true ama hiçbir şey yapmaz, kendi sürüm bağlar.Size, bir DllMain işlevini işletim sistemi çağırır bu işlev, bir iş parçacığı veya işlem için ekler veya çıkarır dll.
Tüm işlevleri (tüm genişletilmiş saklı yordam Efunctions) dll dışında aradığını aktarılması gerekir.
Bir işlev adını .def dosyası dışa AKTARIR bölümünde listeleyerek verme veya kaynak kodu ile __declspec(dllexport), 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ı belgelerine bakın.
Önemle önerilir tüm genişletilmiş saklı yordam DLL'ler uygulamak ve verme aşağıdaki işlev:
__declspec(dllexport) ULONG __GetXpVersion()
{
return ODS_VERSION;
}
Not
__declspec(dllexport) derleyici Microsoft'a özgü bir uzantısıdır.Bu yönerge, derleyici desteklemiyorsa, bu işlev def dosyanızı dışa AKTARIR bölümünün altında vermeniz gerekir.
Zaman SQL Server ile izleme başladı bayrağı - T260 veya sistem yönetici ayrıcalıklarına sahip bir kullanıcı dbcc traceon (260) çalışıyorsa ve genişletilmiş saklı yordam dll __GetXpVersion(), bir uyarı iletisi desteklemez (hata 8131: Genişletilmiş saklı yordam dll '%' __GetXpVersion().) verme yazdırıldığında hata günlüğü.(O __GetXpVersion() iki alt çizgi ile başlar unutmayın.)
Genişletilmiş saklı yordam dll __GetXpVersion() dışa aktarır, ancak bu işlev tarafından döndürülen sunucu tarafından istenenden daha küçük sürüm, işlevi tarafından döndürülen ve sunucunun beklediği bildiren bir uyarı iletisi için yazdırılan hata günlüğü.Bu iletiyi alırsanız, __GetXpVersion() yanlış bir değer döndürülüyor veya srv.h eski bir sürüm derlemek.
Not
SetErrorMode, bir Microsoft Win32 işlev, genişletilmiş saklı yordamları. çağrılmamalıdır
genişletilmiş saklı yordam uzun süren çağırmalıdır önerilir srv_got_attention böylece düzenli olarak yordamı kendisini bağlantı öldürülüyor ya da toplu iş iptal edildi erdirebilen.
Genişletilmiş saklı yordam dll hata ayıklamak için kopyalarsanız SQL Server\Binn dizin.To specify the executable for the debugging session, enter the path and file name of the Microsoft SQL Server executable file (for example, C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe).Hakkında bilgi için sqlservr değişkenleri, görmek Sqlservr uygulama.