Aracılığıyla paylaş


Kayıt Kümesi: Kayıt Kümeleri Kayıtları Nasıl Seçer (ODBC)?

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

Bu konu şunları açıklar:

  • Kayıtları seçmedeki rolünüz ve seçenekleriniz.

  • Bir kayıt kümesi kendi SQL deyimini nasıl oluşturur ve kayıtlarını nasıl seçer.

  • Seçimi özelleştirmek için yapabilecekleriniz.

Kayıt kümeleri bir ODBC sürücüsü aracılığıyla sürücüye SQL ifadeleri göndererek veri kaynağındaki 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'deki Seçenekleriniz

Aşağıdaki tablo kayıt seçimindeki seçeneklerinizi gösterir.

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

Şunu yaptığınızda

Şunları yapabilirsiniz

Sınıf Ekle sihirbazı ile kayıt kümesi sınıfınızı bildirme

Hangi tablodan seçim yapılacağını belirtin.

Hangi sütunların dahil edileceğini belirtin.

Bkz. MFC ODBC Tüketicisi Ekleme

Kayıt kümesi sınıf uygulamanızı tamamlama

Uygulamaya özel seçenekleri ayarlamak veya varsayılanları değiştirmek için OnSetOptions (gelişmiş) gibi üye işlevlerini geçersiz kılın. Parametreli bir kayıt kümesi istiyorsanız, parametre veri üyelerini belirtin.

Bir kayıt kümesi nesnesi oluşturun (Açık komutunu çağırmadan önce)

Kayıtları filtreleyen WHERE yan tümceciğinde kullanılmak üzere bir arama koşulu (muhtemelen bileşik) belirtin. Bkz. Kayıt Kümesi: Kayıtları Filtreleme (ODBC).

Kayıtları düzenleyen ORDER BY yan tümceciğinde kullanılmak üzere bir sıralama düzeni belirtin. Bkz. Kayıt Kümesi: Kayıtları Sıralama (ODBC).

Sınıfa eklediğiniz tüm parametreler için parametre değerlerini belirtin. Bkz. Kayıt Kümesi: Bir Kayıt Kümesini Parametreleştirmek.

Açık bilgisini çağırarak kayıt kümelerinin sorgusunu çalıştırma

Sihirbaz tarafından ayarlanan varsayılan SQL dizesini değiştirmek için özel bir SQL dizesi belirtin. Sınıf Kitaplığı Başvurusu ve SQL bilgileri içindeCRecordset::Open bakınız : Kayıt Kümenizin SQL Deyimini (ODBC) Özelleştirme.

Kayıt kümesini veri kaynağı üzerindeki son değerlerle yeniden sorgulamak için Yeniden Sorgula öğesini çağırın.

Yeni parametreler belirtin, filtreleme gerçekleştirin veya sıralama yapın. Bkz. Kayıt Kümesi: Bir Kayıt Kümesini Yeniden Sorgulama (ODBC).

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

Bir kayıt kümesi nesnesinin üye işlevini çağırdığınızda öğesi aşağıdaki içeriklerin bir kısmı ya da tamamını kullanarak bir SQL deyimi yapılandırır.

  • LpszSQL parametresi öğesine geçmiştir. NULL değilse, bu parametre özel bir SQL dizesi ya da bir bölümünü belirtir. Çerçeve dizeyi ayrıştırır. Dize bir SQLSELECT ifadesi veya bir ODBC CALL ifadesi ise, çerçeve diziyi kayıt kümesinin SQL ifadesi olarak kullanır. Dizi "SELECT" or "{CALL" ile başlamıyorsa, çerçeve SQLFROM yan cümleciği oluşturmak için sağlananları kullanır.

  • GetDefaultSQLtarafından döndürülen dize. Varsayılan olarak, bu, kayıt kümesi için sihirbazda belirttiğiniz tablonun adıdır, ancak işlevin getirdiğini değiştirebilirsiniz. Çerçeve GetDefaultSQL öğesini arar— dize "SELECT" ya da "{CALL" ile başlamıyorsa bir SQL dizesi oluşturmak için kullanılan bir tablo adı olduğu varsayılır.

  • Tablonun belirli sütunlarına bağlanacak olan alan veri üyeleri kayıt kümesi. Çerçeve, kayıt sütunlarını arabellek olarak kullanarak bu üyelerin adreslerine bağlar. Çerçeve, kayıt kümesinin DoFieldExchange ya da DoBulkFieldExchange üye işlevlerindeki RFX ya da Toplu RFX işlevi çağrılarından alan veri üyelerinin tablo sütunlarına bağıntısını belirler.

  • m_strFilter veri üyesinde varsa kayıt kümesi için filtre. Çerçeve bu dizeyi bir SQL WHERE yan tümcesi oluşturmak için kullanılır.

  • m_strSort veri üyesinde yer alıyorsa, kayıt kümesine ilişkin sort sırası. Çerçeve bu dizeyi bir SQL ORDER BY yan tümcesi oluşturmak için kullanılır.

    İpucuİpucu

    SQL GROUP BY yan tümceciğini (ve olasılıkla HAVING yan tümceciğini) kullanmak için yan tümcecikleri filtre dizginizin sonuna ekleyin.

  • Sınıfa ilişkin belirlenen parametre veri üyeleri öğesinin değerleridir. veya Yeniden Sorgula komutlarını çağırmadan önce parametre değerlerini ayarlayın. Çerçeve, parametre değerlerini SQL dizesindeki "?" yer tutucularına bağlar. Derleme zamanında, dizeyi yer tutucularıyla birlikte belirtirsiniz. Çalışma zamanında, çerçeve geçirdiğiniz parametre değerlerine göre ayrıntıları doldurur.

seçeneği, bu maddelerden bir SQL SELECT deyimi oluşturur. Çerçevelerin maddeleri nasıl kullandığı hakkındaki detaylar için bkz. Seçimi Özelleştirme.

Deyimi oluşturduktan sonra, SQL'yi belirli DBMS'in ODBC sürücüsüne gönderen ODBC Sürücü Yöneticisi'ne (ve bellekteyse ODBC İmleç Kitaplığı'na) gönderir. Sürücü, seçimi veri kaynağında yürütmek için DBMS ile iletişim kurarak ilk kaydı getirir. Çerçeve kayıt kümesinin alan veri üyelerine kaydı yükler.

Bu tekniklerin birleşimini, tablolarını açmak için kullanabilir ve birden çok tablonun birleşmesini temel alan bir sorgu oluşturabilirsiniz. Ek özelleştirme ile önceden tanımlı sorguları (saklı yordamları) çağırabilir, tasarım sırasında bilinmeyen tablo sütunlarını seçebilir ve bunları kayıt kümesi alanlarına bağlayabilirsiniz. Ayrıca diğer birçok veri erişim görevini gerçekleştirebilirsiniz. Kayıt kümelerinin özelleştirilmesiyle gerçekleştiremeyeceğiniz görevler, calling ODBC API functions veya doğrudan CDatabase::ExecuteSQL ile SQL deyimlerinin uygulanmasıyla gerçekleştirilebilir.

Seçimi Özelleştirme

Bir filtre, sıralama düzeni veya parametreler sağlamanın yanı sıra kayıt kümesi seçimini özelleştirmek için aşağıdaki işlemleri yapabilirsiniz:

  • Kayıt kümesi için öğesini çağırdığınızda lpszSQL öğesinde özel bir SQL dizesi geçirin. lpsqSQL'ye geçirdiğiniz herhangi bir şey, GetDefaultSQL üye işlevinin döndürdüğü şeyden önceliği alır.

    Daha fazla bilgi için, Open öğesine gönderebileceğiniz SQL deyimlerinin (ya da parçalı deyim) türlerini ve çerçevenin onlarla neler yaptığını tanımlayan SQL: Kayıt Setlerinizin SQL Deyimini Özelleştirme (ODBC) konusuna bakın.

    Not

    Geçirdiğiniz özel dizi "SELECT" veya "{CALL" ile başlamıyorsa MFC tablo adı içerdiğini varsayar. Bu sonraki madde işaretli öğeye de uygulanır.

  • Sihirbaz tarafından kayıt kümenizin GetDefaultSQL üye işlevine yazılan dizeyi değiştirin. Döndürdüğü öğeyi değiştirmek için işlevin kodunu düzenleyin. Varsayılan olarak, sihirbaz tek bir tablo adı getiren bir GetDefaultSQL işlevini yazar.

    GetDefaultSQL öğesinin, lpszSQL parametresini Açık konuma geçirebileceğiniz öğelerin herhangi birini döndürmesini sağlayabilirsiniz. lpszSQL öğesinde özel bir SQL dizisi geçirmezseniz, çerçeve GetDefaultSQL döndüren diziyi kullanır. En azından, GetDefaultSQL tek bir tablo adı getirmelidir. Ancak birden çok tablo adı, tam bir SELECT deyimi, bir ODBC CALL deyimi vb. döndürmesini sağlayabilirsiniz. lpszSQL üzerine geçirebileceklerinizin — veya GetDefaultSQL döndürenlerin bir listesi için — bkz. SQL: Kayıt Kümenizin SQL Beyanını Özelleştirme (ODBC).

    İki veya daha fazla tablonun birleşimini yapıyorsanız, SQL from tümcesinde kullanılan tablo listesini özelleştirmek için GetDefaultSQL öğesini yeniden yazın. Daha fazla bilgi için bkz. Kayıt Kümesi: Birleşim Gerçekleştirme (ODBC).

  • Ek alan veri üyelerini, çalışma zamanında verilerinizin şeması hakkında edindiğiniz bilgilere el ile bağlayın. Alan veri üyelerini kayıt kümesi sınıfına eklersiniz, RFX veya Bulk RFX işlevi bunları DoFieldExchange veya DoBulkFieldExchange üye işlevine ve sınıf oluşturucusundaki veri üyelerinin başlangıçlarına çağırır. Daha fazla bilgi için bkz. Kayıt Kümesi: Veri Sütunlarını Dinamik Olarak Bağlama (ODBC).

  • Uygulamaya özel seçenekleri ayarlamak veya varsayılanları değiştirmek için OnSetOptions gibi kayıt kümesi üye işlevlerini geçersiz kılın.

Kayıt kümesine temel olarak karmaşık bir SQL deyimini almak istiyorsanız, bu özelleştirme tekniklerinin bir birleşimini kullanmanız gerekir. Örneğin, kayıt kümeleri tarafından doğrudan desteklenmeyen SQL yan tümcelerini ve anahtar kelimeleri kullanabilir veya çoklu tabloları birleştirebilirsiniz.

Ayrıca bkz.

Kavramlar

Kayıt Kümesi (ODBC)

Kayıt Kümesi: Kayıt Kümeleri Kayıtları Nasıl Güncelleştirir (ODBC)?

ODBC Basics

SQL

Kayıt Kümesi: Kayıtları Kilitleme (ODBC)