00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include "fennel/common/CommonPreamble.h"
00028 #include "fennel/calculator/SqlString.h"
00029
00030 FENNEL_BEGIN_NAMESPACE
00031
00032 int
00033 SqlStrCat(
00034 char* dest,
00035 int destStorageBytes,
00036 int destLenBytes,
00037 char const * const str,
00038 int strLenBytes)
00039 {
00040 if (destLenBytes + strLenBytes > destStorageBytes) {
00041
00042 throw "22001";
00043 }
00044
00045 memcpy(dest + destLenBytes, str, strLenBytes);
00046 return destLenBytes + strLenBytes;
00047 }
00048
00049
00050 int
00051 SqlStrCat(
00052 char* dest,
00053 int destStorageBytes,
00054 char const * const str1,
00055 int str1LenBytes,
00056 char const * const str2,
00057 int str2LenBytes)
00058 {
00059 if (str1LenBytes + str2LenBytes > destStorageBytes) {
00060
00061
00062 throw "22001";
00063 }
00064
00065 memcpy(dest, str1, str1LenBytes);
00066 memcpy(dest + str1LenBytes, str2, str2LenBytes);
00067 return str1LenBytes + str2LenBytes;
00068 }
00069
00070 int
00071 SqlStrCmp_Bin(
00072 char const * const str1,
00073 int str1LenBytes,
00074 char const * const str2,
00075 int str2LenBytes)
00076 {
00077
00078
00079 int minLenBytes =
00080 str1LenBytes > str2LenBytes ? str2LenBytes : str1LenBytes;
00081 int memc = memcmp(str1, str2, minLenBytes);
00082 if (memc > 0) {
00083
00084 return 1;
00085 } else if (memc < 0) {
00086
00087 return -1;
00088 } else if (str1LenBytes == str2LenBytes) {
00089
00090
00091 return 0;
00092 } else if (str1LenBytes > str2LenBytes) {
00093
00094 return 1;
00095 } else {
00096
00097 return -1;
00098 }
00099 }
00100
00101 int
00102 SqlStrCpy_Var(
00103 char* dest,
00104 int destStorageBytes,
00105 char const * const str,
00106 int strLenBytes)
00107 {
00108 if (strLenBytes > destStorageBytes) {
00109
00110
00111 throw "22001";
00112 }
00113 memcpy(dest, str, strLenBytes);
00114 return strLenBytes;
00115 }
00116
00117 int
00118 SqlStrLenBit(int strLenBytes)
00119 {
00120 return 8 * strLenBytes;
00121 }
00122
00123 int
00124 SqlStrLenOct(int strLenBytes)
00125 {
00126 return strLenBytes;
00127 }
00128
00129
00130 FENNEL_END_NAMESPACE
00131
00132