{ Aliases.pas } program Aliases; {$IfDef VER80} uses SnipTool, SnipData, SysUtils, WinTypes, WinProcs, DbiProcs, DbiTypes, DbiErrs; {$Else} uses WinTypes, WinCrt, Strings, DbiProcs, DbiTypes, DbiErrs, SnipTool, SnipData; {$EndIf} {===================================================================== Procedure: Alias(); Input: None. Return: None. Description: This example list the aliases available in the current configuration file. ===================================================================== } var hDb: hDBIDb; { Handle to the Database } hDbCur: hDBICur; { Handle to the table } rslt: DBIResult; { Return value from IDAPI functions } TblProps: CURProps; { Table Properties } pRecBuf: pBYTE; { Record Buffer } szDatabase: array[0..DBIMAXNAMELEN+1] of CHAR; { String to contain the driver name } bIsBlank: BOOL; { Is the field blank? } DBDes: DBDesc; { Database descriptor } begin Screen('*** Alias Information Example ***'); Screen(''); Screen(' Initializing IDAPI...'); if (InitAndConnect(hDb) <> DBIERR_NONE) then { Terminate example if } begin { Initialization fails } Screen(''); Screen('*** End of Example ***'); exit; end; Screen(' Setting the default Database directory... '); ChkRslt(DbiSetDirectory(hDb, pCHAR(szTblDirectory)), DBIERR_NONE, ' Error - DbSetDirectory.'); rslt := ChkRslt(DbiOpenDatabaseList(hDbCur), DBIERR_NONE, ' Error - OpenDatabaseList.'); if (rslt <> DBIERR_NONE) then begin Screen(''); Screen(' Close the Database and exit IDAPI...'); CloseDbAndexit(hDb); Screen(''); Screen('*** End of example ***'); exit; end; { Get the size of the record buffer } ChkRslt(DbiGetCursorProps(hDbCur, TblProps), DBIERR_NONE, ' Error - GetCursorProps.'); { Allocate space for the Record Buffer } GetMem(pRecBuf, TblProps.iRecBufSize * sizeof(BYTE)); if not Assigned(pRecBuf) then begin Screen(' Error - Could not allocate memory.'); ChkRslt(DbiCloseCursor(hDbCur), DBIERR_NONE, ' Error - CloseCursor.'); Screen(''); Screen(' Close the Database and exit IDAPI...'); CloseDbAndexit(hDb); Screen(''); Screen('*** End of example ***'); exit; end; Screen(' Go to the beginning of the table...'); ChkRslt(DbiSetToBegin(hDbCur), DBIERR_NONE, ' Error - SetToBegin.'); { Display information about all available aliases set in the configuration file. } while (DbiGetNextRecord(hDbCur, dbiNoLock, pRecBuf, nil) = DBIERR_NONE) do begin { Get the name of the Driver } ChkRslt(DbiGetField(hDbCur, 1, pRecBuf, @szDatabase, bIsBlank), DBIERR_NONE, ' Error - GetField.'); { Skip a line } Screen(''); { Get the description of the alias } rslt := ChkRslt(DbiGetDatabaseDesc(szDatabase, @DBDes), DBIERR_NONE, ' Error - GetDriverDesc.'); if (rslt <> DBIERR_NONE) then continue; { Display the information about the database } Screen(' Logical Name or Alias: '+ ' '+StrPas(DBDes.szName)+''); Screen(' Physical Name/Path: '+ ' '+StrPas(DBDes.szPhyName)+''); Screen(' Database type: '+ ' '+StrPas(DBDes.szDbType)+''); end; { Free the record buffer } FreeMem(pRecBuf, TblProps.iRecBufSize * sizeof(BYTE)); { Close the table } ChkRslt(DbiCloseCursor(hDbCur), DBIERR_NONE, ' Error - CloseCursor.'); Screen(''); Screen(' Close the Database and exit IDAPI...'); CloseDbAndexit(hDb); Screen(''); Screen('*** End of Example ***'); end.