// BDE - (C) Copyright 1995 by Borland International // Aliases.c #include "snipit.h" //===================================================================== // Function: // Aliases(); // // Description: // This example list the aliases available in the current // configuration file. //===================================================================== void Aliases (void) { hDBIDb hDb; // Handle to the database hDBICur hCur; // Handle to the table DBIResult rslt; // Return value from IDAPI functions CURProps TblProps; // Table properties pBYTE pRecBuf; // Record buffer DBINAME szDatabase; // String to contain the driver name BOOL bIsBlank; // Is the field blank? DBDesc dbDesc; // Database descriptor Screen("*** Alias Information 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"); rslt = DbiOpenDatabaseList(&hCur); if (ChkRslt(rslt, "OpenDatabaseList") != DBIERR_NONE) { CloseDbAndExit(&hDb); Screen("\r\n*** End of example ***"); return; } // Allocate space for the record buffer. rslt = DbiGetCursorProps(hCur, &TblProps); ChkRslt(rslt, "GetCursorProps"); pRecBuf = (pBYTE) malloc(TblProps.iRecBufSize * sizeof(BYTE)); if (pRecBuf == NULL) { Screen(" Error - Could not allocate memory"); rslt = DbiCloseCursor(&hCur); ChkRslt(rslt, "CloseCursor"); CloseDbAndExit(&hDb); Screen("\r\n*** End of example ***"); return; } Screen(" Go to the beginning of the table..."); rslt = DbiSetToBegin(hCur); ChkRslt(rslt, "SetToBegin"); // Display information about all available aliases // in the configuration file. while (DbiGetNextRecord(hCur, dbiNOLOCK, pRecBuf, NULL) == DBIERR_NONE) { // Get the name of the driver. rslt = DbiGetField(hCur, 1, pRecBuf, (pBYTE) szDatabase, &bIsBlank); ChkRslt(rslt, "GetField"); // Get the description of the alias. rslt = DbiGetDatabaseDesc(szDatabase, &dbDesc); if (ChkRslt(rslt, "GetDriverDesc") == DBIERR_NONE) { // Display the information about the database. Screen("\r\n Logical Name or Alias: %s", dbDesc.szName); Screen(" Physical Name\\Path: %s", dbDesc.szPhyName); Screen(" Database type: %s", dbDesc.szDbType); } } // Clean up. free(pRecBuf); rslt = DbiCloseCursor(&hCur); ChkRslt(rslt, "CloseCursor"); Screen("\r\n Close the database and exit IDAPI..."); CloseDbAndExit(&hDb); Screen("\r\n*** End of Example ***"); }