SQL Server için OLE DB sağlayıcı kullanarak ve ATL CCommand::Prepare() işlevi veya ICommandPrepare::Prepare(), arama E_FAIL ile aşağıdaki hata açıklamasını verir:
Sözdizimi hatası veya erişim ihlali.
SQL Server OLE DB gelen Provider MDAC 2.7 birlikte aşağıdaki Gelişmiş hata iletisini döndürür:
SQL deyimlerini sub-select sorgularla parametre bilgileri türetilemez. Komutu hazırlamadan önce parametre bilgilerini ayarlayın.
Bir Microsoft SQL Server veritabanında iki tablo oluşturun: Table1 bir karakter ve bir tamsayı olmalıdır, Table2 bir tamsayı alanı olmalıdır.
Aşağıdakine benzer bir erişimci sınıfı oluştur:
class CQuery1Accessor
{
public:
TCHAR m_field1[11];
LONG m_field2;
LONG m_field1param;
BEGIN_COLUMN_MAP(CQuery1Accessor)
COLUMN_ENTRY(1, m_field1)
COLUMN_ENTRY(2, m_field2)
END_COLUMN_MAP()
BEGIN_PARAM_MAP(CQuery1Accessor)
COLUMN_ENTRY(1,m_field1param)
END_PARAM_MAP()
DEFINE_COMMAND(CQuery1Accessor, _T("SELECT * FROM Table1 WHERE field2 IN"
"(SELECT field1 FROM Table2 where field1 > ?)"));
// You may want to call this function if you are inserting a record and want to
// initialize all the fields, if you are not going to explicitly set all of them.
void ClearRecord()
{
memset(this, 0, sizeof(*this));
}
};
Yeni oluşturduğunuz erişeni sınıfını kullanarak komut yürüten bir CCommand sınıfını oluşturun. CCommand sınıfı, aşağıdakine benzer:
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:235053
(http://support.microsoft.com/kb/235053/en-us/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.