Megosztás a következőn keresztül:


Rekordhalmaz (ODBC)

Ez a témakör az MFC ODBC-osztályokra vonatkozik.

A CRecordset objektum egy adatforrásból kiválasztott rekordkészletet jelöl. A rekordok a következő forrásból származhatnak:

  • Egy asztal.

  • Lekérdezés.

  • Tárolt eljárás, amely egy vagy több táblához fér hozzá.

Egy táblán alapuló rekordhalmazra példa az "összes ügyfél", amely egy Ügyfél táblához fér hozzá. Egy lekérdezésre példa a "Joe Smith összes számlája". Egy tárolt eljáráson (más néven előre definiált lekérdezésen) alapuló rekordhalmaz például "az összes delinquent fiók", amely egy tárolt eljárást hív meg a háttéradatbázisban. A rekordhalmazok ugyanabból az adatforrásból két vagy több táblát is összekapcsolhatnak, a különböző adatforrásokból származó táblákat azonban nem.

Megjegyzés:

Egyes ODBC-illesztőprogramok támogatják az adatbázis nézeteit. Ebben az értelemben a nézet egy olyan lekérdezés, amely eredetileg az SQL-utasítással CREATE VIEW jött létre.

Rekordhalmaz képességei

Minden rekordhalmaz-objektum a következő képességekkel rendelkezik:

  • Ha az adatforrás nem írásvédett, megadhatja, hogy a rekordhalmaz frissíthető, hozzáfűzhető vagy írásvédett legyen. Ha a rekordhalmaz frissíthető, választhat pesszimista vagy optimista zárolási módszereket is, feltéve, hogy az illesztőprogram biztosítja a megfelelő zárolási támogatást. Ha az adatforrás írásvédett, a rekordhalmaz írásvédett lesz.

  • A kijelölt rekordok görgetéséhez hívhat meg tagfüggvényeket.

  • A rekordok szűrésével korlátozhatja, hogy mely rekordok legyenek kiválasztva az elérhető rekordok közül.

  • A rekordokat növekvő vagy csökkenő sorrendbe rendezheti egy vagy több oszlop alapján.

  • Paraméterezheti a rekordhalmazt, hogy futásidőben minősítse a rekordhalmaz kiválasztását.

Pillanatképek és dinasztiák

A rekordhalmazoknak két fő típusa van: pillanatképek és dinasztiák. Mindkettőt az osztály CRecordsettámogatja. Mindegyik osztja az összes rekordhalmaz közös jellemzőit, de a közös funkciókat is kiterjeszti a saját speciális módján. A pillanatképek statikus nézetet biztosítanak az adatokról, és olyan jelentésekhez és más helyzetekhez hasznosak, amelyekben az adott időpontban meglévő adatok megtekintésére van szüksége. A dynasets akkor hasznos, ha azt szeretné, hogy a többi felhasználó által végzett frissítések a rekordhalmazban jelenjenek meg anélkül, hogy újra kellene lekérdeznie vagy frissítenie a rekordhalmazt. A pillanatképek és a dinahalmazok frissíthetők vagy írásvédettek lehetnek. A más felhasználók által hozzáadott vagy törölt rekordok tükrözéséhez hívja meg a CRecordset::Requery parancsot.

CRecordset emellett két másik típusú rekordkészletet is lehetővé tesz: dinamikus és csak továbbítási rekordhalmazokat. A dinamikus rekordhalmazok hasonlóak a dinakészletekhez; a dinamikus rekordhalmazok azonban az anélkül hozzáadott vagy törölt rekordokat tükrözik, hogy CRecordset::Requery meghívásra kerülne. Emiatt a dinamikus rekordhalmazok általában költségesek a DBMS feldolgozási ideje tekintetében, és sok ODBC-illesztő nem támogatja őket. Ezzel szemben a csak továbbítási rekordhalmazok biztosítják a leghatékonyabb adathozzáférési módszert olyan rekordhalmazokhoz, amelyek nem igényelnek frissítéseket vagy visszamenőleges görgetést. Előfordulhat például, hogy egy csak továbbítási rekordkészletet használ az adatok egyik adatforrásból a másikba való migrálásához, ahol csak előrefelé kell haladnia az adatok között. Csak továbbítandó rekordhalmaz használatához az alábbiakat kell elvégeznie:

  • Adja meg az CRecordset::forwardOnly opciót az nOpenType paramétereként az Open tagfüggvényben.

  • Adja meg CRecordset::readOnly a dwOptions paraméterben.Open

    Megjegyzés:

    A dinaképsor támogatásának ODBC-illesztőprogram követelményeiről az ODBC dokumentációban olvashat. A Visual C++ jelen verziójában szereplő ODBC-illesztőprogramok listájáról és a további illesztőprogramok beszerzéséről az ODBC-illesztőprogramok listájában olvashat.

Az Ön rekordhalmazai

Az elérni kívánt különböző táblákhoz, nézetekhez vagy tárolt eljárásokhoz általában egy osztályt határoz meg, amelyből CRecordsetszármazik. (A kivétel egy adatbázis-illesztés, amelyben egy rekordhalmaz két vagy több tábla oszlopait jelöli.) Rekordhalmaz-osztály létrehozásakor engedélyezi a rekordmezőcsere (RFX) mechanizmust vagy a tömeges rekordmezőcsere (Bulk RFX) mechanizmust, amely hasonló a párbeszédpanel adatcsere (DDX) mechanizmusához. Az RFX és a tömeges RFX leegyszerűsíti az adatok átvitelét az adatforrásból a rekordhalmazba; Az RFX emellett adatokat továbbít a rekordhalmazból az adatforrásba. További információ: Record Field Exchange (RFX) és Recordset: Rekordok tömeges lekérdezése (ODBC).

A rekordhalmaz-objektumok az összes kijelölt rekordhoz hozzáférést biztosítanak. Több kijelölt rekordot végiggörgethet tagfüggvényekkel, például CRecordset és MoveNext. Ugyanakkor egy rekordhalmaz-objektum csak az egyik kijelölt rekordot, az aktuális rekordot jelöli. Az aktuális rekord mezőinek vizsgálatához deklarálhatja a tábla oszlopainak vagy az adatbázis-lekérdezésből származó rekordoknak megfelelő rekordhalmaz-tagváltozókat. A rekordhalmaz-adattagokról további információt a Recordset: Architecture (ODBC) című témakörben talál.

Az alábbi témakörök ismertetik a rekordhalmaz-objektumok használatának részleteit. A témakörök funkcionális kategóriákban és természetes tallózási sorrendben jelennek meg, hogy lehetővé tegyék a szekvenciális olvasást.

A rekordhalmazok megnyitásának, olvasásának és bezárásának mechanikájával kapcsolatos témák

Témakörök a rekordhalmazok módosításának mechanikájáról

Témakörök valamivel fejlettebb technikákról

A rekordhalmazok működéséről szóló témakörök

Lásd még

Open Database Connectivity (ODBC) - nyílt adatbázis-kapcsolat
MFC ODBC-felhasználás
Tranzakció (ODBC)