176 lines
6.2 KiB
C
176 lines
6.2 KiB
C
/***************************************************************************/
|
|
/* UTIL.H */
|
|
/* Copyright (C) 1995-96 SYWARE Inc., All rights reserved */
|
|
/***************************************************************************/
|
|
|
|
#ifdef WIN32
|
|
#define INTFUNC __stdcall
|
|
#else
|
|
#define INTFUNC PASCAL
|
|
#endif
|
|
|
|
/***************************************************************************/
|
|
|
|
/* To turn on tracing, set ISAM_TRACE to TRUE and recompile */
|
|
#define ISAM_TRACE FALSE
|
|
|
|
/* Max size for SQL_LONGVARCHAR */
|
|
#define ISAM_MAX_LONGVARCHAR 16384 //cannot be more than (32767 - 4)
|
|
|
|
/***************************************************************************/
|
|
#define BINARY_LENGTH(x) *((SDWORD FAR *) x)
|
|
#define BINARY_DATA(x) (x + sizeof(SDWORD))
|
|
/***************************************************************************/
|
|
RETCODE INTFUNC ReturnString (
|
|
PTR rgbValue,
|
|
SWORD cbValueMax,
|
|
SWORD FAR *pcbValue,
|
|
LPCUSTR lpstr);
|
|
|
|
RETCODE INTFUNC ReturnStringD (
|
|
PTR rgbValue,
|
|
SDWORD cbValueMax,
|
|
SDWORD FAR *pcbValue,
|
|
LPCUSTR lpstr);
|
|
|
|
/* Takes the zero terminated string 'lpstr' and copies it to buffer */
|
|
/* rgbValue[0..cbValueMax-1], truncating it if need be (if rgbValue */
|
|
/* is null, no data is copied). Also, if pcbValue is not null, it */
|
|
/* is set to the length of the un-truncated string. */
|
|
/* */
|
|
/* Returns ERR_SUCCESS or ERR_DATATRUNCATED */
|
|
|
|
/***************************************************************************/
|
|
|
|
RETCODE INTFUNC ConvertSqlToC (
|
|
SWORD fSqlTypeIn,
|
|
BOOL fUnsignedAttributeIn,
|
|
PTR rgbValueIn,
|
|
SDWORD cbValueIn,
|
|
SDWORD FAR *pcbOffset,
|
|
SWORD fCTypeOut,
|
|
PTR rgbValueOut,
|
|
SDWORD cbValueOutMax,
|
|
SDWORD FAR *pcbValueOut);
|
|
|
|
/* Copies rgbValueIn to rgbValueOut (if not null) and sets pcbValueOut (if */
|
|
/* not null). Data is converted as need be. Data is copied stating at */
|
|
/* rgbValueIn[*pcbOffset] and *pcbOffset is increased by the number of */
|
|
/* bytes returned. */
|
|
/* */
|
|
/* Returns ERR_SUCCESS or ERR_DATATRUNCATED or some other error */
|
|
|
|
/***************************************************************************/
|
|
|
|
BOOL INTFUNC PatternMatch(
|
|
BOOL fEscape,
|
|
LPUSTR lpCandidate,
|
|
SDWORD cbCandidate,
|
|
LPUSTR lpPattern,
|
|
SDWORD cbPattern,
|
|
BOOL fCaseSensitive);
|
|
|
|
/* Tests to see if lpCandidate matched the template specified by */
|
|
/* lpPattern. Percent signs (%) match zero or more characters. */
|
|
/* Underscores (_) match single characters. The camparison is done */
|
|
/* case-insensitive if fCaseSensitive is FALSE. */
|
|
/* */
|
|
/* If fEscape is TRUE, "%%" in the pattern only matches a single '%' in */
|
|
/* the candidate and "%_" in the pattern only matches a single '_' in the */
|
|
/* candidate. */
|
|
/* */
|
|
/* Returns TRUE if there is a match, otherwise FALSE. */
|
|
|
|
/***************************************************************************/
|
|
|
|
SDWORD INTFUNC TrueSize(
|
|
LPUSTR lpStr,
|
|
SDWORD cbStr,
|
|
SDWORD cbMax);
|
|
|
|
/* Returns the size of a string (but not larger than cbMax) */
|
|
|
|
/***************************************************************************/
|
|
|
|
BOOL INTFUNC DoubleToChar (
|
|
double dbl,
|
|
BOOL ScientificNotationOK,
|
|
LPUSTR lpChar,
|
|
SDWORD cbChar);
|
|
|
|
/* Convert a double to a character string. Returns TRUE if value is */
|
|
/* truncated (lpChar will not contain a null terminator). Otherwise FALSE.*/
|
|
|
|
/***************************************************************************/
|
|
|
|
void INTFUNC DateToChar (
|
|
DATE_STRUCT FAR *lpDate,
|
|
LPUSTR lpChar);
|
|
|
|
/* Convert a date to a character string */
|
|
|
|
/***************************************************************************/
|
|
|
|
void INTFUNC TimeToChar (
|
|
TIME_STRUCT FAR *lpTime,
|
|
LPUSTR lpChar);
|
|
|
|
/* Convert a time to a character string */
|
|
|
|
/***************************************************************************/
|
|
|
|
void INTFUNC TimestampToChar (
|
|
TIMESTAMP_STRUCT FAR *lpTimestamp,
|
|
LPUSTR lpChar);
|
|
|
|
/* Convert a timestamp to a character string */
|
|
|
|
/***************************************************************************/
|
|
|
|
RETCODE INTFUNC CharToDouble (
|
|
LPUSTR lpChar,
|
|
SDWORD cbChar,
|
|
BOOL fIntegerOnly,
|
|
double dblLowBound,
|
|
double dblHighBound,
|
|
double FAR *lpDouble);
|
|
|
|
/* Convert a character string to a double */
|
|
|
|
/***************************************************************************/
|
|
|
|
RETCODE INTFUNC CharToDate (
|
|
LPUSTR lpChar,
|
|
SDWORD cbChar,
|
|
DATE_STRUCT FAR *lpDate);
|
|
|
|
/* Convert a character string to a date */
|
|
|
|
/***************************************************************************/
|
|
|
|
RETCODE INTFUNC CharToTime (
|
|
LPUSTR lpChar,
|
|
SDWORD cbChar,
|
|
TIME_STRUCT FAR *lpTime);
|
|
|
|
/* Convert a character string to a time */
|
|
|
|
/***************************************************************************/
|
|
|
|
RETCODE INTFUNC CharToTimestamp (
|
|
LPUSTR lpChar,
|
|
SDWORD cbChar,
|
|
TIMESTAMP_STRUCT FAR *lpTimestamp);
|
|
|
|
/* Convert a character string to a timestamp */
|
|
|
|
/***************************************************************************/
|
|
|
|
#ifndef WIN32
|
|
BOOL INTFUNC DeleteFile (
|
|
LPCSTR lpszFilename);
|
|
|
|
/* Deletes specified file */
|
|
#endif
|
|
/***************************************************************************/
|