Share via


Klasse CFieldExchange

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Ondersteunt de routines voor het uitwisselen van recordvelden (RFX) en bulkrecordvelduitwisseling (Bulk RFX) die worden gebruikt door de databaseklassen.

Syntaxis

class CFieldExchange

Leden

Openbare methoden

Naam Description
CFieldExchange::IsFieldType Retourneert niet-nul als de huidige bewerking geschikt is voor het type veld dat wordt bijgewerkt.
CFieldExchange::SetFieldType Hiermee geeft u het type recordsetgegevenslid ( kolom of parameter ) vertegenwoordigd door alle volgende aanroepen naar RFX-functies tot de volgende aanroep naar SetFieldType.

Opmerkingen

CFieldExchange heeft geen basisklasse.

Gebruik deze klasse als u routines voor gegevensuitwisseling schrijft voor aangepaste gegevenstypen of wanneer u bulksgewijs ophalen van rijen implementeert; anders gebruikt u deze klasse niet rechtstreeks. RFX en Bulk RFX wisselen gegevens uit tussen de veldgegevensleden van uw recordsetobject en de bijbehorende velden van de huidige record op de gegevensbron.

Opmerking

Als u werkt met de DAO-klassen (Data Access Objects) in plaats van de ODBC-klassen (Open Database Connectivity), gebruikt u in plaats daarvan klasse CDaoFieldExchange . Zie het artikel Overzicht:Databaseprogrammering voor meer informatie.

Een CFieldExchange object biedt de contextinformatie die nodig is voor het uitwisselen van recordvelden of het bulksgewijs uitwisselen van velden. CFieldExchange objecten ondersteunen een aantal bewerkingen, waaronder bindingsparameters en veldgegevensleden en het instellen van verschillende vlaggen op de velden van de huidige record. RFX- en Bulk RFX-bewerkingen worden uitgevoerd op gegevensleden van recordsetklassen van typen die zijn gedefinieerd door het enumFieldType in CFieldExchange. Mogelijke FieldType-waarden zijn:

  • CFieldExchange::outputColumn voor veldgegevensleden.

  • CFieldExchange::inputParam of CFieldExchange::param voor leden van invoerparametergegevens.

  • CFieldExchange::outputParam voor leden van uitvoerparametergegevens.

  • CFieldExchange::inoutParam voor leden van invoer-/uitvoerparametergegevens.

De meeste lidfuncties en gegevensleden van de klasse zijn beschikbaar voor het schrijven van uw eigen aangepaste RFX-routines. U zult vaak gebruiken SetFieldType . Zie de artikelen Record Field Exchange (RFX) en Recordset (ODBC) voor meer informatie. Zie het artikel Recordset: Records in Bulk (ODBC) ophalen voor informatie over bulksgewijs ophalen van rijen. Zie De functies recordvelduitwisseling in de sectie MFC-macro's en globals van deze verwijzing voor meer informatie over de globale functies RFX en RFX Bulk RFX.

Overnamehiërarchie

CFieldExchange

Requirements

Koptekst: afxdb.h

CFieldExchange::IsFieldType

Als u uw eigen RFX-functie schrijft, roept IsFieldType u aan aan het begin van de functie om te bepalen of de huidige bewerking kan worden uitgevoerd op een bepaald veld of parametergegevenslidtype (een CFieldExchange::outputColumn, CFieldExchange::inputParam, CFieldExchange::param, CFieldExchange::outputParamof ).CFieldExchange::inoutParam

BOOL IsFieldType(UINT* pnField);

Parameterwaarden

pnField
Het opeenvolgende nummer van het veld of parametergegevenslid wordt geretourneerd in deze parameter. Dit nummer komt overeen met de volgorde van het gegevenslid in de functie CRecordset::D oFieldExchange of CRecordset::D oBulkFieldExchange .

Retourwaarde

Niet-nul als de huidige bewerking kan worden uitgevoerd op het huidige veld of parametertype.

Opmerkingen

Volg het model van de bestaande RFX-functies.

CFieldExchange::SetFieldType

U hebt een aanroep nodig in SetFieldType de DoFieldExchange - of DoBulkFieldExchange-overschrijving van uw recordsetklasse.

void SetFieldType(UINT nFieldType);

Parameterwaarden

nFieldType
Een waarde van de enum FieldType, gedeclareerd in CFieldExchange, die een van de volgende kan zijn:

  • CFieldExchange::outputColumn

  • CFieldExchange::inputParam

  • CFieldExchange::param

  • CFieldExchange::outputParam

  • CFieldExchange::inoutParam

Opmerkingen

Voor leden van veldgegevens moet u aanroepen SetFieldType met een parameter van CFieldExchange::outputColumn, gevolgd door aanroepen naar de RFX- of Bulk RFX-functies. Als u het ophalen van bulksgewijs rijen niet hebt geïmplementeerd, plaatst ClassWizard deze SetFieldType aanroep voor u in de sectie veldkaart van DoFieldExchange.

Als u de recordsetklasse parameteriseert, moet u opnieuw aanroepen SetFieldType , buiten een veldkaartsectie, gevolgd door RFX-aanroepen voor alle leden van de parametergegevens. Elk type parametergegevenslid moet een eigen SetFieldType aanroep hebben. In de volgende tabel worden de verschillende waarden onderscheiden die u kunt doorgeven om de parametergegevensleden van uw klasse weer SetFieldType te geven:

Parameterwaarde SetFieldType Type parametergegevenslid
CFieldExchange::inputParam Invoerparameter. Een waarde die wordt doorgegeven aan de query of opgeslagen procedure van de recordset.
CFieldExchange::param hetzelfde als CFieldExchange::inputParam.
CFieldExchange::outputParam Uitvoerparameter. Een retourwaarde van de opgeslagen procedure van de recordset.
CFieldExchange::inoutParam Invoer-/uitvoerparameter. Een waarde die wordt doorgegeven aan en geretourneerd door de opgeslagen procedure van de recordset.

Over het algemeen moet elke groep RFX-functie-aanroepen die zijn gekoppeld aan veldgegevensleden of parametergegevensleden worden voorafgegaan door een aanroep naar SetFieldType. De parameter nFieldType van elke SetFieldType aanroep identificeert het type gegevensleden dat wordt vertegenwoordigd door de RFX-functie-aanroepen die volgen op de SetFieldType aanroep.

Zie de lidfunctie FlushResultSet voor meer informatie over het CRecordset verwerken van uitvoer- en invoer-/uitvoerparameters. Zie het onderwerp Record Field Exchange Functions voor meer informatie over de functies RFX en Bulk RFX. Zie het artikel Recordset: Records ophalen in bulk (ODBC) voor gerelateerde informatie over het ophalen van bulkrijen.

Example

In dit voorbeeld ziet u verschillende aanroepen naar RFX-functies met bijbehorende aanroepen naar SetFieldType. Houd er rekening mee dat deze SetFieldType wordt aangeroepen via de pFX aanwijzer naar een CFieldExchange object.

void CSections::DoFieldExchange(CFieldExchange *pFX)
{
   pFX->SetFieldType(CFieldExchange::outputColumn);
   RFX_Text(pFX, _T("[CourseID]"), m_CourseID);
   RFX_Text(pFX, _T("[InstructorID]"), m_InstructorID);
   RFX_Text(pFX, _T("[RoomNo]"), m_RoomNo);
   RFX_Text(pFX, _T("[Schedule]"), m_Schedule);

   // output parameter
   pFX->SetFieldType(CFieldExchange::outputParam);
   RFX_Long(pFX, _T("Instructor_Count"), m_nCountParam);

   // input parameter
   pFX->SetFieldType(CFieldExchange::inputParam);
   RFX_Text(pFX, _T("Department_Name"), m_strNameParam);
}

Zie ook

Hiërarchiegrafiek
CRecordset-klasse