// BDE - (C) Copyright 1995 by Borland International // fieldmap.c #include "snipit.h" static const char szTblName[] = "Vendors"; static const char szTblType[] = szPARADOX; // Field descriptor used in mapping the fields of the table. static SNIPFAR FLDDesc FldDescs1[] = { { 1, // Field number "Vendor Name",// Field name fldZSTRING, // Field type fldUNKNOWN, // Field subtype 20, // Field size ( 1 or 0, except // BLOb or CHAR field ) 0, // Decimal places ( 0 ) // computed 0, // Offset in record ( 0 ) 0, // Length in bytes ( 0 ) 0, // For Null bits ( 0 ) fldvNOCHECKS, // Validity checks ( 0 ) fldrREADWRITE // Rights }, { 2, "State/Prov", fldZSTRING, fldUNKNOWN, 20, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE } }; // FldDescs1 //===================================================================== // Function: // TBFieldMap(); // // Description: // This example shows how to set a field map on a cursor. Field // maps limit the number of fields that are visible to the user. // This limits the data that needs to be transferred. //===================================================================== void TBFieldMap (void) { hDBIDb hDb; // Handle to the database hDBICur hCur; // Handle to the table UINT16 uNumFields; // Number of fields in the mapping UINT32 uNumRecs = 10; // Number of records to display DBIResult rslt; // Return value from IDAPI functions Screen("*** Field Mapping Example ***\r\n"); BREAK_IN_DEBUGGER(); Screen(" Initializing IDAPI... "); if (InitAndConnect(&hDb) != DBIERR_NONE) { Screen("\r\n*** End of Example ***"); return; } Screen(" Setting the database directory..."); rslt = DbiSetDirectory(hDb, (pCHAR) szTblDirectory); ChkRslt(rslt, "SetDirectory"); Screen(" Open the %s table....", szTblName); rslt = DbiOpenTable(hDb, (pCHAR) szTblName, (pCHAR) szTblType, NULL, NULL, 0, dbiREADWRITE, dbiOPENSHARED, xltFIELD, FALSE, NULL, &hCur); if (ChkRslt(rslt, "OpenTable") != DBIERR_NONE) { CloseDbAndExit(&hDb); Screen("\r\n*** End of Example ***"); return; } Screen(" Change the fields that are visible in the table..."); // Determine the number of fields in the descriptor. uNumFields = sizeof(FldDescs1) / sizeof (FldDescs1[0]); // Set the field mapping as specified in the field descriptor. rslt = DbiSetFieldMap(hCur, uNumFields, FldDescs1); ChkRslt(rslt, "SetFieldMap"); rslt = DbiSetToBegin(hCur); ChkRslt(rslt, "SetToBegin"); Screen(" Display the table with an active field map..."); DisplayTable(hCur, uNumRecs); Screen("\r\n Remove all field mappings..."); rslt = DbiSetFieldMap(hCur, 0, 0); ChkRslt(rslt, "SetFieldMap"); rslt = DbiSetToBegin(hCur); ChkRslt(rslt, "SetToBegin"); Screen(" Display the table without any field mapping..."); DisplayTable(hCur, uNumRecs); Screen("\r\n Close the %s table...", szTblName); rslt = DbiCloseCursor(&hCur); ChkRslt(rslt, "CloseCursor"); Screen(" Close the database and exit IDAPI..."); CloseDbAndExit(&hDb); Screen("\r\n*** End of Example ***"); }