Aracılığıyla paylaş


SQL-dmo nesnelerini programlama genişletilmiş

Bu özellik Microsoft SQL Server'ın bir sonraki sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

sql Distributed Management Objects (sql-dmo) Microsoft sql Server 2000'de daha önceki sürümleriyle uyumlu yeni nesnelerin sayısı özel.Bu nesnelerin çoğu biçiminde adlı ObjectName2, ve benzer biçimde adlandırılmış nesneleri sql Server sürüm 7.0 tarafından desteklenen işlevselliğini genişletmek.Örneğin, UserDefinedDataType2 nesnesinin işlevselliğini uzatır UserDefinedDataType sunduğu nesne Collation özellik.Nesneleri gibi UserDefinedDataType2 devralan yöntemlerini ve özelliklerini temel kendi nesneleri.Bu nedenle, uygulama her zaman kullanabilirsiniz UserDefinedDataType2 nesne özelliklerini ve yöntemlerini çağırmak için UserDefinedDataType nesne.

Yeni nesneleri, yöntemleri ve özellikleri sql Server 2000 ve daha sonra başvurmak için varolan bir sql Server 7.0 uygulamaları değiştirmek gereksizdir.

c++ ile genişletilmiş sql-dmo nesneleri kullanma

Yeni sql-dmo nesnelerini kullanan c++ uygulamaları uygulama örnekleri ile sql Server 2000 ve sonraki sürümlerinde yalnızca kullanılacaksa, çok programlı tüm adımlara gerek.Ancak, sql Server 7.0 ile de kullanılan ve yeni sql-dmo nesnelerini kullanan c++ uygulamaları yeni bir nesne kullanılmaya çalışılırken, hatayla karşılaşırsınız.Bu nedenle, uygulama çağırması gerekir IUnknown::QueryInterface yöntem bir ObjectName2 nesne, miras ve dikkatlice hataları işlemek için ilişkili nesne.

Bu örnekleri nasıl kullanılacağını gösteren ObjectName2 kullanarak nesneleri Collation özellik UserDefinedDataType2 nesne.İlk örnek sql Server 2000 ve sonraki sürümlerinde çalışır bir uygulamada kullanımı gösterilmiştir.İkinci örnek de sql Server 7.0 ile çalışabilecek bir uygulamada kullanımı gösterilmiştir.

Örnekler

sql Server 2000 ve sonrası ile genişletilmiş sql-dmo nesnelerini baþvurmak

//Define variable.
LPSQLDMOUSERDEFINEDDATATYPE2 oUDDT2 = NULL;

// Do CoCreate Instance for UserDefinedDataType.
CoCreateInstance(CLSID_SQLDMOUserDefinedDataType, NULL, CLSCTX_INPROC_SERVER, IID_ISQLDMOUserDefinedDataType2, (LPVOID*) &oUDDT2))

oUDDT2->SetCollation(L"German_Phonebook_CI_AI_KI_WI");

// Now add the UserDefinedDataType object to the UserDefinedDataTypes // collection.

sql Server 7.0 ile genişletilmiş sql-dmo nesnelerini baþvurmak

// Define variables.
LPSQLDMOUSERDEFINEDDATATYPE oUDDT = NULL;
LPSQLDMOUSERDEFINEDDATATYPE2 oUDDT2 = NULL;
HRESULT hr;

// Do CoCreate Instance for UserDefinedDataType.
CoCreateInstance(CLSID_SQLDMOUserDefinedDataType2, NULL, CLSCTX_INPROC_SERVER, IID_ISQLDMOUserDefinedDataType, (LPVOID*) &oUDDT))

// QueryInterface UserDefinedDataType2.
// Gracefully handle error situations arising from use with version // 7.0.
hr=oUDDT->QueryInterface(IID_ISQLDMOUserDefinedDatatype2,&oUDDT2);
if (SUCCEEDED(hr))
oUDDT2->SetCollation(L"German_Phonebook_CI_AI_KI_WI");
else
// oUDDT2 is not supported. Perform error handling routine.

// Now add the UserDefinedDataType object to the UserDefinedDataTypes // collection.

Visual Basic ile genişletilmiş sql-dmo nesneleri kullanma

Yeni sql-dmo nesneleri kullanan Visual Basic uygulamalarının uygulama yalnızca Microsoft sql Server 2000 veya sonraki bir sürümü kullanılacaksa çok programlı tüm adımlara gerek.Hiçbir ek adımları geç bağlama kullanan Visual Basic uygulamaları için gereklidir.Ancak, erken bağlama kullanan Visual Basic uygulamalarını ayarında kesin olması gerekir bir ObjectName2 nesne değişkeni.Örneğin, bu kod örneğinde, StoredProcedures.Item yöntem döndürür bir StoredProcedure nesnesi, bir StoredProcedure2 nesnesi değil:

Dim oSQLSvr2 as New SQLServer2
oSQLSvr2.Connect "Myserver","sa",""
MsgBox oSQLSrv2.Databases("northwind").StoredProcedures(1).Name

Ancak, bu yaklaşım kullanarak StoredProcedures.Item yöntem çağrıları IUnknown::QueryInterface yöntemi StoredProcedure2 Nesne:

Dim oStoredProc2 as SQLDMO.StoredProcedure2
Set oStoredProc2 = oSQLSrv2.Databases("northwind").StoredProcedures(1)
oStoredProc2.IsDeleted