CRecordset::Open

sanal bool Açık ( UINT nOpenType = afx_db_use_default_type, lpctstr lpszSQL = null, dword dwOptions = hiçbiri );
atmak ( CDBException, CMemoryException );

Dönüş değeri

CRecordset nesnesi başarıyla açılmışsa sıfırdan farklı; (çağrılırsa) CDatabase::Open , 0 değerini döndürür, aksi takdirde 0.

Parametreleri

nOpenType

Varsayılan değer, afx_db_use_default_type, kabul ya da enumOpenType aşağıdaki değerlerden birini kullanın :

lpszSQL

Aşağıdakilerden birini içeren bir dize işaretçisi:

dwOptions

Aşağıda listelenen değerleri birleşimi belirleyebilirsiniz bir bit maskesi. Bunlardan bazıları birbirini dışlar. Varsayılan değer Yok'tur..

Açıklamalar

Kayıt kümesi tarafından tanımlanan sorguyu çalıştırmak için bu üye işlevi çağırmalıdır. Açıkçağırmadan önce recordset nesnesi oluşturması gerekir.

Bu kayıt kümesinin veri kaynağına bağlanmak için nasıl kayıt kümesi Açıkçağırmadan önce oluşturduğunuza bağlıdır. Recordset kurucusuna veri kaynağına bağlı olmayan bir CDatabase nesnesi aktaryrsanyz, veritabanı nesnesi açmak denemek için GetDefaultConnect bu üye işlevini kullanır. Recordset yapıcısına boş geçmek, kurucu için bir CDatabase nesnesi oluşturur ve Açık veritabanı nesnesi bağlanma girişiminde bulunur. Recordset ve connection bu değişen koşullarda kapatılması ile ilgili ayrıntılar için bkz: Kapat.

&Notnbsp;  Bir CRecordset nesnesi üzerinden bir veri kaynağına erişim her zaman paylaşılır. CDaoRecordset sınıfı, bir CRecordset nesnesi bir veri kaynağına özel erişimle açmak için kullanamazsınız.

Açıkaradığınızda, genellikle bir seçmek sql deyimi, sorgu aşağıdaki tabloda gösterilen ölçütlere göre kayıtları seçer.

LpszSQL parametre değeri Seçilen kayıtları tarafından belirlenir Örnek
NULL GetDefaultSQL tarafından döndürülen dize.
Sql tablo adı Tüm sütunları Tablo listesi DoFieldExchange ya da DoBulkFieldExchange.
 "Müşteri"
Önceden tanımlanan sorgu (saklı yordam) adı Sorgu dönmek için tanımlanan sütunları.
"{OverDueAccts çağrı}"
Seç sütun- from Tablo-listesi Belirtilen tablo sütunlarından belirtilen.
"CustId, MÜŞTERİDEN CustName SE?"

! Uyarı   Dikkat edin, sql dizesi fazladan boşluk koymayın. Örneğin, küme ayracı ve Arama anahtar kelime arasında boşluk eklerseniz, mfc sql dizesi olarak bir tablo adı yanlış anlaşılabilir ve bir istisna içinde sonuçlanacak bir select deyimi içine dahil. Önceden tanımlanmış sorgunuz bir çıktı parametresini kullanır, benzer şekilde, kaşlı ayraç arasında boşluk koymayın ve '?' sembolü. Son olarak, boşluk önce küme ayracı call deyimi ya da önce seçin statment seçin anahtar sözcüğü eklemeniz gerekir değil.

Normal prosedür boş Açıkgeçmektir; Bu durumda, Açık GetDefaultSQLçağırır. Türetilmiş bir CRecordset sınıf kullanıyorsanız, GetDefualtSQL ClassWizard içinde belirtilen tablo adlarını verir. Bunun yerine diğer bilgileri lpszSQL parametre belirtebilirsiniz.

Ne olursa olsun size geçmek, Açık (dize, geçirilen lpszSQL dizesi eklenir sql where ve order by yan tümceleri olabilir) sorgu için son bir sql dizesi oluşturur ve sonra sorguyu yürütür. Açıkçağrıldıktan sonra GetSQL çağırarak inşa dize inceleyebilirsiniz. Nasıl kayıt kümesi sql deyimi oluşturur ve kayıtları seçer hakkında ek ayrıntılar için bkz makaleyi Recordset: nasıl kayıt kümeleri seçin kayıtları (odbc) Visual c++ Programcı Kılavuzu.

Recordset sınıf alanı veri üyeleri seçili veri sütunlarının bağlanmıştır. Herhangi bir kayıt döndürülürse, ilk kayıt geçerli kayıt olur.

Recordset, bir filtre veya sıralama gibi seçenekleri ayarlamak isterseniz bu recordset nesnesi oluşturmak sonra ancak Açıkaramadan önce belirtin. Requery sonra recordset açıksa, recordset içindeki kayıt yenilemek istiyorsanız, arama.

Ek örnekler dahil olmak üzere daha fazla bilgi için bkz: makaleleri Recordset ((ODBC)), Recordset: nasıl kayıt kümeleri seçin kayıtları (odbc), ve Recordset: oluşturma ve kayıt kümeleri (odbc) Visual c++ Programcı Kılavuzu.

Örnek

Aşağıdaki kod örnekleri farklı formlarda Açık çağrı göster.

/ / rs bir CRecordset veya
/ / CRecordset türetilen nesne

/ / Varsayılan sql deyimini kullanarak açık rs
/ / yer imleri uygular ve kapatmak
/ / Otomatik kirli alan denetleme
RS.Açık (CRecordset::snapshot, null,
 nbsp;       CRecordset::useBookmarks |
         CRecordset::noDirtyFieldCheck);

/ / Tam bir select deyimi pass
/ / ve dinamik olarak aç
RS.Açık (CRecordset::dynaset,
         _t ("select L_&Name müşteriden"));

/ / Tüm Varsayılanları kabul edin
RS.Açık)

CRecordset ge&nel bakış |nbsp; Sınıf üyeleri | Hiyerarşi çizelgesi

Ayrıca bkz: CRecordset::CRecordset, CRecordset::Close, CRecordset::GetDefaultSQL, CRecordset::GetSQL, CRecordset::m_strFilter, CRecordset::m_strSort, CRecordset::Requery

Index