Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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::outputColumnvoor veldgegevensleden.CFieldExchange::inputParamofCFieldExchange::paramvoor leden van invoerparametergegevens.CFieldExchange::outputParamvoor leden van uitvoerparametergegevens.CFieldExchange::inoutParamvoor 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::outputColumnCFieldExchange::inputParamCFieldExchange::paramCFieldExchange::outputParamCFieldExchange::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);
}