Aracılığıyla paylaş


Kayıt Kümesi: Kayıt Kümelerinin Kayıtları Seçme Biçimi (ODBC)

Dekont

MFC ODBC Tüketici sihirbazı Visual Studio 2019 ve sonraki sürümlerde kullanılamaz. Yine de el ile tüketici oluşturabilirsiniz.

Bu konu MFC ODBC sınıfları için geçerlidir.

Bu konu başlığı altında açıklanmaktadır:

Kayıt kümeleri, sürücüye SQL deyimleri göndererek ODBC sürücüsü aracılığıyla bir veri kaynağından kayıtları seçer. Gönderilen SQL, kayıt kümesi sınıfınızı nasıl tasarladığınıza ve açtığınıza bağlıdır.

Kayıtları Seçme Seçenekleriniz

Aşağıdaki tabloda kayıtları seçme seçenekleriniz gösterilmektedir.

Kayıt Kümesini Nasıl ve Ne Zaman Etkileyebilirsiniz?

Ne zaman Yapabilecekleriniz
Sınıf Ekleme sihirbazıyla kayıt kümesi sınıfınızı bildirme Hangi tablodan seçileceğini belirtin.

Hangi sütunların dahilleneceğini belirtin.

Bkz. MFC ODBC Tüketicisi Ekleme.
Kayıt kümesi sınıfı uygulamanızı tamamlama Uygulamaya özgü seçenekleri ayarlamak veya varsayılanları değiştirmek için (gelişmiş) gibi OnSetOptions üye işlevlerini geçersiz kılın. Parametreli bir kayıt kümesi istiyorsanız parametre veri üyelerini belirtin.
Kayıt kümesi nesnesi oluşturma (çağırmadan Openönce) Kayıtları filtreleyen WHERE yan tümcesinde kullanılacak bir arama koşulu (büyük olasılıkla bileşik) belirtin. Bkz . Kayıt Kümesi: Kayıtları Filtreleme (ODBC).

Kayıtları sıralayan ORDER BY yan tümcesinde kullanılacak bir sıralama düzeni belirtin. Bkz . Kayıt Kümesi: Kayıtları Sıralama (ODBC).

Sınıfına eklediğiniz parametreler için parametre değerlerini belirtin. Bkz . Kayıt Kümesi: Kayıt Kümesini Parametreleştirme (ODBC).

|| çağrısı Openyaparak kayıt kümesinin sorgusunu çalıştırınSihirbaz tarafından ayarlanan varsayılan SQL dizesini değiştirmek için özel bir SQL dizesi belirtin. Bkz. Sınıf Kitaplığı BaşvurusundaCRecordset::Open ve SQL: Kayıt Kümenizin SQL Deyimini Özelleştirme (ODBC).|

|Kayıt kümesini veri kaynağındaki en son değerlerle yeniden sorgulamak için çağrısı Requery |Yeni parametreler, filtre veya sıralama belirtin. Bkz . Kayıt Kümesi: Kayıt Kümesini Yeniden Sorgulama (ODBC).|

Kayıt Kümesi SQL Deyimini Nasıl Oluşturur?

Bir kayıt kümesi nesnesinin Open member işlevini çağırdığınızda, Open aşağıdaki bileşenlerin bazılarını veya tümünü kullanarak bir SQL deyimi oluşturur:

  • lpszSQL parametresi öğesine Opengeçirildi. NULL değilse, bu parametre özel bir SQL dizesi veya bir parçası belirtir. Çerçeve dizeyi ayrıştırıyor. Dize bir SQL SELECT deyimi veya ODBC CALL deyimiyse, çerçeve dizeyi kayıt kümesinin SQL deyimi olarak kullanır. Dize "SELECT" veya "{CALL" ile başlamazsa, çerçeve sql FROM yan tümcesi oluşturmak için sağlananları kullanır.

  • GetDefaultSQL tarafından döndürülen dize. Varsayılan olarak, bu, sihirbazdaki kayıt kümesi için belirttiğiniz tablonun adıdır, ancak işlevin döndürdüğü değeri değiştirebilirsiniz. Çerçeve çağrıları GetDefaultSQL — dize "SELECT" veya "{CALL" ile başlamazsa, sql dizesi oluşturmak için kullanılan bir tablo adı olduğu varsayılır.

  • Tablonun belirli sütunlarına bağlanacak kayıt kümesinin alan verileri üyeleri. Çerçeve, kayıt sütunlarını arabellek olarak kullanarak bu üyelerin adreslerine bağlar. Çerçeve, alan verisi üyelerinin kayıt kümesinin DoFieldExchange veya DoBulkFieldExchange üye işlevindeki RFX veya Toplu RFX işlev çağrılarından tablo sütunlarıyla bağıntısını belirler.

  • Varsa, m_strFilter veri üyesinde yer alan kayıt kümesinin filtresi. Çerçeve bir SQL WHERE yan tümcesi oluşturmak için bu dizeyi kullanır.

  • Varsa, m_strSort veri üyesinde yer alan kayıt kümesinin sıralama düzeni. Çerçeve bir SQL ORDER BY yan tümcesi oluşturmak için bu dizeyi kullanır.

    Bahşiş

    SQL GROUP BY yan tümcesini (ve muhtemelen HAVING yan tümcesini) kullanmak için, yan tümceleri filtre dizenizin sonuna ekleyin.

  • Sınıfı için belirttiğiniz parametre veri üyelerinin değerleri. parametre değerlerini veya Requeryçağrısının Open hemen öncesinde ayarlarsınız. Çerçeve, parametre değerlerini SQL dizesindeki "?" yer tutucularına bağlar. Derleme zamanında, dizeyi yer tutucularla belirtirsiniz. Çalışma zamanında, çerçeve geçirdiğiniz parametre değerlerine göre ayrıntıları doldurur.

Open bu bileşenlerden bir SQL SELECT deyimi oluşturur. Çerçevenin bileşenleri nasıl kullandığı hakkında ayrıntılı bilgi için bkz . Seçimi Özelleştirme.

deyimini oluşturulduktan sonra SQL'i Open ODBC Sürücü Yöneticisi'ne (ve bellekteyse ODBC İmleç Kitaplığına) gönderir ve bu da söz konusu DBMS için ODBC sürücüsüne gönderir. Sürücü, veri kaynağında seçimi gerçekleştirmek için DBMS ile iletişim kurar ve ilk kaydı getirir. Çerçeve, kaydı kayıt kümesinin alan veri üyelerine yükler.

Tabloları açmak ve birden çok tablonun birleşimini temel alan bir sorgu oluşturmak için bu tekniklerin bir bileşimini kullanabilirsiniz. Ek özelleştirme ile önceden tanımlanmış sorguları (saklı yordamlar) çağırabilir, tasarım zamanında bilinmeyen tablo sütunlarını seçebilir ve bunları kayıt kümesi alanlarına bağlayabilir veya diğer veri erişim görevlerinin çoğunu gerçekleştirebilirsiniz. Kayıt kümelerini özelleştirerek gerçekleştiremeyeceğiniz görevler yine DE ODBC API işlevleri çağrılarak veya doğrudan CDatabase::ExecuteSQL ile SQL deyimleri yürütülerek gerçekleştirilebilir.

Seçimi Özelleştirme

Filtre, sıralama düzeni veya parametre sağlamanın yanı sıra, kayıt kümenizin seçimini özelleştirmek için aşağıdaki eylemleri gerçekleştirebilirsiniz:

  • Kayıt kümesi için Open'ı çağırdığınızda lpszSQL'de özel bir SQL dizesi geçirin. lpsqSQL'de geçirdiğiniz her şey GetDefaultSQL üye işlevinin döndürdüğünden önceliklidir.

    Daha fazla bilgi için bkz. SQL: Geçirebileceğiniz Open SQL deyimlerinin (veya kısmi deyimlerin) türlerini ve çerçevenin bunlarla ne yaptığını açıklayan Sql: Kayıt Kümenizin SQL Deyimini Özelleştirme (ODBC).

    Dekont

    Geçirdiğiniz özel dize "SELECT" veya "{CALL" ile başlamıyorsa, MFC bir tablo adı içerdiğini varsayar. Bu, bir sonraki madde işaretli öğe için de geçerlidir.

  • Sihirbazın kayıt kümenizin GetDefaultSQL üye işlevine yazdığı dizeyi değiştirin. İşlevin kodunu düzenleyerek döndürdüğü kodu değiştirin. Varsayılan olarak, sihirbaz tek bir GetDefaultSQL tablo adı döndüren bir işlev yazar.

    GetDefaultSQL lpszSQL parametresine Opengeçirebileceğiniz öğelerden herhangi birini döndürebilirsiniz. LpszSQL'de özel bir SQL dizesi geçirmezseniz çerçeve, döndüren GetDefaultSQL dizeyi kullanır. En azından tek GetDefaultSQL bir tablo adı döndürmelidir. Ancak birden çok tablo adı, tam SELECT deyimi, ODBC CALL deyimi vb. döndürmesini sağlayabilirsiniz. lpszSQL'e geçirebileceğiniz veya GetDefaultSQL döndürebileceğiniz özelliklerin listesi için bkz. SQL: Kayıt Kümenizin SQL Deyimini Özelleştirme (ODBC).

    İki veya daha fazla tablonun birleşimini gerçekleştiriyorsanız, SQL FROM yan tümcesinde kullanılan tablo listesini özelleştirmek için yeniden yazınGetDefaultSQL. Daha fazla bilgi için bkz . Kayıt Kümesi: Birleştirme Gerçekleştirme (ODBC).

  • Çalışma zamanında veri kaynağınızın şeması hakkında edindiğiniz bilgilere göre ek alan veri üyelerini el ile bağlayın. Alan veri üyelerini kayıt kümesi sınıfına, RFX veya Toplu RFX işlevi bunları DoFieldExchange veya DoBulkFieldExchange üye işlevine ve sınıf oluşturucusunda veri üyelerinin başlatmalarına çağırır. Daha fazla bilgi için bkz . Kayıt Kümesi: Veri Sütunlarını Dinamik Olarak Bağlama (ODBC).

  • Uygulamaya özgü seçenekleri ayarlamak veya varsayılanları geçersiz kılmak için gibi OnSetOptionskayıt kümesi üye işlevlerini geçersiz kılın.

Kayıt kümesini karmaşık bir SQL deyimine dayandırmak istiyorsanız, bu özelleştirme tekniklerinin bir bileşimini kullanmanız gerekir. Örneğin, kayıt kümeleri tarafından doğrudan desteklenmeyen SQL yan tümcelerini ve anahtar sözcüklerini kullanmak istiyor veya belki de birden çok tabloyu birleştiriyorsunuz.

Ayrıca bkz.

Kayıt Kümesi (ODBC)
Kayıt Kümesi: Kayıt Kümelerinin Kayıtları Güncelleştirmesi (ODBC)
ODBC Temelleri
SQL
Kayıt Kümesi: Kayıtları Kilitleme (ODBC)