home *** CD-ROM | disk | FTP | other *** search
- // BDE - (C) Copyright 1994 by Borland International
-
- #include "query.h"
-
- // The way to use this macro is to include the macro.h header
- // file where you want to use this function. Then pass an IDAPI
- // function as a parameter to the macro:
- //
- // #define DBIErr(parm) DBIError(__FILE__, __LINE__, \ //
- // #parm, parm) ; \ //
- // if ( GlobalDBIErr ) { \ //
- // return GlobalDBIErr ;}
- //
- // For Example:
- // DBIErr(DbiCreateTable(hDb, bOverWrite, &crTblDsc)) ;
-
- DBIResult GlobalDBIErr;
- static char szDBIStatus[DBIMAXMSGLEN+1];
- static char szMessage[DBIMAXMSGLEN+1+110];
-
- //====================================================================
- // Name: DBIError(module, line, function, retVal);
- //
- // Input: module - Module name
- // line - Line number
- // function - Engine function name
- // retVal - Result code
- //
- // Return: A DBIResult value
- //
- // Description:
- // This is function that takes in the information of where
- // the error accured and displays that is a message box.
- // The information listed above explains how to use this
- // function inside of a macro.
- //====================================================================
- DBIResult
- DBIError (pCHAR module, UINT16 line, pCHAR function, DBIResult retVal)
- {
- if (retVal == DBIERR_NONE)
- {
- GlobalDBIErr = DBIERR_NONE;
- return retVal;
- }
- if (retVal != DBIERR_CANTFINDODAPI)
- {
- DbiGetErrorString(retVal, szDBIStatus); // Get the error message
- sprintf(szMessage, "Module:\t\t%s\nFunction:\t%s\nLine:\t\t%d\n"
- "Category:\t%d\nCode:\t\t%d\nError:\t\t%s\n", module,
- function, line, ErrCat(retVal), ErrCode(retVal),
- szDBIStatus);
- MessageBox(NULL, szMessage, "IDAPI Error",
- MB_ICONEXCLAMATION);
- }
- else
- {
- MessageBox(NULL, "Cannot find IDAPI files: Check WIN.INI for"
- "an [IDAPI] section.", "IDAPI Initialization Error",
- MB_ICONHAND | MB_OK);
- }
- GlobalDBIErr = retVal;
- return retVal;
- }
-