int STRBLK::CompVal(PVAL vp, int n) { ChkIndx(n); ChkTyp(vp); if (vp->IsNull() || !Strp[n]) DBUG_ASSERT(false); return strcmp(vp->GetCharValue(), Strp[n]); } // end of CompVal
int CHRBLK::CompVal(PVAL vp, int n) { ChkIndx(n); ChkTyp(vp); char *xvp = vp->GetCharValue(); // Get Value zero ended string bool ci = Ci || vp->IsCi(); // true if is case insensitive GetValPtrEx(n); // Get a zero ended string in Valp return (ci) ? stricmp(xvp, Valp) : strcmp(xvp, Valp); } // end of CompVal
void STRBLK::SetValue(PVAL valp, int n) { ChkIndx(n); ChkTyp(valp); if (!valp->IsNull()) SetValue((PSZ)valp->GetCharValue(), n); else Strp[n] = NULL; } // end of SetValue
void CHRBLK::SetValue(PVAL valp, int n) { bool b; ChkIndx(n); ChkTyp(valp); if (!(b = valp->IsNull())) SetValue((PSZ)valp->GetCharValue(), n); else Reset(n); SetNull(n, b && Nullable); } // end of SetValue
int STRBLK::Find(PVAL vp) { int i; PSZ s; ChkTyp(vp); if (vp->IsNull()) return -1; else s = vp->GetCharValue(); for (i = 0; i < Nval; i++) if (Strp[i] && !strcmp(s, Strp[i])) break; return (i < Nval) ? i : (-1); } // end of Find
int CHRBLK::Find(PVAL vp) { ChkTyp(vp); int i; bool ci = Ci || vp->IsCi(); PSZ s = vp->GetCharValue(); if (vp->IsNull()) return -1; for (i = 0; i < Nval; i++) { if (IsNull(i)) continue; GetValPtrEx(i); // Get a zero ended string in Valp if (!((ci) ? strnicmp(s, Valp, Long) : strncmp(s, Valp, Long))) break; } // endfor i return (i < Nval) ? i : (-1); } // end of Find
if (!(b = pv->IsNull(n2))) memcpy(Chrp + n1 * Long, ((CHRBLK*)pv)->Chrp + n2 * Long, Long); else Reset(n1); SetNull(n1, b && Nullable); } // end of SetValue /***********************************************************************/ /* Set one value in a block if val is less than the current value. */ /***********************************************************************/ void CHRBLK::SetMin(PVAL valp, int n) { CheckParms(valp, n) CheckBlanks char *vp = valp->GetCharValue(); char *bp = Chrp + n * Long; if (((Ci) ? strnicmp(vp, bp, Long) : strncmp(vp, bp, Long)) < 0) memcpy(bp, vp, Long); } // end of SetMin /***********************************************************************/ /* Set one value in a block if val is greater than the current value. */ /***********************************************************************/ void CHRBLK::SetMax(PVAL valp, int n) { CheckParms(valp, n) CheckBlanks char *vp = valp->GetCharValue();