@@ -7058,7 +7200,45 @@ xbFalse - Record not deleted.
-
Undelete all records.
+
Set auto lock.
+
This routine sets the auto lock setting for this table. There is an overall system level auto lock default setting and each table can have it's own autolock setting. This method controls the table level auto lock setting.
+
Parameters
+
+
iAutoLock
1 - Use auto lock for this table.
+ 0 - Don't use auto lock for this table.
+ -1 - (minus one) Use system default.
+
@@ -8823,9 +8950,9 @@ The mode can also include the letter "b" for binary ie; "r+b". The "b" is ignore
The documentation for this class was generated from the following files:
@@ -3350,8 +3358,8 @@ The mode can also include the letter "b" for binary ie; "r+b". The "b" is ignore
The documentation for this class was generated from the following files:
diff --git a/docs/doxygen/html/structxb_1_1xbTblList.html b/docs/doxygen/html/structxb_1_1xbTblList.html
index 0589131..3842fb2 100644
--- a/docs/doxygen/html/structxb_1_1xbTblList.html
+++ b/docs/doxygen/html/structxb_1_1xbTblList.html
@@ -144,7 +144,7 @@ Data Fields
The documentation for this struct was generated from the following file:
diff --git a/docs/doxygen/html/xbtypes_8h.html b/docs/doxygen/html/xbtypes_8h.html
index 68e5377..e377fe7 100644
--- a/docs/doxygen/html/xbtypes_8h.html
+++ b/docs/doxygen/html/xbtypes_8h.html
@@ -5,7 +5,7 @@
-Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.2/src/include/xbtypes.h File Reference
+Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/include/xbtypes.h File Reference
diff --git a/docs/doxygen/html/xbtypes_8h_source.html b/docs/doxygen/html/xbtypes_8h_source.html
index 9222c7d..8012370 100644
--- a/docs/doxygen/html/xbtypes_8h_source.html
+++ b/docs/doxygen/html/xbtypes_8h_source.html
@@ -5,7 +5,7 @@
-Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.2/src/include/xbtypes.h Source File
+Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/include/xbtypes.h Source File
diff --git a/docs/doxygen/html/xbuda_8cpp.html b/docs/doxygen/html/xbuda_8cpp.html
index 7f2662d..ff36d02 100644
--- a/docs/doxygen/html/xbuda_8cpp.html
+++ b/docs/doxygen/html/xbuda_8cpp.html
@@ -5,7 +5,7 @@
-Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.2/src/core/xbuda.cpp File Reference
+Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/core/xbuda.cpp File Reference
diff --git a/docs/doxygen/html/xbuda_8h.html b/docs/doxygen/html/xbuda_8h.html
index 37e23ca..8a7d6aa 100644
--- a/docs/doxygen/html/xbuda_8h.html
+++ b/docs/doxygen/html/xbuda_8h.html
@@ -5,7 +5,7 @@
-Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.2/src/include/xbuda.h File Reference
+Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/include/xbuda.h File Reference
diff --git a/docs/doxygen/html/xbuda_8h_source.html b/docs/doxygen/html/xbuda_8h_source.html
index 8fceaa1..9187168 100644
--- a/docs/doxygen/html/xbuda_8h_source.html
+++ b/docs/doxygen/html/xbuda_8h_source.html
@@ -5,7 +5,7 @@
-Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.2/src/include/xbuda.h Source File
+Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/include/xbuda.h Source File
diff --git a/docs/doxygen/html/xbxbase_8cpp.html b/docs/doxygen/html/xbxbase_8cpp.html
index 51647e7..0db46a2 100644
--- a/docs/doxygen/html/xbxbase_8cpp.html
+++ b/docs/doxygen/html/xbxbase_8cpp.html
@@ -5,7 +5,7 @@
-Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.2/src/core/xbxbase.cpp File Reference
+Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/core/xbxbase.cpp File Reference
diff --git a/docs/doxygen/html/xbxbase_8h.html b/docs/doxygen/html/xbxbase_8h.html
index 936104d..b218730 100644
--- a/docs/doxygen/html/xbxbase_8h.html
+++ b/docs/doxygen/html/xbxbase_8h.html
@@ -5,7 +5,7 @@
-Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.2/src/include/xbxbase.h File Reference
+Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/include/xbxbase.h File Reference
diff --git a/docs/doxygen/html/xbxbase_8h_source.html b/docs/doxygen/html/xbxbase_8h_source.html
index 571efee..48766c4 100644
--- a/docs/doxygen/html/xbxbase_8h_source.html
+++ b/docs/doxygen/html/xbxbase_8h_source.html
@@ -5,7 +5,7 @@
-Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.2/src/include/xbxbase.h Source File
+Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/include/xbxbase.h Source File
diff --git a/docs/doxygen/latex/classxb_1_1xbDate.pdf b/docs/doxygen/latex/classxb_1_1xbDate.pdf
index a18103b..6115bce 100644
Binary files a/docs/doxygen/latex/classxb_1_1xbDate.pdf and b/docs/doxygen/latex/classxb_1_1xbDate.pdf differ
diff --git a/docs/doxygen/latex/classxb_1_1xbDate.tex b/docs/doxygen/latex/classxb_1_1xbDate.tex
index 9001be4..654e005 100644
--- a/docs/doxygen/latex/classxb_1_1xbDate.tex
+++ b/docs/doxygen/latex/classxb_1_1xbDate.tex
@@ -108,6 +108,10 @@ void \mbox{\hyperlink{classxb_1_1xbSsv_a5f74db23f8902846d581935c7db73f9c}{Set\+D
\begin{DoxyCompactList}\small\item\em Set the default date format. \end{DoxyCompactList}\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}{Bit\+Set}} (unsigned char c, xb\+Int16 i\+Bit\+No) const
\begin{DoxyCompactList}\small\item\em Check a bit in a one byte field and see if it is set. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}{Bit\+Dump}} (unsigned char c) const
+\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}{Bit\+Dump}} (char c) const
+\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a6982f973e81587b04916f4509746aaf5}{Get\+Default\+Auto\+Commit}} () const
\begin{DoxyCompactList}\small\item\em Get the default auto commit setting. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classxb_1_1xbSsv_a25542afadaaf39b4fb5a1772a29cc0bd}{Set\+Default\+Auto\+Commit}} (\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} b\+Default\+Auto\+Commit)
@@ -234,6 +238,18 @@ Destructor.
\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}\label{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}}
+\index{xb::xbDate@{xb::xbDate}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbDate@{xb::xbDate}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{char}]{c }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}
+
+\mbox{\Hypertarget{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}\label{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}}
+\index{xb::xbDate@{xb::xbDate}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbDate@{xb::xbDate}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{unsigned char}]{c }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}
+
\mbox{\Hypertarget{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}\label{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}}
\index{xb::xbDate@{xb::xbDate}!BitSet@{BitSet}}
\index{BitSet@{BitSet}!xb::xbDate@{xb::xbDate}}
@@ -1025,5 +1041,5 @@ The year of the date.
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbdate_8h}{xbdate.\+h}}\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbdate_8cpp}{xbdate.\+cpp}}\end{DoxyCompactItemize}
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbdate_8h}{xbdate.\+h}}\item
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbdate_8cpp}{xbdate.\+cpp}}\end{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/classxb_1_1xbDbf.pdf b/docs/doxygen/latex/classxb_1_1xbDbf.pdf
index 0cf80d4..2057f45 100644
Binary files a/docs/doxygen/latex/classxb_1_1xbDbf.pdf and b/docs/doxygen/latex/classxb_1_1xbDbf.pdf differ
diff --git a/docs/doxygen/latex/classxb_1_1xbDbf.tex b/docs/doxygen/latex/classxb_1_1xbDbf.tex
index cf0ac0a..479fc79 100644
--- a/docs/doxygen/latex/classxb_1_1xbDbf.tex
+++ b/docs/doxygen/latex/classxb_1_1xbDbf.tex
@@ -44,16 +44,16 @@ virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a3067fdfa3a7a5c15651f6e89d11
\begin{DoxyCompactList}\small\item\em Delete all records. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_acd8c10579229f3a2e2c5fdb7fcef90db}{Delete\+Record}} ()
\begin{DoxyCompactList}\small\item\em Delete the current record. \end{DoxyCompactList}\item
-virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_ab1f4a515533402f872cedcd0322aabd4}{Dump\+Header}} (xb\+Int16 i\+Option) const
-\item
-virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a3a6a068addffd06fc9a996639d6ca69e}{Dump\+Record}} (xb\+UInt32 ul\+Rec\+No, xb\+Int16 i\+Output\+Dest=0, xb\+Int16 i\+Output\+Fmt=0)
-\item
+virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a309b5b1fb6a5c048c4bfb404d011ac55}{Dump\+Header}} (xb\+Int16 i\+Option) const
+\begin{DoxyCompactList}\small\item\em Dump dbf file header. \end{DoxyCompactList}\item
+virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_aba30399f15885a07f87f904c0d0656fa}{Dump\+Record}} (xb\+UInt32 ul\+Rec\+No, xb\+Int16 i\+Output\+Dest=0, xb\+Int16 i\+Output\+Fmt=0)
+\begin{DoxyCompactList}\small\item\em Dump record. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_abb9e20c5efacd4fea80f1515abbc6b55}{Get\+Auto\+Commit}} () const
\begin{DoxyCompactList}\small\item\em Get auto commit setting. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_ae0c00226fd2ea7a67f101e795467ed68}{Get\+Auto\+Commit}} (xb\+Int16 i\+Option) const
\begin{DoxyCompactList}\small\item\em Get auto commit setting. \end{DoxyCompactList}\item
virtual xb\+UInt32 \mbox{\hyperlink{classxb_1_1xbDbf_a643a80a3792a52760c8e09ba18719503}{Get\+Cur\+Rec\+No}} () const
-\begin{DoxyCompactList}\small\item\em Get Auto Lock setting. \end{DoxyCompactList}\item
+\begin{DoxyCompactList}\small\item\em Get a pointer to the current index object. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_ac1110d867ba297a52c8b0e83e88f05e6}{Get\+Dbf\+Status}} () const
\begin{DoxyCompactList}\small\item\em Return the current dbf status. \end{DoxyCompactList}\item
virtual xb\+Int32 \mbox{\hyperlink{classxb_1_1xbDbf_add27d8ef555a13b336b8c804165dc15e}{Get\+Field\+Cnt}} () const
@@ -72,14 +72,14 @@ virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a3191428a7a92d9107d8d4244888
\begin{DoxyCompactList}\small\item\em Get the next record. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a18fdcb4ab15b36cd47fa6f6f7a540d1a}{Get\+Next\+Record}} (xb\+Int16 i\+Option, xb\+UInt32 ul\+Start\+Rec)
\begin{DoxyCompactList}\small\item\em Get the next record. \end{DoxyCompactList}\item
-virtual xb\+Int32 \mbox{\hyperlink{classxb_1_1xbDbf_a13393704a8a191d4d6555ae31d3c3e92}{Get\+Physical\+Ix\+Cnt}} () const
-\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_ab3d248e5221b4f0809897cd43af17a1e}{Get\+Prev\+Record}} ()
\begin{DoxyCompactList}\small\item\em Get the previous record. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a7eadc7b08d73003802b90584f7b33387}{Get\+Prev\+Record}} (xb\+Int16 i\+Option)
\begin{DoxyCompactList}\small\item\em Get the previous record. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a26fba086b07caeab95066bf1c8d25161}{Get\+Record}} (xb\+UInt32 ul\+Rec\+No)
\begin{DoxyCompactList}\small\item\em Get record for specified record number. \end{DoxyCompactList}\item
+virtual xb\+UInt32 \mbox{\hyperlink{classxb_1_1xbDbf_a0aaa06d6028e75efc6b5131f7356ecce}{Get\+Record\+Count}} ()
+\begin{DoxyCompactList}\small\item\em Get the current number of records in the dbf data file. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_ac196ad55335e1f4789d698748434dc89}{Get\+Record\+Cnt}} (xb\+UInt32 \&ul\+Rec\+Cnt)
\begin{DoxyCompactList}\small\item\em Get the current number of records in the dbf data file. \end{DoxyCompactList}\item
virtual char $\ast$ \mbox{\hyperlink{classxb_1_1xbDbf_aa3e38c4057d726a28a27d07a1610d124}{Get\+Record\+Buf}} (xb\+Int16 i\+Opt=0) const
@@ -92,12 +92,12 @@ virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a49212a9eb17f7fa9f303e08d5fc
\item
virtual \mbox{\hyperlink{classxb_1_1xbXBase}{xb\+XBase}} $\ast$ \mbox{\hyperlink{classxb_1_1xbDbf_ab21ec23c076b0c9affdc0f6672bd133f}{Get\+Xbase\+Ptr}} () const
\begin{DoxyCompactList}\small\item\em Get the pointer to the xb\+Xbase structure,. \end{DoxyCompactList}\item
-virtual \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbDbf_ac856fc1b110b46aefa1b2f5c0f530aa2}{Memo\+Fields\+Exist}} () const
-\item
-virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a97366c7362e409d7f09973a6aef8dad0}{Open}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+Table\+Name)
-\item
-virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_ac658818bf9b8f8ff7467d8d80495b324}{Open}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+Table\+Name, const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&\mbox{\hyperlink{classxb_1_1xbDbf_a73f9c792d0a769e2e604c1855245a276}{s\+Alias}})
-\item
+virtual \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbDbf_a013dc8c51fc1aa988de39cf3da6da950}{Memo\+Fields\+Exist}} () const
+\begin{DoxyCompactList}\small\item\em Check for existence of any memo fields. \end{DoxyCompactList}\item
+virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a69824d7bafc3f5a15bf7d09f2f511768}{Open}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+Table\+Name)
+\begin{DoxyCompactList}\small\item\em Open a table/dbf file. \end{DoxyCompactList}\item
+virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_ae388c5e02adc86e6e9988e697e061610}{Open}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+Table\+Name, const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&\mbox{\hyperlink{classxb_1_1xbDbf_a73f9c792d0a769e2e604c1855245a276}{s\+Alias}})
+\begin{DoxyCompactList}\small\item\em Open a table/dbf file. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a4d018cbf44d8d8b2145c9acab02c8adf}{Open}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+Table\+Name, const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&\mbox{\hyperlink{classxb_1_1xbDbf_a73f9c792d0a769e2e604c1855245a276}{s\+Alias}}, xb\+Int16 i\+Open\+Mode, xb\+Int16 i\+Share\+Mode)=0
\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a8a52bf3ef2123c0d17e6b1f67bf0dc55}{Pack}} ()
@@ -112,10 +112,12 @@ virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a060541addb5bb1f0fe12959ed6f
\begin{DoxyCompactList}\small\item\em Read dbf file header information. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a94d7d626ba691fd4b740c034673e6fc6}{Record\+Deleted}} (xb\+Int16 i\+Opt=0) const
\begin{DoxyCompactList}\small\item\em Return record deletion status. \end{DoxyCompactList}\item
+virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_aeeeb2eb5fabcd0f91d457df07b0e0708}{Rename}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} s\+New\+Name)=0
+\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a4cf7f0d423164f3cf074ae41f96f4e90}{Set\+Auto\+Commit}} (xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_ab506450954bc86e7bf1d7c4efe681f43}{i\+Auto\+Commit}})
\begin{DoxyCompactList}\small\item\em Set auto commit. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_ae94cb1bf9f75184f39d9e1a80ab49d4a}{Undelete\+All\+Records}} ()
-\begin{DoxyCompactList}\small\item\em Undelete all records. \end{DoxyCompactList}\item
+\begin{DoxyCompactList}\small\item\em Set auto lock. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a255681976a04fc722538bb630507b3a0}{Undelete\+Record}} ()
\begin{DoxyCompactList}\small\item\em Undelete one record. \end{DoxyCompactList}\item
virtual xb\+Int16 \mbox{\hyperlink{classxb_1_1xbDbf_a8ed0693b10b95aaa4e46037758d160ed}{Zap}} ()
@@ -342,8 +344,6 @@ xb\+Int16 \mbox{\hyperlink{classxb_1_1xbFile_ab3c668a8570433188382d31d7c60bd48}{
\begin{DoxyCompactList}\small\item\em Delete file. \end{DoxyCompactList}\item
xb\+Int16 \mbox{\hyperlink{classxb_1_1xbFile_afc8ce113aa72611a278233f9bb170012}{xb\+Rename}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+Old\+Name, const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+New\+Name)
\begin{DoxyCompactList}\small\item\em Rename file. \end{DoxyCompactList}\item
-xb\+Int16 \mbox{\hyperlink{classxb_1_1xbFile_ab0b2a2c88947921d98ebcb5b5ec34ed9}{xb\+Rename}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+Old\+Name, const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+New\+Name, xb\+Int16 i\+Option)
-\begin{DoxyCompactList}\small\item\em Rename file. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classxb_1_1xbFile_a7996b6e084665c37c3892faea64b3505}{xb\+Rewind}} ()
\begin{DoxyCompactList}\small\item\em Xbase wrapper for rewind. \end{DoxyCompactList}\item
xb\+Int16 \mbox{\hyperlink{classxb_1_1xbFile_a518bfcbfa3699d883cf89affee383296}{xb\+Truncate}} (xb\+Int64 ll\+Size)
@@ -366,6 +366,10 @@ void \mbox{\hyperlink{classxb_1_1xbSsv_a5f74db23f8902846d581935c7db73f9c}{Set\+D
\begin{DoxyCompactList}\small\item\em Set the default date format. \end{DoxyCompactList}\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}{Bit\+Set}} (unsigned char c, xb\+Int16 i\+Bit\+No) const
\begin{DoxyCompactList}\small\item\em Check a bit in a one byte field and see if it is set. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}{Bit\+Dump}} (unsigned char c) const
+\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}{Bit\+Dump}} (char c) const
+\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a6982f973e81587b04916f4509746aaf5}{Get\+Default\+Auto\+Commit}} () const
\begin{DoxyCompactList}\small\item\em Get the default auto commit setting. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classxb_1_1xbSsv_a25542afadaaf39b4fb5a1772a29cc0bd}{Set\+Default\+Auto\+Commit}} (\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} b\+Default\+Auto\+Commit)
@@ -550,6 +554,18 @@ Note\+: Locking memo files is not needed as the memo file updates are handled ou
\begin{DoxyReturn}{Returns}
\href{xbretcod_8h.html}{\texttt{ Return Codes}}
\end{DoxyReturn}
+\mbox{\Hypertarget{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}\label{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}}
+\index{xb::xbDbf@{xb::xbDbf}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbDbf@{xb::xbDbf}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{char}]{c }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}
+
+\mbox{\Hypertarget{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}\label{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}}
+\index{xb::xbDbf@{xb::xbDbf}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbDbf@{xb::xbDbf}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{unsigned char}]{c }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}
+
\mbox{\Hypertarget{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}\label{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}}
\index{xb::xbDbf@{xb::xbDbf}!BitSet@{BitSet}}
\index{BitSet@{BitSet}!xb::xbDbf@{xb::xbDbf}}
@@ -845,18 +861,58 @@ Display error message on console for a given error number.
{\em i\+Error\+Code} & Error number to reference \\
\hline
\end{DoxyParams}
-\mbox{\Hypertarget{classxb_1_1xbDbf_ab1f4a515533402f872cedcd0322aabd4}\label{classxb_1_1xbDbf_ab1f4a515533402f872cedcd0322aabd4}}
+\mbox{\Hypertarget{classxb_1_1xbDbf_a309b5b1fb6a5c048c4bfb404d011ac55}\label{classxb_1_1xbDbf_a309b5b1fb6a5c048c4bfb404d011ac55}}
\index{xb::xbDbf@{xb::xbDbf}!DumpHeader@{DumpHeader}}
\index{DumpHeader@{DumpHeader}!xb::xbDbf@{xb::xbDbf}}
\doxysubsubsection{\texorpdfstring{DumpHeader()}{DumpHeader()}}
-{\footnotesize\ttfamily virtual xb\+Int16 xb\+::xb\+Dbf\+::\+Dump\+Header (\begin{DoxyParamCaption}\item[{xb\+Int16}]{i\+Option }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+Dbf\+::\+Dump\+Header (\begin{DoxyParamCaption}\item[{xb\+Int16}]{i\+Option }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Dump dbf file header.
-\mbox{\Hypertarget{classxb_1_1xbDbf_a3a6a068addffd06fc9a996639d6ca69e}\label{classxb_1_1xbDbf_a3a6a068addffd06fc9a996639d6ca69e}}
+This routine dumps dbf header information to the console.
+
+
+\begin{DoxyParams}{Parameters}
+{\em i\+Option} & 1 = Print header only~\newline
+ 2 = Field data only~\newline
+ 3 = Header and Field data~\newline
+ 4 = Header, Field and Memo header data if applicable \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+\href{xbretcod_8h.html}{\texttt{ Return Codes}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classxb_1_1xbDbf_aba30399f15885a07f87f904c0d0656fa}\label{classxb_1_1xbDbf_aba30399f15885a07f87f904c0d0656fa}}
\index{xb::xbDbf@{xb::xbDbf}!DumpRecord@{DumpRecord}}
\index{DumpRecord@{DumpRecord}!xb::xbDbf@{xb::xbDbf}}
\doxysubsubsection{\texorpdfstring{DumpRecord()}{DumpRecord()}}
-{\footnotesize\ttfamily virtual xb\+Int16 xb\+::xb\+Dbf\+::\+Dump\+Record (\begin{DoxyParamCaption}\item[{xb\+UInt32}]{ul\+Rec\+No, }\item[{xb\+Int16}]{i\+Output\+Dest = {\ttfamily 0}, }\item[{xb\+Int16}]{i\+Output\+Fmt = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+Dbf\+::\+Dump\+Record (\begin{DoxyParamCaption}\item[{xb\+UInt32}]{ul\+Rec\+No, }\item[{xb\+Int16}]{i\+Output\+Dest = {\ttfamily 0}, }\item[{xb\+Int16}]{i\+Output\+Fmt = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+Dump record.
+
+Dump the contents of the specified record
+
+
+\begin{DoxyParams}{Parameters}
+{\em ul\+Rec\+No} & Record number of record to be dumped. \\
+\hline
+{\em i\+Output\+Dest} & 0 = stdout~\newline
+ 1 = Syslog~\newline
+ 2 = Both~\newline
+\\
+\hline
+{\em i\+Output\+Fmt} & 0 = with field names~\newline
+ 1 = 1 line per rec, no field names~\newline
+ 2 = 1 line per rec, first line is a list of field names. \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+\href{xbretcod_8h.html}{\texttt{ Return Codes}}
+\end{DoxyReturn}
\mbox{\Hypertarget{classxb_1_1xbFile_ab14e4a11427f5efb81cba1dd32bd1aa1}\label{classxb_1_1xbFile_ab14e4a11427f5efb81cba1dd32bd1aa1}}
\index{xb::xbDbf@{xb::xbDbf}!eGetDouble@{eGetDouble}}
\index{eGetDouble@{eGetDouble}!xb::xbDbf@{xb::xbDbf}}
@@ -1208,12 +1264,7 @@ Block Size
-Get Auto Lock setting.
-
-\begin{DoxyReturn}{Returns}
-Auto lock setting.
-\end{DoxyReturn}
-Get a pointer to the current index object.
+Get a pointer to the current index object.
\begin{DoxyReturn}{Returns}
Pointer to current index.
@@ -2385,12 +2436,6 @@ XB\+\_\+\+READ~\newline
XB\+\_\+\+WRITE~\newline
\end{DoxyReturn}
-\mbox{\Hypertarget{classxb_1_1xbDbf_a13393704a8a191d4d6555ae31d3c3e92}\label{classxb_1_1xbDbf_a13393704a8a191d4d6555ae31d3c3e92}}
-\index{xb::xbDbf@{xb::xbDbf}!GetPhysicalIxCnt@{GetPhysicalIxCnt}}
-\index{GetPhysicalIxCnt@{GetPhysicalIxCnt}!xb::xbDbf@{xb::xbDbf}}
-\doxysubsubsection{\texorpdfstring{GetPhysicalIxCnt()}{GetPhysicalIxCnt()}}
-{\footnotesize\ttfamily virtual xb\+Int32 xb\+::xb\+Dbf\+::\+Get\+Physical\+Ix\+Cnt (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
-
\mbox{\Hypertarget{classxb_1_1xbDbf_ab3d248e5221b4f0809897cd43af17a1e}\label{classxb_1_1xbDbf_ab3d248e5221b4f0809897cd43af17a1e}}
\index{xb::xbDbf@{xb::xbDbf}!GetPrevRecord@{GetPrevRecord}}
\index{GetPrevRecord@{GetPrevRecord}!xb::xbDbf@{xb::xbDbf}}
@@ -2514,6 +2559,19 @@ Get the current number of records in the dbf data file.
\begin{DoxyReturn}{Returns}
\href{xbretcod_8h.html}{\texttt{ Return Codes}}
\end{DoxyReturn}
+\mbox{\Hypertarget{classxb_1_1xbDbf_a0aaa06d6028e75efc6b5131f7356ecce}\label{classxb_1_1xbDbf_a0aaa06d6028e75efc6b5131f7356ecce}}
+\index{xb::xbDbf@{xb::xbDbf}!GetRecordCount@{GetRecordCount}}
+\index{GetRecordCount@{GetRecordCount}!xb::xbDbf@{xb::xbDbf}}
+\doxysubsubsection{\texorpdfstring{GetRecordCount()}{GetRecordCount()}}
+{\footnotesize\ttfamily xb\+UInt32 xb\+::xb\+Dbf\+::\+Get\+Record\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Get the current number of records in the dbf data file.
+
+\begin{DoxyReturn}{Returns}
+Record count or \href{xbretcod_8h.html}{\texttt{ Return Codes}}
+\end{DoxyReturn}
\mbox{\Hypertarget{classxb_1_1xbDbf_ab50d76c6e29e81e347a6feb04c2f62bb}\label{classxb_1_1xbDbf_ab50d76c6e29e81e347a6feb04c2f62bb}}
\index{xb::xbDbf@{xb::xbDbf}!GetRecordLen@{GetRecordLen}}
\index{GetRecordLen@{GetRecordLen}!xb::xbDbf@{xb::xbDbf}}
@@ -2700,12 +2758,20 @@ Pointer to xb\+Xbase structure.
\doxysubsubsection{\texorpdfstring{InitVars()}{InitVars()}}
{\footnotesize\ttfamily void xb\+::xb\+Dbf\+::\+Init\+Vars (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
-\mbox{\Hypertarget{classxb_1_1xbDbf_ac856fc1b110b46aefa1b2f5c0f530aa2}\label{classxb_1_1xbDbf_ac856fc1b110b46aefa1b2f5c0f530aa2}}
+\mbox{\Hypertarget{classxb_1_1xbDbf_a013dc8c51fc1aa988de39cf3da6da950}\label{classxb_1_1xbDbf_a013dc8c51fc1aa988de39cf3da6da950}}
\index{xb::xbDbf@{xb::xbDbf}!MemoFieldsExist@{MemoFieldsExist}}
\index{MemoFieldsExist@{MemoFieldsExist}!xb::xbDbf@{xb::xbDbf}}
\doxysubsubsection{\texorpdfstring{MemoFieldsExist()}{MemoFieldsExist()}}
-{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} xb\+::xb\+Dbf\+::\+Memo\+Fields\+Exist (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} xb\+::xb\+Dbf\+::\+Memo\+Fields\+Exist (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+Check for existence of any memo fields.
+
+\begin{DoxyReturn}{Returns}
+xb\+True -\/ Memo fields exist.~\newline
+xb\+False -\/ Memo fields don\textquotesingle{}t exist.
+\end{DoxyReturn}
\mbox{\Hypertarget{classxb_1_1xbFile_a361e3cc318bbf1c4d10f069e0800a24e}\label{classxb_1_1xbFile_a361e3cc318bbf1c4d10f069e0800a24e}}
\index{xb::xbDbf@{xb::xbDbf}!NameSuffixMissing@{NameSuffixMissing}}
\index{NameSuffixMissing@{NameSuffixMissing}!xb::xbDbf@{xb::xbDbf}}
@@ -2734,18 +2800,46 @@ Determines status of file extension.
2 is suffix not found, upper case~\newline
\end{DoxyReturn}
-\mbox{\Hypertarget{classxb_1_1xbDbf_a97366c7362e409d7f09973a6aef8dad0}\label{classxb_1_1xbDbf_a97366c7362e409d7f09973a6aef8dad0}}
+\mbox{\Hypertarget{classxb_1_1xbDbf_a69824d7bafc3f5a15bf7d09f2f511768}\label{classxb_1_1xbDbf_a69824d7bafc3f5a15bf7d09f2f511768}}
\index{xb::xbDbf@{xb::xbDbf}!Open@{Open}}
\index{Open@{Open}!xb::xbDbf@{xb::xbDbf}}
\doxysubsubsection{\texorpdfstring{Open()}{Open()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
-{\footnotesize\ttfamily virtual xb\+Int16 xb\+::xb\+Dbf\+::\+Open (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Table\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+Dbf\+::\+Open (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Table\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
-\mbox{\Hypertarget{classxb_1_1xbDbf_ac658818bf9b8f8ff7467d8d80495b324}\label{classxb_1_1xbDbf_ac658818bf9b8f8ff7467d8d80495b324}}
+
+Open a table/dbf file.
+
+This routine sets the alias name to the same as the table name.
+
+
+\begin{DoxyParams}{Parameters}
+{\em s\+Table\+Name} & Table name to open, Include the .dbf or .DBF extension. \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+\href{xbretcod_8h.html}{\texttt{ Return Codes}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classxb_1_1xbDbf_ae388c5e02adc86e6e9988e697e061610}\label{classxb_1_1xbDbf_ae388c5e02adc86e6e9988e697e061610}}
\index{xb::xbDbf@{xb::xbDbf}!Open@{Open}}
\index{Open@{Open}!xb::xbDbf@{xb::xbDbf}}
\doxysubsubsection{\texorpdfstring{Open()}{Open()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
-{\footnotesize\ttfamily virtual xb\+Int16 xb\+::xb\+Dbf\+::\+Open (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Table\+Name, }\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Alias }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+Dbf\+::\+Open (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Table\+Name, }\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Alias }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+Open a table/dbf file.
+
+
+\begin{DoxyParams}{Parameters}
+{\em s\+Table\+Name} & Table name to open, Include the .dbf or .DBF extension. \\
+\hline
+{\em s\+Alias} & Alias name to assign to this entry. \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+\href{xbretcod_8h.html}{\texttt{ Return Codes}}
+\end{DoxyReturn}
\mbox{\Hypertarget{classxb_1_1xbDbf_a4d018cbf44d8d8b2145c9acab02c8adf}\label{classxb_1_1xbDbf_a4d018cbf44d8d8b2145c9acab02c8adf}}
\index{xb::xbDbf@{xb::xbDbf}!Open@{Open}}
\index{Open@{Open}!xb::xbDbf@{xb::xbDbf}}
@@ -3323,6 +3417,12 @@ This routine returns the record deletion status.
xb\+True -\/ Record deleted.~\newline
xb\+False -\/ Record not deleted.
\end{DoxyReturn}
+\mbox{\Hypertarget{classxb_1_1xbDbf_aeeeb2eb5fabcd0f91d457df07b0e0708}\label{classxb_1_1xbDbf_aeeeb2eb5fabcd0f91d457df07b0e0708}}
+\index{xb::xbDbf@{xb::xbDbf}!Rename@{Rename}}
+\index{Rename@{Rename}!xb::xbDbf@{xb::xbDbf}}
+\doxysubsubsection{\texorpdfstring{Rename()}{Rename()}}
+{\footnotesize\ttfamily virtual xb\+Int16 xb\+::xb\+Dbf\+::\+Rename (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}}}]{s\+New\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
\mbox{\Hypertarget{classxb_1_1xbDbf_a4cf7f0d423164f3cf074ae41f96f4e90}\label{classxb_1_1xbDbf_a4cf7f0d423164f3cf074ae41f96f4e90}}
\index{xb::xbDbf@{xb::xbDbf}!SetAutoCommit@{SetAutoCommit}}
\index{SetAutoCommit@{SetAutoCommit}!xb::xbDbf@{xb::xbDbf}}
@@ -3500,7 +3600,54 @@ Get the multi user setting.
-Undelete all records.
+Set auto lock.
+
+This routine sets the auto lock setting for this table. There is an overall system level auto lock default setting and each table can have it\textquotesingle{}s own autolock setting. This method controls the table level auto lock setting.
+
+
+\begin{DoxyParams}{Parameters}
+{\em i\+Auto\+Lock} & 1 -\/ Use auto lock for this table.~\newline
+ 0 -\/ Don\textquotesingle{}t use auto lock for this table.~\newline
+ -\/1 -\/ (minus one) Use system default.~\newline
+ \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+\href{xbretcod_8h.html}{\texttt{ Return Codes}}
+\end{DoxyReturn}
+Set the header locked status.
+
+
+\begin{DoxyParams}{Parameters}
+{\em b\+Header\+Locked} & xb\+True -\/ Locked~\newline
+xb\+False -\/ Not locked. \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+void
+\end{DoxyReturn}
+Set lock flavor.
+
+This routine is for future expansion.
+\begin{DoxyParams}{Parameters}
+{\em i\+Lock\+Flavor} & 1 -\/ Use Dbase (tm) style locking. \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+void
+\end{DoxyReturn}
+Set table locked status.
+
+
+\begin{DoxyParams}{Parameters}
+{\em b\+Table\+Locked} & -\/ xb\+True Table locked.~\newline
+xb\+False Table unlocked. \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+void
+\end{DoxyReturn}
+Undelete all records.
This routine will remove the deletion flag on any deleted records in the table. \begin{DoxyReturn}{Returns}
\href{xbretcod_8h.html}{\texttt{ Return Codes}}
@@ -3968,7 +4115,7 @@ Delete file.
\mbox{\Hypertarget{classxb_1_1xbFile_afc8ce113aa72611a278233f9bb170012}\label{classxb_1_1xbFile_afc8ce113aa72611a278233f9bb170012}}
\index{xb::xbDbf@{xb::xbDbf}!xbRename@{xbRename}}
\index{xbRename@{xbRename}!xb::xbDbf@{xb::xbDbf}}
-\doxysubsubsection{\texorpdfstring{xbRename()}{xbRename()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+\doxysubsubsection{\texorpdfstring{xbRename()}{xbRename()}}
{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+File\+::xb\+Rename (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Old\+Name, }\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+New\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
@@ -3985,28 +4132,6 @@ Rename file.
\begin{DoxyReturn}{Returns}
\href{xbretcod_8h.html}{\texttt{ Return Codes}}
\end{DoxyReturn}
-\mbox{\Hypertarget{classxb_1_1xbFile_ab0b2a2c88947921d98ebcb5b5ec34ed9}\label{classxb_1_1xbFile_ab0b2a2c88947921d98ebcb5b5ec34ed9}}
-\index{xb::xbDbf@{xb::xbDbf}!xbRename@{xbRename}}
-\index{xbRename@{xbRename}!xb::xbDbf@{xb::xbDbf}}
-\doxysubsubsection{\texorpdfstring{xbRename()}{xbRename()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
-{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+File\+::xb\+Rename (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Old\+Name, }\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+New\+Name, }\item[{xb\+Int16}]{i\+Option }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
-
-
-
-Rename file.
-
-
-\begin{DoxyParams}{Parameters}
-{\em s\+Old\+Name} & Original file name \\
-\hline
-{\em s\+New\+Name} & New file name \\
-\hline
-{\em i\+Option} & If Set to 1, assume this is a rename request for a dbf file, and should rename the dbt file also \\
-\hline
-\end{DoxyParams}
-\begin{DoxyReturn}{Returns}
-\href{xbretcod_8h.html}{\texttt{ Return Codes}}
-\end{DoxyReturn}
\mbox{\Hypertarget{classxb_1_1xbFile_a7996b6e084665c37c3892faea64b3505}\label{classxb_1_1xbFile_a7996b6e084665c37c3892faea64b3505}}
\index{xb::xbDbf@{xb::xbDbf}!xbRewind@{xbRewind}}
\index{xbRewind@{xbRewind}!xb::xbDbf@{xb::xbDbf}}
@@ -4199,6 +4324,6 @@ This routine eliminates everything from the dbf file and dbt memo file. \begin{D
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbdbf_8h}{xbdbf.\+h}}\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbdbf_8cpp}{xbdbf.\+cpp}}\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbfields_8cpp}{xbfields.\+cpp}}\end{DoxyCompactItemize}
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbdbf_8h}{xbdbf.\+h}}\item
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbdbf_8cpp}{xbdbf.\+cpp}}\item
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbfields_8cpp}{xbfields.\+cpp}}\end{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/classxb_1_1xbFile.pdf b/docs/doxygen/latex/classxb_1_1xbFile.pdf
index 40f098c..e15505b 100644
Binary files a/docs/doxygen/latex/classxb_1_1xbFile.pdf and b/docs/doxygen/latex/classxb_1_1xbFile.pdf differ
diff --git a/docs/doxygen/latex/classxb_1_1xbFile.tex b/docs/doxygen/latex/classxb_1_1xbFile.tex
index 21d0680..2ae5244 100644
--- a/docs/doxygen/latex/classxb_1_1xbFile.tex
+++ b/docs/doxygen/latex/classxb_1_1xbFile.tex
@@ -156,8 +156,6 @@ xb\+Int16 \mbox{\hyperlink{classxb_1_1xbFile_ab3c668a8570433188382d31d7c60bd48}{
\begin{DoxyCompactList}\small\item\em Delete file. \end{DoxyCompactList}\item
xb\+Int16 \mbox{\hyperlink{classxb_1_1xbFile_afc8ce113aa72611a278233f9bb170012}{xb\+Rename}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+Old\+Name, const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+New\+Name)
\begin{DoxyCompactList}\small\item\em Rename file. \end{DoxyCompactList}\item
-xb\+Int16 \mbox{\hyperlink{classxb_1_1xbFile_ab0b2a2c88947921d98ebcb5b5ec34ed9}{xb\+Rename}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+Old\+Name, const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+New\+Name, xb\+Int16 i\+Option)
-\begin{DoxyCompactList}\small\item\em Rename file. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classxb_1_1xbFile_a7996b6e084665c37c3892faea64b3505}{xb\+Rewind}} ()
\begin{DoxyCompactList}\small\item\em Xbase wrapper for rewind. \end{DoxyCompactList}\item
xb\+Int16 \mbox{\hyperlink{classxb_1_1xbFile_a518bfcbfa3699d883cf89affee383296}{xb\+Truncate}} (xb\+Int64 ll\+Size)
@@ -180,6 +178,10 @@ void \mbox{\hyperlink{classxb_1_1xbSsv_a5f74db23f8902846d581935c7db73f9c}{Set\+D
\begin{DoxyCompactList}\small\item\em Set the default date format. \end{DoxyCompactList}\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}{Bit\+Set}} (unsigned char c, xb\+Int16 i\+Bit\+No) const
\begin{DoxyCompactList}\small\item\em Check a bit in a one byte field and see if it is set. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}{Bit\+Dump}} (unsigned char c) const
+\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}{Bit\+Dump}} (char c) const
+\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a6982f973e81587b04916f4509746aaf5}{Get\+Default\+Auto\+Commit}} () const
\begin{DoxyCompactList}\small\item\em Get the default auto commit setting. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classxb_1_1xbSsv_a25542afadaaf39b4fb5a1772a29cc0bd}{Set\+Default\+Auto\+Commit}} (\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} b\+Default\+Auto\+Commit)
@@ -255,6 +257,18 @@ Class Destructor.
\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}\label{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}}
+\index{xb::xbFile@{xb::xbFile}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbFile@{xb::xbFile}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{char}]{c }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}
+
+\mbox{\Hypertarget{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}\label{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}}
+\index{xb::xbFile@{xb::xbFile}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbFile@{xb::xbFile}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{unsigned char}]{c }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}
+
\mbox{\Hypertarget{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}\label{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}}
\index{xb::xbFile@{xb::xbFile}!BitSet@{BitSet}}
\index{BitSet@{BitSet}!xb::xbFile@{xb::xbFile}}
@@ -1780,7 +1794,7 @@ Delete file.
\mbox{\Hypertarget{classxb_1_1xbFile_afc8ce113aa72611a278233f9bb170012}\label{classxb_1_1xbFile_afc8ce113aa72611a278233f9bb170012}}
\index{xb::xbFile@{xb::xbFile}!xbRename@{xbRename}}
\index{xbRename@{xbRename}!xb::xbFile@{xb::xbFile}}
-\doxysubsubsection{\texorpdfstring{xbRename()}{xbRename()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+\doxysubsubsection{\texorpdfstring{xbRename()}{xbRename()}}
{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+File\+::xb\+Rename (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Old\+Name, }\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+New\+Name }\end{DoxyParamCaption})}
@@ -1797,28 +1811,6 @@ Rename file.
\begin{DoxyReturn}{Returns}
\href{xbretcod_8h.html}{\texttt{ Return Codes}}
\end{DoxyReturn}
-\mbox{\Hypertarget{classxb_1_1xbFile_ab0b2a2c88947921d98ebcb5b5ec34ed9}\label{classxb_1_1xbFile_ab0b2a2c88947921d98ebcb5b5ec34ed9}}
-\index{xb::xbFile@{xb::xbFile}!xbRename@{xbRename}}
-\index{xbRename@{xbRename}!xb::xbFile@{xb::xbFile}}
-\doxysubsubsection{\texorpdfstring{xbRename()}{xbRename()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
-{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+File\+::xb\+Rename (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Old\+Name, }\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+New\+Name, }\item[{xb\+Int16}]{i\+Option }\end{DoxyParamCaption})}
-
-
-
-Rename file.
-
-
-\begin{DoxyParams}{Parameters}
-{\em s\+Old\+Name} & Original file name \\
-\hline
-{\em s\+New\+Name} & New file name \\
-\hline
-{\em i\+Option} & If Set to 1, assume this is a rename request for a dbf file, and should rename the dbt file also \\
-\hline
-\end{DoxyParams}
-\begin{DoxyReturn}{Returns}
-\href{xbretcod_8h.html}{\texttt{ Return Codes}}
-\end{DoxyReturn}
\mbox{\Hypertarget{classxb_1_1xbFile_a7996b6e084665c37c3892faea64b3505}\label{classxb_1_1xbFile_a7996b6e084665c37c3892faea64b3505}}
\index{xb::xbFile@{xb::xbFile}!xbRewind@{xbRewind}}
\index{xbRewind@{xbRewind}!xb::xbFile@{xb::xbFile}}
@@ -1878,5 +1870,5 @@ Set file size to ll\+Size
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbfile_8h}{xbfile.\+h}}\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbfile_8cpp}{xbfile.\+cpp}}\end{DoxyCompactItemize}
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbfile_8h}{xbfile.\+h}}\item
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbfile_8cpp}{xbfile.\+cpp}}\end{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/classxb_1_1xbSsv.pdf b/docs/doxygen/latex/classxb_1_1xbSsv.pdf
index 9e9391f..d2c5129 100644
Binary files a/docs/doxygen/latex/classxb_1_1xbSsv.pdf and b/docs/doxygen/latex/classxb_1_1xbSsv.pdf differ
diff --git a/docs/doxygen/latex/classxb_1_1xbSsv.tex b/docs/doxygen/latex/classxb_1_1xbSsv.tex
index fd829bb..5a19427 100644
--- a/docs/doxygen/latex/classxb_1_1xbSsv.tex
+++ b/docs/doxygen/latex/classxb_1_1xbSsv.tex
@@ -36,6 +36,10 @@ void \mbox{\hyperlink{classxb_1_1xbSsv_a5f74db23f8902846d581935c7db73f9c}{Set\+D
\begin{DoxyCompactList}\small\item\em Set the default date format. \end{DoxyCompactList}\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}{Bit\+Set}} (unsigned char c, xb\+Int16 i\+Bit\+No) const
\begin{DoxyCompactList}\small\item\em Check a bit in a one byte field and see if it is set. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}{Bit\+Dump}} (unsigned char c) const
+\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}{Bit\+Dump}} (char c) const
+\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a6982f973e81587b04916f4509746aaf5}{Get\+Default\+Auto\+Commit}} () const
\begin{DoxyCompactList}\small\item\em Get the default auto commit setting. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classxb_1_1xbSsv_a25542afadaaf39b4fb5a1772a29cc0bd}{Set\+Default\+Auto\+Commit}} (\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} b\+Default\+Auto\+Commit)
@@ -90,6 +94,18 @@ Class Constructor.
\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}\label{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}}
+\index{xb::xbSsv@{xb::xbSsv}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbSsv@{xb::xbSsv}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{char}]{c }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}\label{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}}
+\index{xb::xbSsv@{xb::xbSsv}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbSsv@{xb::xbSsv}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{unsigned char}]{c }\end{DoxyParamCaption}) const}
+
\mbox{\Hypertarget{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}\label{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}}
\index{xb::xbSsv@{xb::xbSsv}!BitSet@{BitSet}}
\index{BitSet@{BitSet}!xb::xbSsv@{xb::xbSsv}}
@@ -335,5 +351,5 @@ Get the multi user setting.
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbssv_8h}{xbssv.\+h}}\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbssv_8cpp}{xbssv.\+cpp}}\end{DoxyCompactItemize}
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbssv_8h}{xbssv.\+h}}\item
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbssv_8cpp}{xbssv.\+cpp}}\end{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/classxb_1_1xbString.tex b/docs/doxygen/latex/classxb_1_1xbString.tex
index 1665042..1d6fca8 100644
--- a/docs/doxygen/latex/classxb_1_1xbString.tex
+++ b/docs/doxygen/latex/classxb_1_1xbString.tex
@@ -86,9 +86,9 @@ char \& \mbox{\hyperlink{classxb_1_1xbString_a4deaa68d9571753349c29baacb5613e8}{
\begin{DoxyCompactList}\small\item\em Assign portion of string. \end{DoxyCompactList}\item
\mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \& \mbox{\hyperlink{classxb_1_1xbString_a08eb7ca6740423acab4e8bd7a6c8043d}{Assign}} (const char $\ast$src\+Str, xb\+UInt32 l\+Start\+Pos)
\begin{DoxyCompactList}\small\item\em Assign portion of string. \end{DoxyCompactList}\item
-\mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \& \mbox{\hyperlink{classxb_1_1xbString_a210707223fffc7b3ab31eca4ef29f731}{Assign}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s, xb\+UInt32 pos, xb\+UInt32 n)
+\mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \& \mbox{\hyperlink{classxb_1_1xbString_ac6afd224dfbe439ce083c8dd1ad3246c}{Assign}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s, xb\+UInt32 pos, xb\+UInt32 l\+Copy\+Len)
\begin{DoxyCompactList}\small\item\em Assign portion of string. \end{DoxyCompactList}\item
-\mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \& \mbox{\hyperlink{classxb_1_1xbString_ab9045442e57293843652dfce6522ff83}{Assign}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s, xb\+UInt32 n)
+\mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \& \mbox{\hyperlink{classxb_1_1xbString_a4f1d709d9f6c56959e8549157b4ee68c}{Assign}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s, xb\+UInt32 l\+Copy\+Len)
\begin{DoxyCompactList}\small\item\em Assign portion of string. \end{DoxyCompactList}\item
\mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \mbox{\hyperlink{classxb_1_1xbString_ac7a8466b03c04df838bd182ef244f792}{Copy}} () const
\begin{DoxyCompactList}\small\item\em Copy a string. \end{DoxyCompactList}\item
@@ -144,6 +144,8 @@ xb\+UInt32 \mbox{\hyperlink{classxb_1_1xbString_a8705d7277b72f5aa98021e84438914d
\begin{DoxyCompactList}\small\item\em Insert character into string. \end{DoxyCompactList}\item
\mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \& \mbox{\hyperlink{classxb_1_1xbString_afaac65eaa6d9ef1596d6a0e7b91ed0f2}{Remove}} (xb\+UInt32 ul\+Pos, xb\+UInt32 ulN)
\begin{DoxyCompactList}\small\item\em Remove portion of string. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \& \mbox{\hyperlink{classxb_1_1xbString_ac721d643c60b5c5acf60c2bce99596fa}{Replace}} (const char $\ast$s\+Replace, const char $\ast$s\+Replace\+With, xb\+Int16 i\+Opt=0)
+\begin{DoxyCompactList}\small\item\em Replace a value within a string with another value. \end{DoxyCompactList}\item
\mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \& \mbox{\hyperlink{classxb_1_1xbString_aa6d346ab04e5bb8852f0bb996163a35e}{Resize}} (xb\+UInt32 l\+Size)
\begin{DoxyCompactList}\small\item\em Resize a string. \end{DoxyCompactList}\item
\mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \& \mbox{\hyperlink{classxb_1_1xbString_aaf330188d67c347ecae0d16f65b22077}{Rtrim}} ()
@@ -448,7 +450,7 @@ Assign portion of string.
\begin{DoxyReturn}{Returns}
Reference to this string.
\end{DoxyReturn}
-\mbox{\Hypertarget{classxb_1_1xbString_ab9045442e57293843652dfce6522ff83}\label{classxb_1_1xbString_ab9045442e57293843652dfce6522ff83}}
+\mbox{\Hypertarget{classxb_1_1xbString_a4f1d709d9f6c56959e8549157b4ee68c}\label{classxb_1_1xbString_a4f1d709d9f6c56959e8549157b4ee68c}}
\index{xb::xbString@{xb::xbString}!Assign@{Assign}}
\index{Assign@{Assign}!xb::xbString@{xb::xbString}}
\doxysubsubsection{\texorpdfstring{Assign()}{Assign()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
@@ -468,7 +470,7 @@ Assign portion of string.
\begin{DoxyReturn}{Returns}
Reference to this string.
\end{DoxyReturn}
-\mbox{\Hypertarget{classxb_1_1xbString_a210707223fffc7b3ab31eca4ef29f731}\label{classxb_1_1xbString_a210707223fffc7b3ab31eca4ef29f731}}
+\mbox{\Hypertarget{classxb_1_1xbString_ac6afd224dfbe439ce083c8dd1ad3246c}\label{classxb_1_1xbString_ac6afd224dfbe439ce083c8dd1ad3246c}}
\index{xb::xbString@{xb::xbString}!Assign@{Assign}}
\index{Assign@{Assign}!xb::xbString@{xb::xbString}}
\doxysubsubsection{\texorpdfstring{Assign()}{Assign()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
@@ -1362,6 +1364,28 @@ Remove portion of string.
\begin{DoxyReturn}{Returns}
Reference to string.
\end{DoxyReturn}
+\mbox{\Hypertarget{classxb_1_1xbString_ac721d643c60b5c5acf60c2bce99596fa}\label{classxb_1_1xbString_ac721d643c60b5c5acf60c2bce99596fa}}
+\index{xb::xbString@{xb::xbString}!Replace@{Replace}}
+\index{Replace@{Replace}!xb::xbString@{xb::xbString}}
+\doxysubsubsection{\texorpdfstring{Replace()}{Replace()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \& xb\+::xb\+String\+::\+Replace (\begin{DoxyParamCaption}\item[{const char $\ast$}]{s\+Replace, }\item[{const char $\ast$}]{s\+Replace\+With, }\item[{xb\+Int16}]{i\+Option = {\ttfamily 0} }\end{DoxyParamCaption})}
+
+
+
+Replace a value within a string with another value.
+
+
+\begin{DoxyParams}{Parameters}
+{\em s\+Replace} & -\/ Character string to replace. \\
+\hline
+{\em s\+Replace\+With} & -\/ Character string to replace with \\
+\hline
+{\em i\+Option} & -\/ 0 = All occurrences, 1 = first occurrence \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+Reference to this string.
+\end{DoxyReturn}
\mbox{\Hypertarget{classxb_1_1xbString_aa6d346ab04e5bb8852f0bb996163a35e}\label{classxb_1_1xbString_aa6d346ab04e5bb8852f0bb996163a35e}}
\index{xb::xbString@{xb::xbString}!Resize@{Resize}}
\index{Resize@{Resize}!xb::xbString@{xb::xbString}}
@@ -1698,5 +1722,5 @@ std\+::cout \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} My\+String \texorpdfs
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbstring_8h}{xbstring.\+h}}\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbstring_8cpp}{xbstring.\+cpp}}\end{DoxyCompactItemize}
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbstring_8h}{xbstring.\+h}}\item
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbstring_8cpp}{xbstring.\+cpp}}\end{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/classxb_1_1xbTblMgr.pdf b/docs/doxygen/latex/classxb_1_1xbTblMgr.pdf
index 61ec0f3..389c568 100644
Binary files a/docs/doxygen/latex/classxb_1_1xbTblMgr.pdf and b/docs/doxygen/latex/classxb_1_1xbTblMgr.pdf differ
diff --git a/docs/doxygen/latex/classxb_1_1xbTblMgr.tex b/docs/doxygen/latex/classxb_1_1xbTblMgr.tex
index 6cb56a0..695e61e 100644
--- a/docs/doxygen/latex/classxb_1_1xbTblMgr.tex
+++ b/docs/doxygen/latex/classxb_1_1xbTblMgr.tex
@@ -27,6 +27,8 @@ xb\+Int16 \mbox{\hyperlink{classxb_1_1xbTblMgr_a5eebffb9e8cc64141e35c2622045cb50
\item
\mbox{\hyperlink{classxb_1_1xbDbf}{xb\+Dbf}} $\ast$ \mbox{\hyperlink{classxb_1_1xbTblMgr_a801dfecf7fc216954b4197b2c31b25d6}{Get\+Dbf\+Ptr}} (xb\+Int16 s\+Item\+No) const
\item
+\mbox{\hyperlink{structxb_1_1xbTblList}{xb\+Tbl\+List}} $\ast$ \mbox{\hyperlink{classxb_1_1xbTblMgr_acbf148ddba4297021cfb980a161ebef9}{Get\+Tbl\+List\+Entry}} (\mbox{\hyperlink{classxb_1_1xbDbf}{xb\+Dbf}} $\ast$d)
+\item
xb\+Int16 \mbox{\hyperlink{classxb_1_1xbTblMgr_ad0d2d4adabc0dc0e761cfdee63c84069}{Get\+Open\+Table\+Count}} () const
\item
xb\+Int16 \mbox{\hyperlink{classxb_1_1xbTblMgr_ac8eaef41acf08911b90f900aac8e70af}{Remove\+Tbl\+From\+Tbl\+List}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+Tbl\+Alias)
@@ -49,6 +51,10 @@ void \mbox{\hyperlink{classxb_1_1xbSsv_a5f74db23f8902846d581935c7db73f9c}{Set\+D
\begin{DoxyCompactList}\small\item\em Set the default date format. \end{DoxyCompactList}\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}{Bit\+Set}} (unsigned char c, xb\+Int16 i\+Bit\+No) const
\begin{DoxyCompactList}\small\item\em Check a bit in a one byte field and see if it is set. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}{Bit\+Dump}} (unsigned char c) const
+\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}{Bit\+Dump}} (char c) const
+\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a6982f973e81587b04916f4509746aaf5}{Get\+Default\+Auto\+Commit}} () const
\begin{DoxyCompactList}\small\item\em Get the default auto commit setting. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classxb_1_1xbSsv_a25542afadaaf39b4fb5a1772a29cc0bd}{Set\+Default\+Auto\+Commit}} (\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} b\+Default\+Auto\+Commit)
@@ -110,6 +116,18 @@ static \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \mbox{\hyperlink{class
\doxysubsubsection{\texorpdfstring{AddTblToTblList()}{AddTblToTblList()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+Tbl\+Mgr\+::\+Add\+Tbl\+To\+Tbl\+List (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classxb_1_1xbDbf}{xb\+Dbf}} $\ast$}]{d, }\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Tbl\+Name, }\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Tbl\+Alias }\end{DoxyParamCaption})}
+\mbox{\Hypertarget{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}\label{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}}
+\index{xb::xbTblMgr@{xb::xbTblMgr}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbTblMgr@{xb::xbTblMgr}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{char}]{c }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}
+
+\mbox{\Hypertarget{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}\label{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}}
+\index{xb::xbTblMgr@{xb::xbTblMgr}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbTblMgr@{xb::xbTblMgr}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{unsigned char}]{c }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}
+
\mbox{\Hypertarget{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}\label{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}}
\index{xb::xbTblMgr@{xb::xbTblMgr}!BitSet@{BitSet}}
\index{BitSet@{BitSet}!xb::xbTblMgr@{xb::xbTblMgr}}
@@ -272,6 +290,12 @@ xb\+True -\/ Multi user mode turned on.~\newline
\doxysubsubsection{\texorpdfstring{GetOpenTableCount()}{GetOpenTableCount()}}
{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+Tbl\+Mgr\+::\+Get\+Open\+Table\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+\mbox{\Hypertarget{classxb_1_1xbTblMgr_acbf148ddba4297021cfb980a161ebef9}\label{classxb_1_1xbTblMgr_acbf148ddba4297021cfb980a161ebef9}}
+\index{xb::xbTblMgr@{xb::xbTblMgr}!GetTblListEntry@{GetTblListEntry}}
+\index{GetTblListEntry@{GetTblListEntry}!xb::xbTblMgr@{xb::xbTblMgr}}
+\doxysubsubsection{\texorpdfstring{GetTblListEntry()}{GetTblListEntry()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structxb_1_1xbTblList}{xb\+Tbl\+List}} $\ast$ xb\+::xb\+Tbl\+Mgr\+::\+Get\+Tbl\+List\+Entry (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classxb_1_1xbDbf}{xb\+Dbf}} $\ast$}]{d }\end{DoxyParamCaption})}
+
\mbox{\Hypertarget{classxb_1_1xbTblMgr_ac8eaef41acf08911b90f900aac8e70af}\label{classxb_1_1xbTblMgr_ac8eaef41acf08911b90f900aac8e70af}}
\index{xb::xbTblMgr@{xb::xbTblMgr}!RemoveTblFromTblList@{RemoveTblFromTblList}}
\index{RemoveTblFromTblList@{RemoveTblFromTblList}!xb::xbTblMgr@{xb::xbTblMgr}}
@@ -391,5 +415,5 @@ Get the multi user setting.
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbtblmgr_8h}{xbtblmgr.\+h}}\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbtblmgr_8cpp}{xbtblmgr.\+cpp}}\end{DoxyCompactItemize}
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbtblmgr_8h}{xbtblmgr.\+h}}\item
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbtblmgr_8cpp}{xbtblmgr.\+cpp}}\end{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/classxb_1_1xbXBase.pdf b/docs/doxygen/latex/classxb_1_1xbXBase.pdf
index 8896f3c..8a4a3d1 100644
Binary files a/docs/doxygen/latex/classxb_1_1xbXBase.pdf and b/docs/doxygen/latex/classxb_1_1xbXBase.pdf differ
diff --git a/docs/doxygen/latex/classxb_1_1xbXBase.tex b/docs/doxygen/latex/classxb_1_1xbXBase.tex
index 4cdec63..b08ea8c 100644
--- a/docs/doxygen/latex/classxb_1_1xbXBase.tex
+++ b/docs/doxygen/latex/classxb_1_1xbXBase.tex
@@ -68,6 +68,8 @@ xb\+Int16 \mbox{\hyperlink{classxb_1_1xbTblMgr_a5eebffb9e8cc64141e35c2622045cb50
\item
\mbox{\hyperlink{classxb_1_1xbDbf}{xb\+Dbf}} $\ast$ \mbox{\hyperlink{classxb_1_1xbTblMgr_a801dfecf7fc216954b4197b2c31b25d6}{Get\+Dbf\+Ptr}} (xb\+Int16 s\+Item\+No) const
\item
+\mbox{\hyperlink{structxb_1_1xbTblList}{xb\+Tbl\+List}} $\ast$ \mbox{\hyperlink{classxb_1_1xbTblMgr_acbf148ddba4297021cfb980a161ebef9}{Get\+Tbl\+List\+Entry}} (\mbox{\hyperlink{classxb_1_1xbDbf}{xb\+Dbf}} $\ast$d)
+\item
xb\+Int16 \mbox{\hyperlink{classxb_1_1xbTblMgr_ad0d2d4adabc0dc0e761cfdee63c84069}{Get\+Open\+Table\+Count}} () const
\item
xb\+Int16 \mbox{\hyperlink{classxb_1_1xbTblMgr_ac8eaef41acf08911b90f900aac8e70af}{Remove\+Tbl\+From\+Tbl\+List}} (const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&s\+Tbl\+Alias)
@@ -90,6 +92,10 @@ void \mbox{\hyperlink{classxb_1_1xbSsv_a5f74db23f8902846d581935c7db73f9c}{Set\+D
\begin{DoxyCompactList}\small\item\em Set the default date format. \end{DoxyCompactList}\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}{Bit\+Set}} (unsigned char c, xb\+Int16 i\+Bit\+No) const
\begin{DoxyCompactList}\small\item\em Check a bit in a one byte field and see if it is set. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}{Bit\+Dump}} (unsigned char c) const
+\item
+void \mbox{\hyperlink{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}{Bit\+Dump}} (char c) const
+\item
\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} \mbox{\hyperlink{classxb_1_1xbSsv_a6982f973e81587b04916f4509746aaf5}{Get\+Default\+Auto\+Commit}} () const
\begin{DoxyCompactList}\small\item\em Get the default auto commit setting. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classxb_1_1xbSsv_a25542afadaaf39b4fb5a1772a29cc0bd}{Set\+Default\+Auto\+Commit}} (\mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xb\+Bool}} b\+Default\+Auto\+Commit)
@@ -178,6 +184,18 @@ Class Deconstructor.
\doxysubsubsection{\texorpdfstring{AddTblToTblList()}{AddTblToTblList()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+Tbl\+Mgr\+::\+Add\+Tbl\+To\+Tbl\+List (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classxb_1_1xbDbf}{xb\+Dbf}} $\ast$}]{d, }\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Tbl\+Name, }\item[{const \mbox{\hyperlink{classxb_1_1xbString}{xb\+String}} \&}]{s\+Tbl\+Alias }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
+\mbox{\Hypertarget{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}\label{classxb_1_1xbSsv_aba1395b8e4c7f28c3614061de6e49190}}
+\index{xb::xbXBase@{xb::xbXBase}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbXBase@{xb::xbXBase}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{char}]{c }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}
+
+\mbox{\Hypertarget{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}\label{classxb_1_1xbSsv_a8551b15a3ce4fa2a40d698db01f4a9ae}}
+\index{xb::xbXBase@{xb::xbXBase}!BitDump@{BitDump}}
+\index{BitDump@{BitDump}!xb::xbXBase@{xb::xbXBase}}
+\doxysubsubsection{\texorpdfstring{BitDump()}{BitDump()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void xb\+::xb\+Ssv\+::\+Bit\+Dump (\begin{DoxyParamCaption}\item[{unsigned char}]{c }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}
+
\mbox{\Hypertarget{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}\label{classxb_1_1xbSsv_a62e4fd0a5888665c76bbbad962794e72}}
\index{xb::xbXBase@{xb::xbXBase}!BitSet@{BitSet}}
\index{BitSet@{BitSet}!xb::xbXBase@{xb::xbXBase}}
@@ -401,6 +419,12 @@ xb\+True -\/ Multi user mode turned on.~\newline
\doxysubsubsection{\texorpdfstring{GetOpenTableCount()}{GetOpenTableCount()}}
{\footnotesize\ttfamily xb\+Int16 xb\+::xb\+Tbl\+Mgr\+::\+Get\+Open\+Table\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}
+\mbox{\Hypertarget{classxb_1_1xbTblMgr_acbf148ddba4297021cfb980a161ebef9}\label{classxb_1_1xbTblMgr_acbf148ddba4297021cfb980a161ebef9}}
+\index{xb::xbXBase@{xb::xbXBase}!GetTblListEntry@{GetTblListEntry}}
+\index{GetTblListEntry@{GetTblListEntry}!xb::xbXBase@{xb::xbXBase}}
+\doxysubsubsection{\texorpdfstring{GetTblListEntry()}{GetTblListEntry()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structxb_1_1xbTblList}{xb\+Tbl\+List}} $\ast$ xb\+::xb\+Tbl\+Mgr\+::\+Get\+Tbl\+List\+Entry (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classxb_1_1xbDbf}{xb\+Dbf}} $\ast$}]{d }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}
+
\mbox{\Hypertarget{classxb_1_1xbXBase_ab35cec5ac8f0fa95f10653ca7ac817f6}\label{classxb_1_1xbXBase_ab35cec5ac8f0fa95f10653ca7ac817f6}}
\index{xb::xbXBase@{xb::xbXBase}!Open@{Open}}
\index{Open@{Open}!xb::xbXBase@{xb::xbXBase}}
@@ -659,5 +683,5 @@ Cross platform sleep function.
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbxbase_8h}{xbxbase.\+h}}\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbxbase_8cpp}{xbxbase.\+cpp}}\end{DoxyCompactItemize}
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbxbase_8h}{xbxbase.\+h}}\item
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbxbase_8cpp}{xbxbase.\+cpp}}\end{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/dir_25b94c3afce00ed38231227d8141f932.tex b/docs/doxygen/latex/dir_25b94c3afce00ed38231227d8141f932.tex
index 172d234..3613498 100644
--- a/docs/doxygen/latex/dir_25b94c3afce00ed38231227d8141f932.tex
+++ b/docs/doxygen/latex/dir_25b94c3afce00ed38231227d8141f932.tex
@@ -1,12 +1,16 @@
-\hypertarget{dir_25b94c3afce00ed38231227d8141f932}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/sql Directory Reference}
-\label{dir_25b94c3afce00ed38231227d8141f932}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql Directory Reference}}
+\hypertarget{dir_25b94c3afce00ed38231227d8141f932}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/sql Directory Reference}
+\label{dir_25b94c3afce00ed38231227d8141f932}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql Directory Reference}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item
+file \mbox{\hyperlink{xbalttbl_8cpp}{xbalttbl.\+cpp}}
+\item
file \mbox{\hyperlink{xbcrix_8cpp}{xbcrix.\+cpp}}
\item
file \mbox{\hyperlink{xbcrtbl_8cpp}{xbcrtbl.\+cpp}}
\item
+file \mbox{\hyperlink{xbdelete_8cpp}{xbdelete.\+cpp}}
+\item
file \mbox{\hyperlink{xbdrpix_8cpp}{xbdrpix.\+cpp}}
\item
file \mbox{\hyperlink{xbdrptbl_8cpp}{xbdrptbl.\+cpp}}
diff --git a/docs/doxygen/latex/dir_313caf1132e152dd9b58bea13a4052ca.tex b/docs/doxygen/latex/dir_313caf1132e152dd9b58bea13a4052ca.tex
index d66d38b..f4e47fb 100644
--- a/docs/doxygen/latex/dir_313caf1132e152dd9b58bea13a4052ca.tex
+++ b/docs/doxygen/latex/dir_313caf1132e152dd9b58bea13a4052ca.tex
@@ -1,14 +1,8 @@
-\hypertarget{dir_313caf1132e152dd9b58bea13a4052ca}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils Directory Reference}
-\label{dir_313caf1132e152dd9b58bea13a4052ca}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils Directory Reference}}
+\hypertarget{dir_313caf1132e152dd9b58bea13a4052ca}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils Directory Reference}
+\label{dir_313caf1132e152dd9b58bea13a4052ca}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils Directory Reference}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item
-file \mbox{\hyperlink{checkndx_8cpp}{checkndx.\+cpp}}
-\item
-file \mbox{\hyperlink{dbfxtrct_8cpp}{dbfxtrct.\+cpp}}
-\item
-file \mbox{\hyperlink{reindex_8cpp}{reindex.\+cpp}}
-\item
file \mbox{\hyperlink{xb__cfg__check_8cpp}{xb\+\_\+cfg\+\_\+check.\+cpp}}
\item
file \mbox{\hyperlink{xb__copydbf_8cpp}{xb\+\_\+copydbf.\+cpp}}
diff --git a/docs/doxygen/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex b/docs/doxygen/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex
index 29fcc9d..8120370 100644
--- a/docs/doxygen/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex
+++ b/docs/doxygen/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex
@@ -1,5 +1,5 @@
-\hypertarget{dir_68267d1309a1af8e8297ef4c3efbcdba}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src Directory Reference}
-\label{dir_68267d1309a1af8e8297ef4c3efbcdba}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src Directory Reference}}
+\hypertarget{dir_68267d1309a1af8e8297ef4c3efbcdba}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src Directory Reference}
+\label{dir_68267d1309a1af8e8297ef4c3efbcdba}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src Directory Reference}}
\doxysubsection*{Directories}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/dir_aebb8dcc11953d78e620bbef0b9e2183.tex b/docs/doxygen/latex/dir_aebb8dcc11953d78e620bbef0b9e2183.tex
index 36bf939..e75fef9 100644
--- a/docs/doxygen/latex/dir_aebb8dcc11953d78e620bbef0b9e2183.tex
+++ b/docs/doxygen/latex/dir_aebb8dcc11953d78e620bbef0b9e2183.tex
@@ -1,5 +1,5 @@
-\hypertarget{dir_aebb8dcc11953d78e620bbef0b9e2183}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core Directory Reference}
-\label{dir_aebb8dcc11953d78e620bbef0b9e2183}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core Directory Reference}}
+\hypertarget{dir_aebb8dcc11953d78e620bbef0b9e2183}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core Directory Reference}
+\label{dir_aebb8dcc11953d78e620bbef0b9e2183}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core Directory Reference}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/dir_b0856f6b0d80ccb263b2f415c91f9e17.tex b/docs/doxygen/latex/dir_b0856f6b0d80ccb263b2f415c91f9e17.tex
index ffaa610..ec479db 100644
--- a/docs/doxygen/latex/dir_b0856f6b0d80ccb263b2f415c91f9e17.tex
+++ b/docs/doxygen/latex/dir_b0856f6b0d80ccb263b2f415c91f9e17.tex
@@ -1,5 +1,5 @@
-\hypertarget{dir_b0856f6b0d80ccb263b2f415c91f9e17}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include Directory Reference}
-\label{dir_b0856f6b0d80ccb263b2f415c91f9e17}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include Directory Reference}}
+\hypertarget{dir_b0856f6b0d80ccb263b2f415c91f9e17}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include Directory Reference}
+\label{dir_b0856f6b0d80ccb263b2f415c91f9e17}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include Directory Reference}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/dir_d93a1d4020dea85bb71b237545b5e722.tex b/docs/doxygen/latex/dir_d93a1d4020dea85bb71b237545b5e722.tex
index b6da6b1..c325fc6 100644
--- a/docs/doxygen/latex/dir_d93a1d4020dea85bb71b237545b5e722.tex
+++ b/docs/doxygen/latex/dir_d93a1d4020dea85bb71b237545b5e722.tex
@@ -1,5 +1,5 @@
-\hypertarget{dir_d93a1d4020dea85bb71b237545b5e722}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests Directory Reference}
-\label{dir_d93a1d4020dea85bb71b237545b5e722}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests Directory Reference}}
+\hypertarget{dir_d93a1d4020dea85bb71b237545b5e722}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests Directory Reference}
+\label{dir_d93a1d4020dea85bb71b237545b5e722}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests Directory Reference}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item
@@ -39,8 +39,6 @@ file \mbox{\hyperlink{xb__test__mdx_8cpp}{xb\+\_\+test\+\_\+mdx.\+cpp}}
\item
file \mbox{\hyperlink{xb__test__ndx_8cpp}{xb\+\_\+test\+\_\+ndx.\+cpp}}
\item
-file \mbox{\hyperlink{xb__test__ndx2_8cpp}{xb\+\_\+test\+\_\+ndx2.\+cpp}}
-\item
file \mbox{\hyperlink{xb__test__sql_8cpp}{xb\+\_\+test\+\_\+sql.\+cpp}}
\item
file \mbox{\hyperlink{xb__test__string_8cpp}{xb\+\_\+test\+\_\+string.\+cpp}}
diff --git a/docs/doxygen/latex/dir_e931c1a3f0014e624d0645a271726ad2.tex b/docs/doxygen/latex/dir_e931c1a3f0014e624d0645a271726ad2.tex
index 95a3031..42a8762 100644
--- a/docs/doxygen/latex/dir_e931c1a3f0014e624d0645a271726ad2.tex
+++ b/docs/doxygen/latex/dir_e931c1a3f0014e624d0645a271726ad2.tex
@@ -1,5 +1,5 @@
-\hypertarget{dir_e931c1a3f0014e624d0645a271726ad2}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/examples Directory Reference}
-\label{dir_e931c1a3f0014e624d0645a271726ad2}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples Directory Reference}}
+\hypertarget{dir_e931c1a3f0014e624d0645a271726ad2}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/examples Directory Reference}
+\label{dir_e931c1a3f0014e624d0645a271726ad2}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples Directory Reference@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples Directory Reference}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/files.tex b/docs/doxygen/latex/files.tex
index f02ab4a..5562162 100644
--- a/docs/doxygen/latex/files.tex
+++ b/docs/doxygen/latex/files.tex
@@ -1,104 +1,102 @@
\doxysection{File List}
Here is a list of all files with brief descriptions\+:\begin{DoxyCompactList}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbbcd_8cpp}{xbbcd.\+cpp}} }{\pageref{xbbcd_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbdate_8cpp}{xbdate.\+cpp}} }{\pageref{xbdate_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbdbf_8cpp}{xbdbf.\+cpp}} }{\pageref{xbdbf_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbdbf3_8cpp}{xbdbf3.\+cpp}} }{\pageref{xbdbf3_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbdbf4_8cpp}{xbdbf4.\+cpp}} }{\pageref{xbdbf4_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbexp_8cpp}{xbexp.\+cpp}} }{\pageref{xbexp_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbexpnode_8cpp}{xbexpnode.\+cpp}} }{\pageref{xbexpnode_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbfields_8cpp}{xbfields.\+cpp}} }{\pageref{xbfields_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbfile_8cpp}{xbfile.\+cpp}} }{\pageref{xbfile_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbfilter_8cpp}{xbfilter.\+cpp}} }{\pageref{xbfilter_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbfuncs_8cpp}{xbfuncs.\+cpp}} }{\pageref{xbfuncs_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbixbase_8cpp}{xbixbase.\+cpp}} }{\pageref{xbixbase_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbixmdx_8cpp}{xbixmdx.\+cpp}} }{\pageref{xbixmdx_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbixndx_8cpp}{xbixndx.\+cpp}} }{\pageref{xbixndx_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xblog_8cpp}{xblog.\+cpp}} }{\pageref{xblog_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbmemo_8cpp}{xbmemo.\+cpp}} }{\pageref{xbmemo_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbmemo3_8cpp}{xbmemo3.\+cpp}} }{\pageref{xbmemo3_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbmemo4_8cpp}{xbmemo4.\+cpp}} }{\pageref{xbmemo4_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbssv_8cpp}{xbssv.\+cpp}} }{\pageref{xbssv_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbstring_8cpp}{xbstring.\+cpp}} }{\pageref{xbstring_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbtag_8cpp}{xbtag.\+cpp}} }{\pageref{xbtag_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbtblmgr_8cpp}{xbtblmgr.\+cpp}} }{\pageref{xbtblmgr_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbuda_8cpp}{xbuda.\+cpp}} }{\pageref{xbuda_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/core/\mbox{\hyperlink{xbxbase_8cpp}{xbxbase.\+cpp}} }{\pageref{xbxbase_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/examples/\mbox{\hyperlink{xb__ex__date_8cpp}{xb\+\_\+ex\+\_\+date.\+cpp}} }{\pageref{xb__ex__date_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/examples/\mbox{\hyperlink{xb__ex__sql_8cpp}{xb\+\_\+ex\+\_\+sql.\+cpp}} }{\pageref{xb__ex__sql_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/examples/\mbox{\hyperlink{xb__ex__string_8cpp}{xb\+\_\+ex\+\_\+string.\+cpp}} }{\pageref{xb__ex__string_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/examples/\mbox{\hyperlink{xb__ex__v3__create__dbf_8cpp}{xb\+\_\+ex\+\_\+v3\+\_\+create\+\_\+dbf.\+cpp}} }{\pageref{xb__ex__v3__create__dbf_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/examples/\mbox{\hyperlink{xb__ex__v3__upd__dbf_8cpp}{xb\+\_\+ex\+\_\+v3\+\_\+upd\+\_\+dbf.\+cpp}} }{\pageref{xb__ex__v3__upd__dbf_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/examples/\mbox{\hyperlink{xb__ex__v4__create__dbf_8cpp}{xb\+\_\+ex\+\_\+v4\+\_\+create\+\_\+dbf.\+cpp}} }{\pageref{xb__ex__v4__create__dbf_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/examples/\mbox{\hyperlink{xb__ex__v4__upd__dbf_8cpp}{xb\+\_\+ex\+\_\+v4\+\_\+upd\+\_\+dbf.\+cpp}} }{\pageref{xb__ex__v4__upd__dbf_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbase_8h}{xbase.\+h}} }{\pageref{xbase_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbbcd_8h}{xbbcd.\+h}} }{\pageref{xbbcd_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbdate_8h}{xbdate.\+h}} }{\pageref{xbdate_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbdbf_8h}{xbdbf.\+h}} }{\pageref{xbdbf_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbexp_8h}{xbexp.\+h}} }{\pageref{xbexp_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbexpnode_8h}{xbexpnode.\+h}} }{\pageref{xbexpnode_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbfile_8h}{xbfile.\+h}} }{\pageref{xbfile_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbfilter_8h}{xbfilter.\+h}} }{\pageref{xbfilter_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbindex_8h}{xbindex.\+h}} }{\pageref{xbindex_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xblnklst_8h}{xblnklst.\+h}} }{\pageref{xblnklst_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xblnklstord_8h}{xblnklstord.\+h}} }{\pageref{xblnklstord_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xblnknod_8h}{xblnknod.\+h}} }{\pageref{xblnknod_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xblog_8h}{xblog.\+h}} }{\pageref{xblog_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbmemo_8h}{xbmemo.\+h}} }{\pageref{xbmemo_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbretcod_8h}{xbretcod.\+h}} }{\pageref{xbretcod_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbsql_8h}{xbsql.\+h}} }{\pageref{xbsql_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbssv_8h}{xbssv.\+h}} }{\pageref{xbssv_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbstring_8h}{xbstring.\+h}} }{\pageref{xbstring_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbtag_8h}{xbtag.\+h}} }{\pageref{xbtag_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbtblmgr_8h}{xbtblmgr.\+h}} }{\pageref{xbtblmgr_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbtypes_8h}{xbtypes.\+h}} }{\pageref{xbtypes_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbuda_8h}{xbuda.\+h}} }{\pageref{xbuda_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbxbase_8h}{xbxbase.\+h}} }{\pageref{xbxbase_8h}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/sql/\mbox{\hyperlink{xbcrix_8cpp}{xbcrix.\+cpp}} }{\pageref{xbcrix_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/sql/\mbox{\hyperlink{xbcrtbl_8cpp}{xbcrtbl.\+cpp}} }{\pageref{xbcrtbl_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/sql/\mbox{\hyperlink{xbdrpix_8cpp}{xbdrpix.\+cpp}} }{\pageref{xbdrpix_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/sql/\mbox{\hyperlink{xbdrptbl_8cpp}{xbdrptbl.\+cpp}} }{\pageref{xbdrptbl_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/sql/\mbox{\hyperlink{xbinsert_8cpp}{xbinsert.\+cpp}} }{\pageref{xbinsert_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/sql/\mbox{\hyperlink{xbset_8cpp}{xbset.\+cpp}} }{\pageref{xbset_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/sql/\mbox{\hyperlink{xbsql_8cpp}{xbsql.\+cpp}} }{\pageref{xbsql_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{tstfuncs_8cpp}{tstfuncs.\+cpp}} }{\pageref{tstfuncs_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__bcd_8cpp}{xb\+\_\+test\+\_\+bcd.\+cpp}} }{\pageref{xb__test__bcd_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__date_8cpp}{xb\+\_\+test\+\_\+date.\+cpp}} }{\pageref{xb__test__date_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__dbf__v3__memos_8cpp}{xb\+\_\+test\+\_\+dbf\+\_\+v3\+\_\+memos.\+cpp}} }{\pageref{xb__test__dbf__v3__memos_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__dbf__v3__nomemos_8cpp}{xb\+\_\+test\+\_\+dbf\+\_\+v3\+\_\+nomemos.\+cpp}} }{\pageref{xb__test__dbf__v3__nomemos_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__dbf__v4__memos_8cpp}{xb\+\_\+test\+\_\+dbf\+\_\+v4\+\_\+memos.\+cpp}} }{\pageref{xb__test__dbf__v4__memos_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__dbf__v4__nomemos_8cpp}{xb\+\_\+test\+\_\+dbf\+\_\+v4\+\_\+nomemos.\+cpp}} }{\pageref{xb__test__dbf__v4__nomemos_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__expnode_8cpp}{xb\+\_\+test\+\_\+expnode.\+cpp}} }{\pageref{xb__test__expnode_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__expression_8cpp}{xb\+\_\+test\+\_\+expression.\+cpp}} }{\pageref{xb__test__expression_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__file_8cpp}{xb\+\_\+test\+\_\+file.\+cpp}} }{\pageref{xb__test__file_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__filter_8cpp}{xb\+\_\+test\+\_\+filter.\+cpp}} }{\pageref{xb__test__filter_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__funcs_8cpp}{xb\+\_\+test\+\_\+funcs.\+cpp}} }{\pageref{xb__test__funcs_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__linklist_8cpp}{xb\+\_\+test\+\_\+linklist.\+cpp}} }{\pageref{xb__test__linklist_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__lock_8cpp}{xb\+\_\+test\+\_\+lock.\+cpp}} }{\pageref{xb__test__lock_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__lock2_8cpp}{xb\+\_\+test\+\_\+lock2.\+cpp}} }{\pageref{xb__test__lock2_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__log_8cpp}{xb\+\_\+test\+\_\+log.\+cpp}} }{\pageref{xb__test__log_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__mdx_8cpp}{xb\+\_\+test\+\_\+mdx.\+cpp}} }{\pageref{xb__test__mdx_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__ndx_8cpp}{xb\+\_\+test\+\_\+ndx.\+cpp}} }{\pageref{xb__test__ndx_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__ndx2_8cpp}{xb\+\_\+test\+\_\+ndx2.\+cpp}} }{\pageref{xb__test__ndx2_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__sql_8cpp}{xb\+\_\+test\+\_\+sql.\+cpp}} }{\pageref{xb__test__sql_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__string_8cpp}{xb\+\_\+test\+\_\+string.\+cpp}} }{\pageref{xb__test__string_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__tblmgr_8cpp}{xb\+\_\+test\+\_\+tblmgr.\+cpp}} }{\pageref{xb__test__tblmgr_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__uda_8cpp}{xb\+\_\+test\+\_\+uda.\+cpp}} }{\pageref{xb__test__uda_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/tests/\mbox{\hyperlink{xb__test__xbase_8cpp}{xb\+\_\+test\+\_\+xbase.\+cpp}} }{\pageref{xb__test__xbase_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{checkndx_8cpp}{checkndx.\+cpp}} }{\pageref{checkndx_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{dbfxtrct_8cpp}{dbfxtrct.\+cpp}} }{\pageref{dbfxtrct_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{reindex_8cpp}{reindex.\+cpp}} }{\pageref{reindex_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__cfg__check_8cpp}{xb\+\_\+cfg\+\_\+check.\+cpp}} }{\pageref{xb__cfg__check_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__copydbf_8cpp}{xb\+\_\+copydbf.\+cpp}} }{\pageref{xb__copydbf_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__dbfutil_8cpp}{xb\+\_\+dbfutil.\+cpp}} }{\pageref{xb__dbfutil_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__deletall_8cpp}{xb\+\_\+deletall.\+cpp}} }{\pageref{xb__deletall_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__dumpdbt_8cpp}{xb\+\_\+dumpdbt.\+cpp}} }{\pageref{xb__dumpdbt_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__dumphdr_8cpp}{xb\+\_\+dumphdr.\+cpp}} }{\pageref{xb__dumphdr_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__dumpix_8cpp}{xb\+\_\+dumpix.\+cpp}} }{\pageref{xb__dumpix_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__dumprecs_8cpp}{xb\+\_\+dumprecs.\+cpp}} }{\pageref{xb__dumprecs_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__execsql_8cpp}{xb\+\_\+execsql.\+cpp}} }{\pageref{xb__execsql_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__pack_8cpp}{xb\+\_\+pack.\+cpp}} }{\pageref{xb__pack_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__tblinfo_8cpp}{xb\+\_\+tblinfo.\+cpp}} }{\pageref{xb__tblinfo_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__undelall_8cpp}{xb\+\_\+undelall.\+cpp}} }{\pageref{xb__undelall_8cpp}}{}
-\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/utils/\mbox{\hyperlink{xb__zap_8cpp}{xb\+\_\+zap.\+cpp}} }{\pageref{xb__zap_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbbcd_8cpp}{xbbcd.\+cpp}} }{\pageref{xbbcd_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbdate_8cpp}{xbdate.\+cpp}} }{\pageref{xbdate_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbdbf_8cpp}{xbdbf.\+cpp}} }{\pageref{xbdbf_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbdbf3_8cpp}{xbdbf3.\+cpp}} }{\pageref{xbdbf3_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbdbf4_8cpp}{xbdbf4.\+cpp}} }{\pageref{xbdbf4_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbexp_8cpp}{xbexp.\+cpp}} }{\pageref{xbexp_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbexpnode_8cpp}{xbexpnode.\+cpp}} }{\pageref{xbexpnode_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbfields_8cpp}{xbfields.\+cpp}} }{\pageref{xbfields_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbfile_8cpp}{xbfile.\+cpp}} }{\pageref{xbfile_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbfilter_8cpp}{xbfilter.\+cpp}} }{\pageref{xbfilter_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbfuncs_8cpp}{xbfuncs.\+cpp}} }{\pageref{xbfuncs_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbixbase_8cpp}{xbixbase.\+cpp}} }{\pageref{xbixbase_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbixmdx_8cpp}{xbixmdx.\+cpp}} }{\pageref{xbixmdx_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbixndx_8cpp}{xbixndx.\+cpp}} }{\pageref{xbixndx_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xblog_8cpp}{xblog.\+cpp}} }{\pageref{xblog_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbmemo_8cpp}{xbmemo.\+cpp}} }{\pageref{xbmemo_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbmemo3_8cpp}{xbmemo3.\+cpp}} }{\pageref{xbmemo3_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbmemo4_8cpp}{xbmemo4.\+cpp}} }{\pageref{xbmemo4_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbssv_8cpp}{xbssv.\+cpp}} }{\pageref{xbssv_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbstring_8cpp}{xbstring.\+cpp}} }{\pageref{xbstring_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbtag_8cpp}{xbtag.\+cpp}} }{\pageref{xbtag_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbtblmgr_8cpp}{xbtblmgr.\+cpp}} }{\pageref{xbtblmgr_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbuda_8cpp}{xbuda.\+cpp}} }{\pageref{xbuda_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/core/\mbox{\hyperlink{xbxbase_8cpp}{xbxbase.\+cpp}} }{\pageref{xbxbase_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/examples/\mbox{\hyperlink{xb__ex__date_8cpp}{xb\+\_\+ex\+\_\+date.\+cpp}} }{\pageref{xb__ex__date_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/examples/\mbox{\hyperlink{xb__ex__sql_8cpp}{xb\+\_\+ex\+\_\+sql.\+cpp}} }{\pageref{xb__ex__sql_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/examples/\mbox{\hyperlink{xb__ex__string_8cpp}{xb\+\_\+ex\+\_\+string.\+cpp}} }{\pageref{xb__ex__string_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/examples/\mbox{\hyperlink{xb__ex__v3__create__dbf_8cpp}{xb\+\_\+ex\+\_\+v3\+\_\+create\+\_\+dbf.\+cpp}} }{\pageref{xb__ex__v3__create__dbf_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/examples/\mbox{\hyperlink{xb__ex__v3__upd__dbf_8cpp}{xb\+\_\+ex\+\_\+v3\+\_\+upd\+\_\+dbf.\+cpp}} }{\pageref{xb__ex__v3__upd__dbf_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/examples/\mbox{\hyperlink{xb__ex__v4__create__dbf_8cpp}{xb\+\_\+ex\+\_\+v4\+\_\+create\+\_\+dbf.\+cpp}} }{\pageref{xb__ex__v4__create__dbf_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/examples/\mbox{\hyperlink{xb__ex__v4__upd__dbf_8cpp}{xb\+\_\+ex\+\_\+v4\+\_\+upd\+\_\+dbf.\+cpp}} }{\pageref{xb__ex__v4__upd__dbf_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbase_8h}{xbase.\+h}} }{\pageref{xbase_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbbcd_8h}{xbbcd.\+h}} }{\pageref{xbbcd_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbdate_8h}{xbdate.\+h}} }{\pageref{xbdate_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbdbf_8h}{xbdbf.\+h}} }{\pageref{xbdbf_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbexp_8h}{xbexp.\+h}} }{\pageref{xbexp_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbexpnode_8h}{xbexpnode.\+h}} }{\pageref{xbexpnode_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbfile_8h}{xbfile.\+h}} }{\pageref{xbfile_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbfilter_8h}{xbfilter.\+h}} }{\pageref{xbfilter_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbindex_8h}{xbindex.\+h}} }{\pageref{xbindex_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xblnklst_8h}{xblnklst.\+h}} }{\pageref{xblnklst_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xblnklstord_8h}{xblnklstord.\+h}} }{\pageref{xblnklstord_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xblnknod_8h}{xblnknod.\+h}} }{\pageref{xblnknod_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xblog_8h}{xblog.\+h}} }{\pageref{xblog_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbmemo_8h}{xbmemo.\+h}} }{\pageref{xbmemo_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbretcod_8h}{xbretcod.\+h}} }{\pageref{xbretcod_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbsql_8h}{xbsql.\+h}} }{\pageref{xbsql_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbssv_8h}{xbssv.\+h}} }{\pageref{xbssv_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbstring_8h}{xbstring.\+h}} }{\pageref{xbstring_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbtag_8h}{xbtag.\+h}} }{\pageref{xbtag_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbtblmgr_8h}{xbtblmgr.\+h}} }{\pageref{xbtblmgr_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbtypes_8h}{xbtypes.\+h}} }{\pageref{xbtypes_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbuda_8h}{xbuda.\+h}} }{\pageref{xbuda_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbxbase_8h}{xbxbase.\+h}} }{\pageref{xbxbase_8h}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/sql/\mbox{\hyperlink{xbalttbl_8cpp}{xbalttbl.\+cpp}} }{\pageref{xbalttbl_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/sql/\mbox{\hyperlink{xbcrix_8cpp}{xbcrix.\+cpp}} }{\pageref{xbcrix_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/sql/\mbox{\hyperlink{xbcrtbl_8cpp}{xbcrtbl.\+cpp}} }{\pageref{xbcrtbl_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/sql/\mbox{\hyperlink{xbdelete_8cpp}{xbdelete.\+cpp}} }{\pageref{xbdelete_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/sql/\mbox{\hyperlink{xbdrpix_8cpp}{xbdrpix.\+cpp}} }{\pageref{xbdrpix_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/sql/\mbox{\hyperlink{xbdrptbl_8cpp}{xbdrptbl.\+cpp}} }{\pageref{xbdrptbl_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/sql/\mbox{\hyperlink{xbinsert_8cpp}{xbinsert.\+cpp}} }{\pageref{xbinsert_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/sql/\mbox{\hyperlink{xbset_8cpp}{xbset.\+cpp}} }{\pageref{xbset_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/sql/\mbox{\hyperlink{xbsql_8cpp}{xbsql.\+cpp}} }{\pageref{xbsql_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{tstfuncs_8cpp}{tstfuncs.\+cpp}} }{\pageref{tstfuncs_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__bcd_8cpp}{xb\+\_\+test\+\_\+bcd.\+cpp}} }{\pageref{xb__test__bcd_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__date_8cpp}{xb\+\_\+test\+\_\+date.\+cpp}} }{\pageref{xb__test__date_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__dbf__v3__memos_8cpp}{xb\+\_\+test\+\_\+dbf\+\_\+v3\+\_\+memos.\+cpp}} }{\pageref{xb__test__dbf__v3__memos_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__dbf__v3__nomemos_8cpp}{xb\+\_\+test\+\_\+dbf\+\_\+v3\+\_\+nomemos.\+cpp}} }{\pageref{xb__test__dbf__v3__nomemos_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__dbf__v4__memos_8cpp}{xb\+\_\+test\+\_\+dbf\+\_\+v4\+\_\+memos.\+cpp}} }{\pageref{xb__test__dbf__v4__memos_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__dbf__v4__nomemos_8cpp}{xb\+\_\+test\+\_\+dbf\+\_\+v4\+\_\+nomemos.\+cpp}} }{\pageref{xb__test__dbf__v4__nomemos_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__expnode_8cpp}{xb\+\_\+test\+\_\+expnode.\+cpp}} }{\pageref{xb__test__expnode_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__expression_8cpp}{xb\+\_\+test\+\_\+expression.\+cpp}} }{\pageref{xb__test__expression_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__file_8cpp}{xb\+\_\+test\+\_\+file.\+cpp}} }{\pageref{xb__test__file_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__filter_8cpp}{xb\+\_\+test\+\_\+filter.\+cpp}} }{\pageref{xb__test__filter_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__funcs_8cpp}{xb\+\_\+test\+\_\+funcs.\+cpp}} }{\pageref{xb__test__funcs_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__linklist_8cpp}{xb\+\_\+test\+\_\+linklist.\+cpp}} }{\pageref{xb__test__linklist_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__lock_8cpp}{xb\+\_\+test\+\_\+lock.\+cpp}} }{\pageref{xb__test__lock_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__lock2_8cpp}{xb\+\_\+test\+\_\+lock2.\+cpp}} }{\pageref{xb__test__lock2_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__log_8cpp}{xb\+\_\+test\+\_\+log.\+cpp}} }{\pageref{xb__test__log_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__mdx_8cpp}{xb\+\_\+test\+\_\+mdx.\+cpp}} }{\pageref{xb__test__mdx_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__ndx_8cpp}{xb\+\_\+test\+\_\+ndx.\+cpp}} }{\pageref{xb__test__ndx_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__sql_8cpp}{xb\+\_\+test\+\_\+sql.\+cpp}} }{\pageref{xb__test__sql_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__string_8cpp}{xb\+\_\+test\+\_\+string.\+cpp}} }{\pageref{xb__test__string_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__tblmgr_8cpp}{xb\+\_\+test\+\_\+tblmgr.\+cpp}} }{\pageref{xb__test__tblmgr_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__uda_8cpp}{xb\+\_\+test\+\_\+uda.\+cpp}} }{\pageref{xb__test__uda_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/tests/\mbox{\hyperlink{xb__test__xbase_8cpp}{xb\+\_\+test\+\_\+xbase.\+cpp}} }{\pageref{xb__test__xbase_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__cfg__check_8cpp}{xb\+\_\+cfg\+\_\+check.\+cpp}} }{\pageref{xb__cfg__check_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__copydbf_8cpp}{xb\+\_\+copydbf.\+cpp}} }{\pageref{xb__copydbf_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__dbfutil_8cpp}{xb\+\_\+dbfutil.\+cpp}} }{\pageref{xb__dbfutil_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__deletall_8cpp}{xb\+\_\+deletall.\+cpp}} }{\pageref{xb__deletall_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__dumpdbt_8cpp}{xb\+\_\+dumpdbt.\+cpp}} }{\pageref{xb__dumpdbt_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__dumphdr_8cpp}{xb\+\_\+dumphdr.\+cpp}} }{\pageref{xb__dumphdr_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__dumpix_8cpp}{xb\+\_\+dumpix.\+cpp}} }{\pageref{xb__dumpix_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__dumprecs_8cpp}{xb\+\_\+dumprecs.\+cpp}} }{\pageref{xb__dumprecs_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__execsql_8cpp}{xb\+\_\+execsql.\+cpp}} }{\pageref{xb__execsql_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__pack_8cpp}{xb\+\_\+pack.\+cpp}} }{\pageref{xb__pack_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__tblinfo_8cpp}{xb\+\_\+tblinfo.\+cpp}} }{\pageref{xb__tblinfo_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__undelall_8cpp}{xb\+\_\+undelall.\+cpp}} }{\pageref{xb__undelall_8cpp}}{}
+\item\contentsline{section}{/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/utils/\mbox{\hyperlink{xb__zap_8cpp}{xb\+\_\+zap.\+cpp}} }{\pageref{xb__zap_8cpp}}{}
\end{DoxyCompactList}
diff --git a/docs/doxygen/latex/refman.tex b/docs/doxygen/latex/refman.tex
index 3f408ed..6a9ec26 100644
--- a/docs/doxygen/latex/refman.tex
+++ b/docs/doxygen/latex/refman.tex
@@ -273,8 +273,10 @@
\input{xbuda_8h_source}
\input{xbxbase_8h}
\input{xbxbase_8h_source}
+\input{xbalttbl_8cpp}
\input{xbcrix_8cpp}
\input{xbcrtbl_8cpp}
+\input{xbdelete_8cpp}
\input{xbdrpix_8cpp}
\input{xbdrptbl_8cpp}
\input{xbinsert_8cpp}
@@ -298,15 +300,11 @@
\input{xb__test__log_8cpp}
\input{xb__test__mdx_8cpp}
\input{xb__test__ndx_8cpp}
-\input{xb__test__ndx2_8cpp}
\input{xb__test__sql_8cpp}
\input{xb__test__string_8cpp}
\input{xb__test__tblmgr_8cpp}
\input{xb__test__uda_8cpp}
\input{xb__test__xbase_8cpp}
-\input{checkndx_8cpp}
-\input{dbfxtrct_8cpp}
-\input{reindex_8cpp}
\input{xb__cfg__check_8cpp}
\input{xb__copydbf_8cpp}
\input{xb__dbfutil_8cpp}
diff --git a/docs/doxygen/latex/structxb_1_1xbSchema.tex b/docs/doxygen/latex/structxb_1_1xbSchema.tex
index 290259b..6e49e45 100644
--- a/docs/doxygen/latex/structxb_1_1xbSchema.tex
+++ b/docs/doxygen/latex/structxb_1_1xbSchema.tex
@@ -74,4 +74,4 @@ See program \mbox{\hyperlink{xb__ex__v3__create__dbf_8cpp}{xb\+\_\+ex\+\_\+v3\+\
The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbdbf_8h}{xbdbf.\+h}}\end{DoxyCompactItemize}
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbdbf_8h}{xbdbf.\+h}}\end{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/structxb_1_1xbTblList.tex b/docs/doxygen/latex/structxb_1_1xbTblList.tex
index 2c3bddb..4ddaab0 100644
--- a/docs/doxygen/latex/structxb_1_1xbTblList.tex
+++ b/docs/doxygen/latex/structxb_1_1xbTblList.tex
@@ -46,4 +46,4 @@
The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item
-/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+2/src/include/\mbox{\hyperlink{xbtblmgr_8h}{xbtblmgr.\+h}}\end{DoxyCompactItemize}
+/mnt/1\+Tdata/xbase/xbase64-\/4.\+0.\+3/src/include/\mbox{\hyperlink{xbtblmgr_8h}{xbtblmgr.\+h}}\end{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/tstfuncs_8cpp.tex b/docs/doxygen/latex/tstfuncs_8cpp.tex
index 5156893..acec80e 100644
--- a/docs/doxygen/latex/tstfuncs_8cpp.tex
+++ b/docs/doxygen/latex/tstfuncs_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{tstfuncs_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/tstfuncs.cpp File Reference}
-\label{tstfuncs_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/tstfuncs.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/tstfuncs.cpp}}
+\hypertarget{tstfuncs_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/tstfuncs.cpp File Reference}
+\label{tstfuncs_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/tstfuncs.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/tstfuncs.cpp}}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item
@@ -23,8 +23,6 @@ xb\+Int16 \mbox{\hyperlink{tstfuncs_8cpp_af1c78fb72bcd39eb86f11aa2887fe62c}{Test
\item
xb\+Int16 \mbox{\hyperlink{tstfuncs_8cpp_ac64a0bed74ba10b638456709f128f893}{Test\+Method}} (xb\+Int16 Print\+Option, const char $\ast$title, xb\+Double result, xb\+Double expected\+Result, xb\+Double d\+Epsilon)
\item
-xb\+Int16 \mbox{\hyperlink{tstfuncs_8cpp_aa5dbb64c6135ac01f79e5b6087270cf5}{File\+Compare}} (xb\+XBase \&x, xb\+Int16 i\+Po, const xb\+String \&s\+File1, const xb\+String \&s\+File2, const xb\+String \&s\+Skip\+Bytes)
-\item
xb\+Double \mbox{\hyperlink{tstfuncs_8cpp_a69a6e718e066af7f8392e5f1fea40d1b}{dbl\+Max}} (xb\+Double a, xb\+Double b)
\item
xb\+Double \mbox{\hyperlink{tstfuncs_8cpp_a4d7b8f3f1ce52c6c0a281f25419f4c93}{dbl\+Min}} (xb\+Double a, xb\+Double b)
@@ -61,12 +59,6 @@ time\+\_\+t \mbox{\hyperlink{tstfuncs_8cpp_ae2281da6157495d69406c35f69a61f9f}{ti
\doxysubsubsection{\texorpdfstring{dblMin()}{dblMin()}}
{\footnotesize\ttfamily xb\+Double dbl\+Min (\begin{DoxyParamCaption}\item[{xb\+Double}]{a, }\item[{xb\+Double}]{b }\end{DoxyParamCaption})}
-\mbox{\Hypertarget{tstfuncs_8cpp_aa5dbb64c6135ac01f79e5b6087270cf5}\label{tstfuncs_8cpp_aa5dbb64c6135ac01f79e5b6087270cf5}}
-\index{tstfuncs.cpp@{tstfuncs.cpp}!FileCompare@{FileCompare}}
-\index{FileCompare@{FileCompare}!tstfuncs.cpp@{tstfuncs.cpp}}
-\doxysubsubsection{\texorpdfstring{FileCompare()}{FileCompare()}}
-{\footnotesize\ttfamily xb\+Int16 File\+Compare (\begin{DoxyParamCaption}\item[{xb\+XBase \&}]{x, }\item[{xb\+Int16}]{i\+Po, }\item[{const xb\+String \&}]{s\+File1, }\item[{const xb\+String \&}]{s\+File2, }\item[{const xb\+String \&}]{s\+Skip\+Bytes }\end{DoxyParamCaption})}
-
\mbox{\Hypertarget{tstfuncs_8cpp_ab1f17da15e67a8b2460d5a88b7a3db6e}\label{tstfuncs_8cpp_ab1f17da15e67a8b2460d5a88b7a3db6e}}
\index{tstfuncs.cpp@{tstfuncs.cpp}!InitTime@{InitTime}}
\index{InitTime@{InitTime}!tstfuncs.cpp@{tstfuncs.cpp}}
diff --git a/docs/doxygen/latex/xb__cfg__check_8cpp.tex b/docs/doxygen/latex/xb__cfg__check_8cpp.tex
index 1a04cc5..4e50ce2 100644
--- a/docs/doxygen/latex/xb__cfg__check_8cpp.tex
+++ b/docs/doxygen/latex/xb__cfg__check_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__cfg__check_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+cfg\+\_\+check.cpp File Reference}
-\label{xb__cfg__check_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_cfg\_check.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_cfg\_check.cpp}}
+\hypertarget{xb__cfg__check_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+cfg\+\_\+check.cpp File Reference}
+\label{xb__cfg__check_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_cfg\_check.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_cfg\_check.cpp}}
{\ttfamily \#include $<$stdio.\+h$>$}\newline
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xb__copydbf_8cpp.tex b/docs/doxygen/latex/xb__copydbf_8cpp.tex
index d9cd854..a7de780 100644
--- a/docs/doxygen/latex/xb__copydbf_8cpp.tex
+++ b/docs/doxygen/latex/xb__copydbf_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__copydbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+copydbf.cpp File Reference}
-\label{xb__copydbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_copydbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_copydbf.cpp}}
+\hypertarget{xb__copydbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+copydbf.cpp File Reference}
+\label{xb__copydbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_copydbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_copydbf.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__dbfutil_8cpp.tex b/docs/doxygen/latex/xb__dbfutil_8cpp.tex
index 029d025..6e6b9d0 100644
--- a/docs/doxygen/latex/xb__dbfutil_8cpp.tex
+++ b/docs/doxygen/latex/xb__dbfutil_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__dbfutil_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+dbfutil.cpp File Reference}
-\label{xb__dbfutil_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_dbfutil.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_dbfutil.cpp}}
+\hypertarget{xb__dbfutil_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+dbfutil.cpp File Reference}
+\label{xb__dbfutil_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_dbfutil.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_dbfutil.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__deletall_8cpp.tex b/docs/doxygen/latex/xb__deletall_8cpp.tex
index b85752c..25dfb54 100644
--- a/docs/doxygen/latex/xb__deletall_8cpp.tex
+++ b/docs/doxygen/latex/xb__deletall_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__deletall_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+deletall.cpp File Reference}
-\label{xb__deletall_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_deletall.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_deletall.cpp}}
+\hypertarget{xb__deletall_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+deletall.cpp File Reference}
+\label{xb__deletall_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_deletall.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_deletall.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__dumpdbt_8cpp.tex b/docs/doxygen/latex/xb__dumpdbt_8cpp.tex
index 334d1a5..422a8f7 100644
--- a/docs/doxygen/latex/xb__dumpdbt_8cpp.tex
+++ b/docs/doxygen/latex/xb__dumpdbt_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__dumpdbt_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+dumpdbt.cpp File Reference}
-\label{xb__dumpdbt_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_dumpdbt.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_dumpdbt.cpp}}
+\hypertarget{xb__dumpdbt_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+dumpdbt.cpp File Reference}
+\label{xb__dumpdbt_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_dumpdbt.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_dumpdbt.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__dumphdr_8cpp.tex b/docs/doxygen/latex/xb__dumphdr_8cpp.tex
index 4f0b5c3..6793238 100644
--- a/docs/doxygen/latex/xb__dumphdr_8cpp.tex
+++ b/docs/doxygen/latex/xb__dumphdr_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__dumphdr_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+dumphdr.cpp File Reference}
-\label{xb__dumphdr_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_dumphdr.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_dumphdr.cpp}}
+\hypertarget{xb__dumphdr_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+dumphdr.cpp File Reference}
+\label{xb__dumphdr_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_dumphdr.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_dumphdr.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__dumpix_8cpp.tex b/docs/doxygen/latex/xb__dumpix_8cpp.tex
index 52f034d..347b4cd 100644
--- a/docs/doxygen/latex/xb__dumpix_8cpp.tex
+++ b/docs/doxygen/latex/xb__dumpix_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__dumpix_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+dumpix.cpp File Reference}
-\label{xb__dumpix_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_dumpix.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_dumpix.cpp}}
+\hypertarget{xb__dumpix_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+dumpix.cpp File Reference}
+\label{xb__dumpix_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_dumpix.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_dumpix.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__dumprecs_8cpp.tex b/docs/doxygen/latex/xb__dumprecs_8cpp.tex
index 4216e03..bc104e6 100644
--- a/docs/doxygen/latex/xb__dumprecs_8cpp.tex
+++ b/docs/doxygen/latex/xb__dumprecs_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__dumprecs_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+dumprecs.cpp File Reference}
-\label{xb__dumprecs_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_dumprecs.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_dumprecs.cpp}}
+\hypertarget{xb__dumprecs_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+dumprecs.cpp File Reference}
+\label{xb__dumprecs_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_dumprecs.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_dumprecs.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__ex__date_8cpp.tex b/docs/doxygen/latex/xb__ex__date_8cpp.tex
index b43cf2e..d9a4bb0 100644
--- a/docs/doxygen/latex/xb__ex__date_8cpp.tex
+++ b/docs/doxygen/latex/xb__ex__date_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__ex__date_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\+\_\+ex\+\_\+date.cpp File Reference}
-\label{xb__ex__date_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_date.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_date.cpp}}
+\hypertarget{xb__ex__date_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\+\_\+ex\+\_\+date.cpp File Reference}
+\label{xb__ex__date_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_date.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_date.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__ex__sql_8cpp.tex b/docs/doxygen/latex/xb__ex__sql_8cpp.tex
index 13b6ceb..b4e8e20 100644
--- a/docs/doxygen/latex/xb__ex__sql_8cpp.tex
+++ b/docs/doxygen/latex/xb__ex__sql_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__ex__sql_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\+\_\+ex\+\_\+sql.cpp File Reference}
-\label{xb__ex__sql_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_sql.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_sql.cpp}}
+\hypertarget{xb__ex__sql_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\+\_\+ex\+\_\+sql.cpp File Reference}
+\label{xb__ex__sql_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_sql.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_sql.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__ex__string_8cpp.tex b/docs/doxygen/latex/xb__ex__string_8cpp.tex
index 94306b6..4043c79 100644
--- a/docs/doxygen/latex/xb__ex__string_8cpp.tex
+++ b/docs/doxygen/latex/xb__ex__string_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__ex__string_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\+\_\+ex\+\_\+string.cpp File Reference}
-\label{xb__ex__string_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_string.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_string.cpp}}
+\hypertarget{xb__ex__string_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\+\_\+ex\+\_\+string.cpp File Reference}
+\label{xb__ex__string_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_string.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_string.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__ex__v3__create__dbf_8cpp.tex b/docs/doxygen/latex/xb__ex__v3__create__dbf_8cpp.tex
index 22a434e..5448ce1 100644
--- a/docs/doxygen/latex/xb__ex__v3__create__dbf_8cpp.tex
+++ b/docs/doxygen/latex/xb__ex__v3__create__dbf_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__ex__v3__create__dbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\+\_\+ex\+\_\+v3\+\_\+create\+\_\+dbf.cpp File Reference}
-\label{xb__ex__v3__create__dbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_v3\_create\_dbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_v3\_create\_dbf.cpp}}
+\hypertarget{xb__ex__v3__create__dbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\+\_\+ex\+\_\+v3\+\_\+create\+\_\+dbf.cpp File Reference}
+\label{xb__ex__v3__create__dbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_v3\_create\_dbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_v3\_create\_dbf.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__ex__v3__upd__dbf_8cpp.tex b/docs/doxygen/latex/xb__ex__v3__upd__dbf_8cpp.tex
index edcc446..8a1f6ee 100644
--- a/docs/doxygen/latex/xb__ex__v3__upd__dbf_8cpp.tex
+++ b/docs/doxygen/latex/xb__ex__v3__upd__dbf_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__ex__v3__upd__dbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\+\_\+ex\+\_\+v3\+\_\+upd\+\_\+dbf.cpp File Reference}
-\label{xb__ex__v3__upd__dbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_v3\_upd\_dbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_v3\_upd\_dbf.cpp}}
+\hypertarget{xb__ex__v3__upd__dbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\+\_\+ex\+\_\+v3\+\_\+upd\+\_\+dbf.cpp File Reference}
+\label{xb__ex__v3__upd__dbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_v3\_upd\_dbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_v3\_upd\_dbf.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__ex__v4__create__dbf_8cpp.tex b/docs/doxygen/latex/xb__ex__v4__create__dbf_8cpp.tex
index a34ee54..e5180f5 100644
--- a/docs/doxygen/latex/xb__ex__v4__create__dbf_8cpp.tex
+++ b/docs/doxygen/latex/xb__ex__v4__create__dbf_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__ex__v4__create__dbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\+\_\+ex\+\_\+v4\+\_\+create\+\_\+dbf.cpp File Reference}
-\label{xb__ex__v4__create__dbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_v4\_create\_dbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_v4\_create\_dbf.cpp}}
+\hypertarget{xb__ex__v4__create__dbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\+\_\+ex\+\_\+v4\+\_\+create\+\_\+dbf.cpp File Reference}
+\label{xb__ex__v4__create__dbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_v4\_create\_dbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_v4\_create\_dbf.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__ex__v4__upd__dbf_8cpp.tex b/docs/doxygen/latex/xb__ex__v4__upd__dbf_8cpp.tex
index b4b15ff..d06ada7 100644
--- a/docs/doxygen/latex/xb__ex__v4__upd__dbf_8cpp.tex
+++ b/docs/doxygen/latex/xb__ex__v4__upd__dbf_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__ex__v4__upd__dbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\+\_\+ex\+\_\+v4\+\_\+upd\+\_\+dbf.cpp File Reference}
-\label{xb__ex__v4__upd__dbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_v4\_upd\_dbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/examples/xb\_ex\_v4\_upd\_dbf.cpp}}
+\hypertarget{xb__ex__v4__upd__dbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\+\_\+ex\+\_\+v4\+\_\+upd\+\_\+dbf.cpp File Reference}
+\label{xb__ex__v4__upd__dbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_v4\_upd\_dbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/examples/xb\_ex\_v4\_upd\_dbf.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__execsql_8cpp.tex b/docs/doxygen/latex/xb__execsql_8cpp.tex
index 28ddd4c..e165f03 100644
--- a/docs/doxygen/latex/xb__execsql_8cpp.tex
+++ b/docs/doxygen/latex/xb__execsql_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__execsql_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+execsql.cpp File Reference}
-\label{xb__execsql_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_execsql.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_execsql.cpp}}
+\hypertarget{xb__execsql_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+execsql.cpp File Reference}
+\label{xb__execsql_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_execsql.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_execsql.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__pack_8cpp.tex b/docs/doxygen/latex/xb__pack_8cpp.tex
index 9a2a9a9..0c0bbac 100644
--- a/docs/doxygen/latex/xb__pack_8cpp.tex
+++ b/docs/doxygen/latex/xb__pack_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__pack_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+pack.cpp File Reference}
-\label{xb__pack_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_pack.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_pack.cpp}}
+\hypertarget{xb__pack_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+pack.cpp File Reference}
+\label{xb__pack_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_pack.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_pack.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__tblinfo_8cpp.tex b/docs/doxygen/latex/xb__tblinfo_8cpp.tex
index 1effddc..dc90d9f 100644
--- a/docs/doxygen/latex/xb__tblinfo_8cpp.tex
+++ b/docs/doxygen/latex/xb__tblinfo_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__tblinfo_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+tblinfo.cpp File Reference}
-\label{xb__tblinfo_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_tblinfo.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_tblinfo.cpp}}
+\hypertarget{xb__tblinfo_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+tblinfo.cpp File Reference}
+\label{xb__tblinfo_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_tblinfo.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_tblinfo.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__test__bcd_8cpp.tex b/docs/doxygen/latex/xb__test__bcd_8cpp.tex
index db40641..2da8baa 100644
--- a/docs/doxygen/latex/xb__test__bcd_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__bcd_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__bcd_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+bcd.cpp File Reference}
-\label{xb__test__bcd_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_bcd.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_bcd.cpp}}
+\hypertarget{xb__test__bcd_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+bcd.cpp File Reference}
+\label{xb__test__bcd_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_bcd.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_bcd.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__date_8cpp.tex b/docs/doxygen/latex/xb__test__date_8cpp.tex
index a978788..ae6f280 100644
--- a/docs/doxygen/latex/xb__test__date_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__date_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__date_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+date.cpp File Reference}
-\label{xb__test__date_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_date.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_date.cpp}}
+\hypertarget{xb__test__date_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+date.cpp File Reference}
+\label{xb__test__date_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_date.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_date.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__dbf__v3__memos_8cpp.tex b/docs/doxygen/latex/xb__test__dbf__v3__memos_8cpp.tex
index 4974621..847b1da 100644
--- a/docs/doxygen/latex/xb__test__dbf__v3__memos_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__dbf__v3__memos_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__dbf__v3__memos_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+dbf\+\_\+v3\+\_\+memos.cpp File Reference}
-\label{xb__test__dbf__v3__memos_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_dbf\_v3\_memos.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_dbf\_v3\_memos.cpp}}
+\hypertarget{xb__test__dbf__v3__memos_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+dbf\+\_\+v3\+\_\+memos.cpp File Reference}
+\label{xb__test__dbf__v3__memos_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_dbf\_v3\_memos.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_dbf\_v3\_memos.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__dbf__v3__nomemos_8cpp.tex b/docs/doxygen/latex/xb__test__dbf__v3__nomemos_8cpp.tex
index 35e32d5..d22af64 100644
--- a/docs/doxygen/latex/xb__test__dbf__v3__nomemos_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__dbf__v3__nomemos_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__dbf__v3__nomemos_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+dbf\+\_\+v3\+\_\+nomemos.cpp File Reference}
-\label{xb__test__dbf__v3__nomemos_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_dbf\_v3\_nomemos.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_dbf\_v3\_nomemos.cpp}}
+\hypertarget{xb__test__dbf__v3__nomemos_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+dbf\+\_\+v3\+\_\+nomemos.cpp File Reference}
+\label{xb__test__dbf__v3__nomemos_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_dbf\_v3\_nomemos.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_dbf\_v3\_nomemos.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__dbf__v4__memos_8cpp.tex b/docs/doxygen/latex/xb__test__dbf__v4__memos_8cpp.tex
index 34a6200..96a427e 100644
--- a/docs/doxygen/latex/xb__test__dbf__v4__memos_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__dbf__v4__memos_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__dbf__v4__memos_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+dbf\+\_\+v4\+\_\+memos.cpp File Reference}
-\label{xb__test__dbf__v4__memos_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_dbf\_v4\_memos.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_dbf\_v4\_memos.cpp}}
+\hypertarget{xb__test__dbf__v4__memos_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+dbf\+\_\+v4\+\_\+memos.cpp File Reference}
+\label{xb__test__dbf__v4__memos_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_dbf\_v4\_memos.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_dbf\_v4\_memos.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__dbf__v4__nomemos_8cpp.tex b/docs/doxygen/latex/xb__test__dbf__v4__nomemos_8cpp.tex
index c859ec4..4bd23a0 100644
--- a/docs/doxygen/latex/xb__test__dbf__v4__nomemos_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__dbf__v4__nomemos_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__dbf__v4__nomemos_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+dbf\+\_\+v4\+\_\+nomemos.cpp File Reference}
-\label{xb__test__dbf__v4__nomemos_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_dbf\_v4\_nomemos.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_dbf\_v4\_nomemos.cpp}}
+\hypertarget{xb__test__dbf__v4__nomemos_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+dbf\+\_\+v4\+\_\+nomemos.cpp File Reference}
+\label{xb__test__dbf__v4__nomemos_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_dbf\_v4\_nomemos.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_dbf\_v4\_nomemos.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__expnode_8cpp.tex b/docs/doxygen/latex/xb__test__expnode_8cpp.tex
index 2cde3bb..a95fea8 100644
--- a/docs/doxygen/latex/xb__test__expnode_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__expnode_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__expnode_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+expnode.cpp File Reference}
-\label{xb__test__expnode_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_expnode.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_expnode.cpp}}
+\hypertarget{xb__test__expnode_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+expnode.cpp File Reference}
+\label{xb__test__expnode_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_expnode.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_expnode.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__expression_8cpp.tex b/docs/doxygen/latex/xb__test__expression_8cpp.tex
index b7584d5..6822ce3 100644
--- a/docs/doxygen/latex/xb__test__expression_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__expression_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__expression_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+expression.cpp File Reference}
-\label{xb__test__expression_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_expression.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_expression.cpp}}
+\hypertarget{xb__test__expression_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+expression.cpp File Reference}
+\label{xb__test__expression_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_expression.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_expression.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__file_8cpp.tex b/docs/doxygen/latex/xb__test__file_8cpp.tex
index 453934d..7b59e72 100644
--- a/docs/doxygen/latex/xb__test__file_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__file_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__file_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+file.cpp File Reference}
-\label{xb__test__file_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_file.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_file.cpp}}
+\hypertarget{xb__test__file_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+file.cpp File Reference}
+\label{xb__test__file_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_file.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_file.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__filter_8cpp.tex b/docs/doxygen/latex/xb__test__filter_8cpp.tex
index 2133a8f..a9c8390 100644
--- a/docs/doxygen/latex/xb__test__filter_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__filter_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__filter_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+filter.cpp File Reference}
-\label{xb__test__filter_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_filter.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_filter.cpp}}
+\hypertarget{xb__test__filter_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+filter.cpp File Reference}
+\label{xb__test__filter_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_filter.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_filter.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__funcs_8cpp.tex b/docs/doxygen/latex/xb__test__funcs_8cpp.tex
index 8f4707b..b72dc8f 100644
--- a/docs/doxygen/latex/xb__test__funcs_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__funcs_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__funcs_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+funcs.cpp File Reference}
-\label{xb__test__funcs_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_funcs.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_funcs.cpp}}
+\hypertarget{xb__test__funcs_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+funcs.cpp File Reference}
+\label{xb__test__funcs_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_funcs.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_funcs.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__linklist_8cpp.tex b/docs/doxygen/latex/xb__test__linklist_8cpp.tex
index 4958af6..3b3f30d 100644
--- a/docs/doxygen/latex/xb__test__linklist_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__linklist_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__linklist_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+linklist.cpp File Reference}
-\label{xb__test__linklist_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_linklist.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_linklist.cpp}}
+\hypertarget{xb__test__linklist_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+linklist.cpp File Reference}
+\label{xb__test__linklist_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_linklist.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_linklist.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__lock2_8cpp.tex b/docs/doxygen/latex/xb__test__lock2_8cpp.tex
index c356482..240d8a3 100644
--- a/docs/doxygen/latex/xb__test__lock2_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__lock2_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__lock2_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+lock2.cpp File Reference}
-\label{xb__test__lock2_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_lock2.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_lock2.cpp}}
+\hypertarget{xb__test__lock2_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+lock2.cpp File Reference}
+\label{xb__test__lock2_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_lock2.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_lock2.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__lock_8cpp.tex b/docs/doxygen/latex/xb__test__lock_8cpp.tex
index 92829df..4623d0c 100644
--- a/docs/doxygen/latex/xb__test__lock_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__lock_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__lock_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+lock.cpp File Reference}
-\label{xb__test__lock_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_lock.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_lock.cpp}}
+\hypertarget{xb__test__lock_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+lock.cpp File Reference}
+\label{xb__test__lock_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_lock.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_lock.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__log_8cpp.tex b/docs/doxygen/latex/xb__test__log_8cpp.tex
index 1587195..0178366 100644
--- a/docs/doxygen/latex/xb__test__log_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__log_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__log_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+log.cpp File Reference}
-\label{xb__test__log_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_log.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_log.cpp}}
+\hypertarget{xb__test__log_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+log.cpp File Reference}
+\label{xb__test__log_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_log.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_log.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__mdx_8cpp.tex b/docs/doxygen/latex/xb__test__mdx_8cpp.tex
index 3715bff..0b9950d 100644
--- a/docs/doxygen/latex/xb__test__mdx_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__mdx_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__mdx_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+mdx.cpp File Reference}
-\label{xb__test__mdx_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_mdx.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_mdx.cpp}}
+\hypertarget{xb__test__mdx_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+mdx.cpp File Reference}
+\label{xb__test__mdx_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_mdx.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_mdx.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__ndx_8cpp.tex b/docs/doxygen/latex/xb__test__ndx_8cpp.tex
index ea77fa3..29b8240 100644
--- a/docs/doxygen/latex/xb__test__ndx_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__ndx_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__ndx_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+ndx.cpp File Reference}
-\label{xb__test__ndx_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_ndx.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_ndx.cpp}}
+\hypertarget{xb__test__ndx_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+ndx.cpp File Reference}
+\label{xb__test__ndx_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_ndx.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_ndx.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__sql_8cpp.tex b/docs/doxygen/latex/xb__test__sql_8cpp.tex
index 982eee2..d85011b 100644
--- a/docs/doxygen/latex/xb__test__sql_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__sql_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__sql_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+sql.cpp File Reference}
-\label{xb__test__sql_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_sql.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_sql.cpp}}
+\hypertarget{xb__test__sql_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+sql.cpp File Reference}
+\label{xb__test__sql_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_sql.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_sql.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__string_8cpp.tex b/docs/doxygen/latex/xb__test__string_8cpp.tex
index 425e05b..8a869d4 100644
--- a/docs/doxygen/latex/xb__test__string_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__string_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__string_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+string.cpp File Reference}
-\label{xb__test__string_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_string.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_string.cpp}}
+\hypertarget{xb__test__string_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+string.cpp File Reference}
+\label{xb__test__string_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_string.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_string.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Macros}
diff --git a/docs/doxygen/latex/xb__test__tblmgr_8cpp.tex b/docs/doxygen/latex/xb__test__tblmgr_8cpp.tex
index b1bf3b6..f31b5b3 100644
--- a/docs/doxygen/latex/xb__test__tblmgr_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__tblmgr_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__tblmgr_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+tblmgr.cpp File Reference}
-\label{xb__test__tblmgr_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_tblmgr.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_tblmgr.cpp}}
+\hypertarget{xb__test__tblmgr_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+tblmgr.cpp File Reference}
+\label{xb__test__tblmgr_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_tblmgr.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_tblmgr.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__uda_8cpp.tex b/docs/doxygen/latex/xb__test__uda_8cpp.tex
index 734c593..3f6753d 100644
--- a/docs/doxygen/latex/xb__test__uda_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__uda_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__uda_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+uda.cpp File Reference}
-\label{xb__test__uda_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_uda.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_uda.cpp}}
+\hypertarget{xb__test__uda_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+uda.cpp File Reference}
+\label{xb__test__uda_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_uda.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_uda.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__test__xbase_8cpp.tex b/docs/doxygen/latex/xb__test__xbase_8cpp.tex
index 82b8868..e43218f 100644
--- a/docs/doxygen/latex/xb__test__xbase_8cpp.tex
+++ b/docs/doxygen/latex/xb__test__xbase_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__test__xbase_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\+\_\+test\+\_\+xbase.cpp File Reference}
-\label{xb__test__xbase_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_xbase.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/tests/xb\_test\_xbase.cpp}}
+\hypertarget{xb__test__xbase_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\+\_\+test\+\_\+xbase.cpp File Reference}
+\label{xb__test__xbase_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_xbase.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/tests/xb\_test\_xbase.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tstfuncs.\+cpp\char`\"{}}\newline
\doxysubsection*{Functions}
diff --git a/docs/doxygen/latex/xb__undelall_8cpp.tex b/docs/doxygen/latex/xb__undelall_8cpp.tex
index 755564d..93d5bf4 100644
--- a/docs/doxygen/latex/xb__undelall_8cpp.tex
+++ b/docs/doxygen/latex/xb__undelall_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__undelall_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+undelall.cpp File Reference}
-\label{xb__undelall_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_undelall.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_undelall.cpp}}
+\hypertarget{xb__undelall_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+undelall.cpp File Reference}
+\label{xb__undelall_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_undelall.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_undelall.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xb__zap_8cpp.tex b/docs/doxygen/latex/xb__zap_8cpp.tex
index 38b6e9e..f8b3371 100644
--- a/docs/doxygen/latex/xb__zap_8cpp.tex
+++ b/docs/doxygen/latex/xb__zap_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xb__zap_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\+\_\+zap.cpp File Reference}
-\label{xb__zap_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_zap.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/utils/xb\_zap.cpp}}
+\hypertarget{xb__zap_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\+\_\+zap.cpp File Reference}
+\label{xb__zap_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_zap.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/utils/xb\_zap.cpp}}
{\ttfamily \#include $<$xbase.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xbalttbl_8cpp.tex b/docs/doxygen/latex/xbalttbl_8cpp.tex
new file mode 100644
index 0000000..c470daa
--- /dev/null
+++ b/docs/doxygen/latex/xbalttbl_8cpp.tex
@@ -0,0 +1,3 @@
+\hypertarget{xbalttbl_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/sql/xbalttbl.cpp File Reference}
+\label{xbalttbl_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbalttbl.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbalttbl.cpp}}
+{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbase_8h.tex b/docs/doxygen/latex/xbase_8h.tex
index e25b125..ab9b258 100644
--- a/docs/doxygen/latex/xbase_8h.tex
+++ b/docs/doxygen/latex/xbase_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbase_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbase.h File Reference}
-\label{xbase_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbase.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbase.h}}
+\hypertarget{xbase_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbase.h File Reference}
+\label{xbase_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbase.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbase.h}}
{\ttfamily \#include $<$xbconfig.\+h$>$}\newline
{\ttfamily \#include $<$stdio.\+h$>$}\newline
{\ttfamily \#include $<$errno.\+h$>$}\newline
diff --git a/docs/doxygen/latex/xbase_8h_source.tex b/docs/doxygen/latex/xbase_8h_source.tex
index d9cbba6..e8a52ec 100644
--- a/docs/doxygen/latex/xbase_8h_source.tex
+++ b/docs/doxygen/latex/xbase_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbase_8h_source}{}\doxysection{xbase.\+h}
-\label{xbase_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbase.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbase.h}}
+\label{xbase_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbase.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbase.h}}
\mbox{\hyperlink{xbase_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbase.h}}
@@ -62,38 +62,40 @@
\DoxyCodeLine{58 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{59 }
\DoxyCodeLine{60 \textcolor{preprocessor}{\#ifdef HAVE\_VARARGS\_H}}
-\DoxyCodeLine{61 \textcolor{preprocessor}{\#include }}
-\DoxyCodeLine{62 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{63 }
-\DoxyCodeLine{64 \textcolor{preprocessor}{\#ifdef HAVE\_WINDOWS\_H}}
-\DoxyCodeLine{65 \textcolor{preprocessor}{\#include }}
-\DoxyCodeLine{66 \textcolor{preprocessor}{\#include }}
-\DoxyCodeLine{67 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{68 }
-\DoxyCodeLine{69 \textcolor{preprocessor}{\#include }}
+\DoxyCodeLine{61 \textcolor{preprocessor}{\#ifndef HAVE\_STDARG\_H}}
+\DoxyCodeLine{62 \textcolor{preprocessor}{\#include }}
+\DoxyCodeLine{63 \textcolor{preprocessor}{\#endif}}
+\DoxyCodeLine{64 \textcolor{preprocessor}{\#endif}}
+\DoxyCodeLine{65 }
+\DoxyCodeLine{66 \textcolor{preprocessor}{\#ifdef HAVE\_WINDOWS\_H}}
+\DoxyCodeLine{67 \textcolor{preprocessor}{\#include }}
+\DoxyCodeLine{68 \textcolor{preprocessor}{\#include }}
+\DoxyCodeLine{69 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{70 }
-\DoxyCodeLine{71 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbretcod_8h}{xbretcod.h}}>}}
-\DoxyCodeLine{72 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbtypes_8h}{xbtypes.h}}>}}
-\DoxyCodeLine{73 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbstring_8h}{xbstring.h}}>}}
-\DoxyCodeLine{74 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbssv_8h}{xbssv.h}}>}}
-\DoxyCodeLine{75 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbdate_8h}{xbdate.h}}>}}
-\DoxyCodeLine{76 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbtblmgr_8h}{xbtblmgr.h}}>}}
-\DoxyCodeLine{77 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbxbase_8h}{xbxbase.h}}>}}
-\DoxyCodeLine{78 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xblnknod_8h}{xblnknod.h}}>}}
-\DoxyCodeLine{79 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xblnklst_8h}{xblnklst.h}}>}}
-\DoxyCodeLine{80 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xblnklstord_8h}{xblnklstord.h}}>}}
-\DoxyCodeLine{81 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbfile_8h}{xbfile.h}}>}}
-\DoxyCodeLine{82 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xblog_8h}{xblog.h}}>}}
-\DoxyCodeLine{83 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbmemo_8h}{xbmemo.h}}>}}
-\DoxyCodeLine{84 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbbcd_8h}{xbbcd.h}}>}}
-\DoxyCodeLine{85 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbuda_8h}{xbuda.h}}>}}
-\DoxyCodeLine{86 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbexpnode_8h}{xbexpnode.h}}>}}
-\DoxyCodeLine{87 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbexp_8h}{xbexp.h}}>}}
-\DoxyCodeLine{88 }
-\DoxyCodeLine{89 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbtag_8h}{xbtag.h}}>}}
-\DoxyCodeLine{90 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbdbf_8h}{xbdbf.h}}>} \textcolor{comment}{/* dbf base class */}}
-\DoxyCodeLine{91 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbindex_8h}{xbindex.h}}>} \textcolor{comment}{/* index base class */}}
-\DoxyCodeLine{92 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbfilter_8h}{xbfilter.h}}>}}
-\DoxyCodeLine{93 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbsql_8h}{xbsql.h}}>}}
+\DoxyCodeLine{71 \textcolor{preprocessor}{\#include }}
+\DoxyCodeLine{72 }
+\DoxyCodeLine{73 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbretcod_8h}{xbretcod.h}}>}}
+\DoxyCodeLine{74 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbtypes_8h}{xbtypes.h}}>}}
+\DoxyCodeLine{75 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbstring_8h}{xbstring.h}}>}}
+\DoxyCodeLine{76 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbssv_8h}{xbssv.h}}>}}
+\DoxyCodeLine{77 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbdate_8h}{xbdate.h}}>}}
+\DoxyCodeLine{78 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbtblmgr_8h}{xbtblmgr.h}}>}}
+\DoxyCodeLine{79 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbxbase_8h}{xbxbase.h}}>}}
+\DoxyCodeLine{80 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xblnknod_8h}{xblnknod.h}}>}}
+\DoxyCodeLine{81 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xblnklst_8h}{xblnklst.h}}>}}
+\DoxyCodeLine{82 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xblnklstord_8h}{xblnklstord.h}}>}}
+\DoxyCodeLine{83 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbfile_8h}{xbfile.h}}>}}
+\DoxyCodeLine{84 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xblog_8h}{xblog.h}}>}}
+\DoxyCodeLine{85 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbmemo_8h}{xbmemo.h}}>}}
+\DoxyCodeLine{86 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbbcd_8h}{xbbcd.h}}>}}
+\DoxyCodeLine{87 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbuda_8h}{xbuda.h}}>}}
+\DoxyCodeLine{88 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbexpnode_8h}{xbexpnode.h}}>}}
+\DoxyCodeLine{89 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbexp_8h}{xbexp.h}}>}}
+\DoxyCodeLine{90 }
+\DoxyCodeLine{91 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbtag_8h}{xbtag.h}}>}}
+\DoxyCodeLine{92 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbdbf_8h}{xbdbf.h}}>} \textcolor{comment}{/* dbf base class */}}
+\DoxyCodeLine{93 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbindex_8h}{xbindex.h}}>} \textcolor{comment}{/* index base class */}}
+\DoxyCodeLine{94 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbfilter_8h}{xbfilter.h}}>}}
+\DoxyCodeLine{95 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{xbsql_8h}{xbsql.h}}>}}
\end{DoxyCode}
diff --git a/docs/doxygen/latex/xbbcd_8cpp.tex b/docs/doxygen/latex/xbbcd_8cpp.tex
index bf70abd..4da19bf 100644
--- a/docs/doxygen/latex/xbbcd_8cpp.tex
+++ b/docs/doxygen/latex/xbbcd_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbbcd_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbbcd.cpp File Reference}
-\label{xbbcd_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbbcd.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbbcd.cpp}}
+\hypertarget{xbbcd_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbbcd.cpp File Reference}
+\label{xbbcd_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbbcd.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbbcd.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbbcd_8h.tex b/docs/doxygen/latex/xbbcd_8h.tex
index 67739bd..08782f6 100644
--- a/docs/doxygen/latex/xbbcd_8h.tex
+++ b/docs/doxygen/latex/xbbcd_8h.tex
@@ -1,2 +1,2 @@
-\hypertarget{xbbcd_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbbcd.h File Reference}
-\label{xbbcd_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbbcd.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbbcd.h}}
+\hypertarget{xbbcd_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbbcd.h File Reference}
+\label{xbbcd_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbbcd.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbbcd.h}}
diff --git a/docs/doxygen/latex/xbbcd_8h_source.tex b/docs/doxygen/latex/xbbcd_8h_source.tex
index 7ff643a..060d1ee 100644
--- a/docs/doxygen/latex/xbbcd_8h_source.tex
+++ b/docs/doxygen/latex/xbbcd_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbbcd_8h_source}{}\doxysection{xbbcd.\+h}
-\label{xbbcd_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbbcd.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbbcd.h}}
+\label{xbbcd_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbbcd.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbbcd.h}}
\mbox{\hyperlink{xbbcd_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbbcd.h}}
@@ -68,32 +68,30 @@
\DoxyCodeLine{65 \textcolor{comment}{// const unsigned char * GetBcd() const;}}
\DoxyCodeLine{66 \textcolor{keywordtype}{void} StringToBcd( \textcolor{keyword}{const} xbString \&sStringIn );}
\DoxyCodeLine{67 }
-\DoxyCodeLine{68 \textcolor{comment}{// void StringToBcdOld( const xbString \&sStringIn );}}
-\DoxyCodeLine{69 }
-\DoxyCodeLine{70 xbInt16 Compare( \textcolor{keyword}{const} xbBcd \&bcdIn );}
-\DoxyCodeLine{71 xbInt16 Compare( \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} d );}
-\DoxyCodeLine{72 }
-\DoxyCodeLine{73 \textcolor{keyword}{const} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *GetData() \textcolor{keyword}{const};}
-\DoxyCodeLine{74 \textcolor{keyword}{const} \textcolor{keywordtype}{void} * GetBcd() \textcolor{keyword}{const};}
-\DoxyCodeLine{75 }
-\DoxyCodeLine{76 }
-\DoxyCodeLine{77 \textcolor{keyword}{private}:}
-\DoxyCodeLine{78 \textcolor{keywordtype}{void} ctor();}
-\DoxyCodeLine{79 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} GetEncDigitsNoSign() \textcolor{keyword}{const};}
-\DoxyCodeLine{80 \textcolor{keywordtype}{unsigned} GetSign() \textcolor{keyword}{const};}
-\DoxyCodeLine{81 \textcolor{keywordtype}{unsigned} GetSigDigits() \textcolor{keyword}{const};}
-\DoxyCodeLine{82 \textcolor{keywordtype}{unsigned} GetActualSigDigits() \textcolor{keyword}{const};}
-\DoxyCodeLine{83 }
-\DoxyCodeLine{84 }
-\DoxyCodeLine{85 \textcolor{comment}{// xbBcdStruc bcdOld;}}
-\DoxyCodeLine{86 xbBcdStruct bcd;}
-\DoxyCodeLine{87 \};}
+\DoxyCodeLine{68 xbInt16 Compare( \textcolor{keyword}{const} xbBcd \&bcdIn );}
+\DoxyCodeLine{69 xbInt16 Compare( \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} d );}
+\DoxyCodeLine{70 }
+\DoxyCodeLine{71 \textcolor{keyword}{const} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *GetData() \textcolor{keyword}{const};}
+\DoxyCodeLine{72 \textcolor{keyword}{const} \textcolor{keywordtype}{void} * GetBcd() \textcolor{keyword}{const};}
+\DoxyCodeLine{73 }
+\DoxyCodeLine{74 }
+\DoxyCodeLine{75 \textcolor{keyword}{private}:}
+\DoxyCodeLine{76 \textcolor{keywordtype}{void} ctor();}
+\DoxyCodeLine{77 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} GetEncDigitsNoSign() \textcolor{keyword}{const};}
+\DoxyCodeLine{78 \textcolor{keywordtype}{unsigned} GetSign() \textcolor{keyword}{const};}
+\DoxyCodeLine{79 \textcolor{keywordtype}{unsigned} GetSigDigits() \textcolor{keyword}{const};}
+\DoxyCodeLine{80 \textcolor{keywordtype}{unsigned} GetActualSigDigits() \textcolor{keyword}{const};}
+\DoxyCodeLine{81 }
+\DoxyCodeLine{82 }
+\DoxyCodeLine{83 \textcolor{comment}{// xbBcdStruc bcdOld;}}
+\DoxyCodeLine{84 xbBcdStruct bcd;}
+\DoxyCodeLine{85 \};}
+\DoxyCodeLine{86 }
+\DoxyCodeLine{87 \} \textcolor{comment}{/* namespace xb */}}
\DoxyCodeLine{88 }
-\DoxyCodeLine{89 \} \textcolor{comment}{/* namespace xb */}}
-\DoxyCodeLine{90 }
+\DoxyCodeLine{89 }
\DoxyCodeLine{91 }
-\DoxyCodeLine{93 }
-\DoxyCodeLine{94 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_INDEX\_SUPPORT */}\textcolor{preprocessor}{}}
-\DoxyCodeLine{95 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_BCD\_H\_\_ */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{92 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_INDEX\_SUPPORT */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{93 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_BCD\_H\_\_ */}\textcolor{preprocessor}{}}
\end{DoxyCode}
diff --git a/docs/doxygen/latex/xbcrix_8cpp.tex b/docs/doxygen/latex/xbcrix_8cpp.tex
index a9416a1..408ab0f 100644
--- a/docs/doxygen/latex/xbcrix_8cpp.tex
+++ b/docs/doxygen/latex/xbcrix_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbcrix_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/sql/xbcrix.cpp File Reference}
-\label{xbcrix_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbcrix.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbcrix.cpp}}
+\hypertarget{xbcrix_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/sql/xbcrix.cpp File Reference}
+\label{xbcrix_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbcrix.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbcrix.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbcrtbl_8cpp.tex b/docs/doxygen/latex/xbcrtbl_8cpp.tex
index e2cfea6..329a219 100644
--- a/docs/doxygen/latex/xbcrtbl_8cpp.tex
+++ b/docs/doxygen/latex/xbcrtbl_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbcrtbl_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/sql/xbcrtbl.cpp File Reference}
-\label{xbcrtbl_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbcrtbl.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbcrtbl.cpp}}
+\hypertarget{xbcrtbl_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/sql/xbcrtbl.cpp File Reference}
+\label{xbcrtbl_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbcrtbl.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbcrtbl.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbdate_8cpp.tex b/docs/doxygen/latex/xbdate_8cpp.tex
index 7076949..ac14170 100644
--- a/docs/doxygen/latex/xbdate_8cpp.tex
+++ b/docs/doxygen/latex/xbdate_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbdate_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbdate.cpp File Reference}
-\label{xbdate_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbdate.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbdate.cpp}}
+\hypertarget{xbdate_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbdate.cpp File Reference}
+\label{xbdate_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbdate.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbdate.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
{\ttfamily \#include $<$time.\+h$>$}\newline
\doxysubsection*{Namespaces}
diff --git a/docs/doxygen/latex/xbdate_8h.tex b/docs/doxygen/latex/xbdate_8h.tex
index 577344e..8470948 100644
--- a/docs/doxygen/latex/xbdate_8h.tex
+++ b/docs/doxygen/latex/xbdate_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbdate_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbdate.h File Reference}
-\label{xbdate_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbdate.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbdate.h}}
+\hypertarget{xbdate_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbdate.h File Reference}
+\label{xbdate_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdate.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdate.h}}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/xbdate_8h_source.tex b/docs/doxygen/latex/xbdate_8h_source.tex
index 09c5690..e3c5e25 100644
--- a/docs/doxygen/latex/xbdate_8h_source.tex
+++ b/docs/doxygen/latex/xbdate_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbdate_8h_source}{}\doxysection{xbdate.\+h}
-\label{xbdate_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbdate.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbdate.h}}
+\label{xbdate_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdate.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdate.h}}
\mbox{\hyperlink{xbdate_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbdate.h}}
diff --git a/docs/doxygen/latex/xbdbf3_8cpp.tex b/docs/doxygen/latex/xbdbf3_8cpp.tex
index 4132f6b..051e18d 100644
--- a/docs/doxygen/latex/xbdbf3_8cpp.tex
+++ b/docs/doxygen/latex/xbdbf3_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbdbf3_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbdbf3.cpp File Reference}
-\label{xbdbf3_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbdbf3.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbdbf3.cpp}}
+\hypertarget{xbdbf3_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbdbf3.cpp File Reference}
+\label{xbdbf3_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbdbf3.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbdbf3.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbdbf4_8cpp.tex b/docs/doxygen/latex/xbdbf4_8cpp.tex
index ef9dc8b..e7d2997 100644
--- a/docs/doxygen/latex/xbdbf4_8cpp.tex
+++ b/docs/doxygen/latex/xbdbf4_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbdbf4_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbdbf4.cpp File Reference}
-\label{xbdbf4_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbdbf4.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbdbf4.cpp}}
+\hypertarget{xbdbf4_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbdbf4.cpp File Reference}
+\label{xbdbf4_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbdbf4.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbdbf4.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbdbf_8cpp.tex b/docs/doxygen/latex/xbdbf_8cpp.tex
index 398a44d..71c3a1d 100644
--- a/docs/doxygen/latex/xbdbf_8cpp.tex
+++ b/docs/doxygen/latex/xbdbf_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbdbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbdbf.cpp File Reference}
-\label{xbdbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbdbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbdbf.cpp}}
+\hypertarget{xbdbf_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbdbf.cpp File Reference}
+\label{xbdbf_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbdbf.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbdbf.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xbdbf_8h.tex b/docs/doxygen/latex/xbdbf_8h.tex
index 0574d62..40e74f6 100644
--- a/docs/doxygen/latex/xbdbf_8h.tex
+++ b/docs/doxygen/latex/xbdbf_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbdbf_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbdbf.h File Reference}
-\label{xbdbf_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbdbf.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbdbf.h}}
+\hypertarget{xbdbf_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbdbf.h File Reference}
+\label{xbdbf_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdbf.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdbf.h}}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/xbdbf_8h_source.tex b/docs/doxygen/latex/xbdbf_8h_source.tex
index b83d689..620bbad 100644
--- a/docs/doxygen/latex/xbdbf_8h_source.tex
+++ b/docs/doxygen/latex/xbdbf_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbdbf_8h_source}{}\doxysection{xbdbf.\+h}
-\label{xbdbf_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbdbf.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbdbf.h}}
+\label{xbdbf_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdbf.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdbf.h}}
\mbox{\hyperlink{xbdbf_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbdbf.h}}
@@ -126,8 +126,8 @@
\DoxyCodeLine{164 \textcolor{keyword}{virtual} xbInt16 DeleteAll ( xbInt16 iOption );}
\DoxyCodeLine{165 \textcolor{keyword}{virtual} xbInt16 DeleteAllRecords ();}
\DoxyCodeLine{166 \textcolor{keyword}{virtual} xbInt16 DeleteRecord ();}
-\DoxyCodeLine{167 \textcolor{keyword}{virtual} xbInt16 \mbox{\hyperlink{classxb_1_1xbDbf_ab1f4a515533402f872cedcd0322aabd4}{DumpHeader}} ( xbInt16 iOption ) \textcolor{keyword}{const};}
-\DoxyCodeLine{168 \textcolor{keyword}{virtual} xbInt16 \mbox{\hyperlink{classxb_1_1xbDbf_a3a6a068addffd06fc9a996639d6ca69e}{DumpRecord}} ( xbUInt32 ulRecNo, xbInt16 iOutputDest = 0, xbInt16 iOutputFmt = 0 );}
+\DoxyCodeLine{167 \textcolor{keyword}{virtual} xbInt16 DumpHeader ( xbInt16 iOption ) \textcolor{keyword}{const};}
+\DoxyCodeLine{168 \textcolor{keyword}{virtual} xbInt16 DumpRecord ( xbUInt32 ulRecNo, xbInt16 iOutputDest = 0, xbInt16 iOutputFmt = 0 );}
\DoxyCodeLine{169 \textcolor{keyword}{virtual} xbInt16 GetAutoCommit () \textcolor{keyword}{const};}
\DoxyCodeLine{170 \textcolor{keyword}{virtual} xbInt16 GetAutoCommit ( xbInt16 iOption ) \textcolor{keyword}{const};}
\DoxyCodeLine{171 \textcolor{keyword}{virtual} xbUInt32 GetCurRecNo () \textcolor{keyword}{const};}
@@ -141,351 +141,356 @@
\DoxyCodeLine{179 \textcolor{keyword}{virtual} xbInt16 GetNextRecord ();}
\DoxyCodeLine{180 \textcolor{keyword}{virtual} xbInt16 GetNextRecord ( xbInt16 iOption );}
\DoxyCodeLine{181 \textcolor{keyword}{virtual} xbInt16 GetNextRecord ( xbInt16 iOption, xbUInt32 ulStartRec );}
-\DoxyCodeLine{182 \textcolor{keyword}{virtual} xbInt32 \mbox{\hyperlink{classxb_1_1xbDbf_a13393704a8a191d4d6555ae31d3c3e92}{GetPhysicalIxCnt}} () \textcolor{keyword}{const};}
-\DoxyCodeLine{183 \textcolor{keyword}{virtual} xbInt16 GetPrevRecord ();}
-\DoxyCodeLine{184 \textcolor{keyword}{virtual} xbInt16 GetPrevRecord ( xbInt16 iOption );}
-\DoxyCodeLine{185 \textcolor{keyword}{virtual} xbInt16 GetRecord ( xbUInt32 ulRecNo );}
-\DoxyCodeLine{186 \textcolor{keyword}{virtual} xbInt16 GetRecordCnt ( xbUInt32 \& ulRecCnt );}
-\DoxyCodeLine{187 \textcolor{keyword}{virtual} \textcolor{keywordtype}{char} * GetRecordBuf ( xbInt16 iOpt = 0 ) \textcolor{keyword}{const};}
-\DoxyCodeLine{188 \textcolor{keyword}{virtual} xbUInt16 GetRecordLen () \textcolor{keyword}{const};}
-\DoxyCodeLine{189 \textcolor{keyword}{virtual} \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&GetTblAlias() \textcolor{keyword}{const};}
-\DoxyCodeLine{190 \textcolor{keyword}{virtual} xbInt16 \mbox{\hyperlink{classxb_1_1xbDbf_a49212a9eb17f7fa9f303e08d5fc50fc6}{GetVersion}} () \textcolor{keyword}{const} = 0; }
-\DoxyCodeLine{191 \textcolor{keyword}{virtual} \mbox{\hyperlink{classxb_1_1xbXBase}{xbXBase}} *GetXbasePtr () \textcolor{keyword}{const}; \textcolor{comment}{// return xbase pointer}}
-\DoxyCodeLine{192 }
-\DoxyCodeLine{193 \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \mbox{\hyperlink{classxb_1_1xbDbf_ac856fc1b110b46aefa1b2f5c0f530aa2}{MemoFieldsExist}} () \textcolor{keyword}{const};}
+\DoxyCodeLine{182 \textcolor{keyword}{virtual} xbInt16 GetPrevRecord ();}
+\DoxyCodeLine{183 \textcolor{keyword}{virtual} xbInt16 GetPrevRecord ( xbInt16 iOption );}
+\DoxyCodeLine{184 \textcolor{keyword}{virtual} xbInt16 GetRecord ( xbUInt32 ulRecNo );}
+\DoxyCodeLine{185 }
+\DoxyCodeLine{186 \textcolor{keyword}{virtual} xbUInt32 GetRecordCount ();}
+\DoxyCodeLine{187 \textcolor{keyword}{virtual} xbInt16 GetRecordCnt ( xbUInt32 \& ulRecCnt );}
+\DoxyCodeLine{188 }
+\DoxyCodeLine{189 \textcolor{keyword}{virtual} \textcolor{keywordtype}{char} * GetRecordBuf ( xbInt16 iOpt = 0 ) \textcolor{keyword}{const};}
+\DoxyCodeLine{190 \textcolor{keyword}{virtual} xbUInt16 GetRecordLen () \textcolor{keyword}{const};}
+\DoxyCodeLine{191 \textcolor{keyword}{virtual} \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&GetTblAlias() \textcolor{keyword}{const};}
+\DoxyCodeLine{192 \textcolor{keyword}{virtual} xbInt16 \mbox{\hyperlink{classxb_1_1xbDbf_a49212a9eb17f7fa9f303e08d5fc50fc6}{GetVersion}} () \textcolor{keyword}{const} = 0; }
+\DoxyCodeLine{193 \textcolor{keyword}{virtual} \mbox{\hyperlink{classxb_1_1xbXBase}{xbXBase}} *GetXbasePtr () \textcolor{keyword}{const}; \textcolor{comment}{// return xbase pointer}}
\DoxyCodeLine{194 }
-\DoxyCodeLine{195 \textcolor{keyword}{virtual} xbInt16 \mbox{\hyperlink{classxb_1_1xbDbf_a97366c7362e409d7f09973a6aef8dad0}{Open}} ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName );}
-\DoxyCodeLine{196 \textcolor{keyword}{virtual} xbInt16 \mbox{\hyperlink{classxb_1_1xbDbf_ac658818bf9b8f8ff7467d8d80495b324}{Open}} ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias );}
-\DoxyCodeLine{197 \textcolor{keyword}{virtual} xbInt16 \mbox{\hyperlink{classxb_1_1xbDbf_a4d018cbf44d8d8b2145c9acab02c8adf}{Open}} ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias, xbInt16 iOpenMode, xbInt16 iShareMode ) = 0;}
-\DoxyCodeLine{198 \textcolor{keyword}{virtual} xbInt16 Pack ();}
-\DoxyCodeLine{199 \textcolor{keyword}{virtual} xbInt16 Pack ( xbUInt32 \&ulDeletedRecCnt );}
-\DoxyCodeLine{200 }
-\DoxyCodeLine{201 }
-\DoxyCodeLine{202 \textcolor{keyword}{virtual} xbInt16 PutRecord (); \textcolor{comment}{// Put record to current location}}
-\DoxyCodeLine{203 \textcolor{keyword}{virtual} xbInt16 PutRecord ( xbUInt32 ulRecNo );}
-\DoxyCodeLine{204 \textcolor{keyword}{virtual} xbInt16 ReadHeader ( xbInt16 iFilePositionOption, xbInt16 iReadOption );}
-\DoxyCodeLine{205 \textcolor{keyword}{virtual} xbInt16 RecordDeleted ( xbInt16 iOpt = 0 ) \textcolor{keyword}{const};}
-\DoxyCodeLine{206 }
-\DoxyCodeLine{207 \textcolor{keyword}{virtual} xbInt16 SetAutoCommit ( xbInt16 iAutoCommit );}
-\DoxyCodeLine{208 }
-\DoxyCodeLine{209 \textcolor{keyword}{virtual} xbInt16 UndeleteAllRecords();}
-\DoxyCodeLine{210 \textcolor{keyword}{virtual} xbInt16 UndeleteRecord ();}
-\DoxyCodeLine{211 \textcolor{keyword}{virtual} xbInt16 Zap ();}
+\DoxyCodeLine{195 }
+\DoxyCodeLine{196 \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} MemoFieldsExist () \textcolor{keyword}{const};}
+\DoxyCodeLine{197 }
+\DoxyCodeLine{198 \textcolor{keyword}{virtual} xbInt16 Open ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName );}
+\DoxyCodeLine{199 \textcolor{keyword}{virtual} xbInt16 Open ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias );}
+\DoxyCodeLine{200 \textcolor{keyword}{virtual} xbInt16 \mbox{\hyperlink{classxb_1_1xbDbf_a4d018cbf44d8d8b2145c9acab02c8adf}{Open}} ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias, xbInt16 iOpenMode, xbInt16 iShareMode ) = 0;}
+\DoxyCodeLine{201 \textcolor{keyword}{virtual} xbInt16 Pack ();}
+\DoxyCodeLine{202 \textcolor{keyword}{virtual} xbInt16 Pack ( xbUInt32 \&ulDeletedRecCnt );}
+\DoxyCodeLine{203 }
+\DoxyCodeLine{204 }
+\DoxyCodeLine{205 \textcolor{keyword}{virtual} xbInt16 PutRecord (); \textcolor{comment}{// Put record to current location}}
+\DoxyCodeLine{206 \textcolor{keyword}{virtual} xbInt16 PutRecord ( xbUInt32 ulRecNo );}
+\DoxyCodeLine{207 \textcolor{keyword}{virtual} xbInt16 ReadHeader ( xbInt16 iFilePositionOption, xbInt16 iReadOption );}
+\DoxyCodeLine{208 \textcolor{keyword}{virtual} xbInt16 RecordDeleted ( xbInt16 iOpt = 0 ) \textcolor{keyword}{const};}
+\DoxyCodeLine{209 \textcolor{keyword}{virtual} xbInt16 \mbox{\hyperlink{classxb_1_1xbDbf_aeeeb2eb5fabcd0f91d457df07b0e0708}{Rename}} ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sNewName ) = 0;}
+\DoxyCodeLine{210 }
+\DoxyCodeLine{211 \textcolor{keyword}{virtual} xbInt16 SetAutoCommit ( xbInt16 iAutoCommit );}
\DoxyCodeLine{212 }
-\DoxyCodeLine{213 }
-\DoxyCodeLine{214 \textcolor{comment}{/* field methods */}}
-\DoxyCodeLine{215 \textcolor{comment}{//virtual xbInt16 GetRawField( xbInt16 iFieldNo, char *Buf, xbUInt32 BufSize, xbInt16 iRecBufSw ) const;}}
-\DoxyCodeLine{216 \textcolor{keyword}{virtual} xbInt16 GetField(xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldValue, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
-\DoxyCodeLine{217 \textcolor{keyword}{virtual} xbInt16 GetField(xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldValue) \textcolor{keyword}{const};}
-\DoxyCodeLine{218 \textcolor{keyword}{virtual} xbInt16 GetField(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldValue) \textcolor{keyword}{const};}
-\DoxyCodeLine{219 \textcolor{keyword}{virtual} xbInt16 GetFieldDecimal( xbInt16 iFieldNo, xbInt16 \&iFieldDecimal ) \textcolor{keyword}{const};}
-\DoxyCodeLine{220 \textcolor{keyword}{virtual} xbInt16 GetFieldDecimal( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt16 \&iFieldDecimal ) \textcolor{keyword}{const};}
-\DoxyCodeLine{221 \textcolor{keyword}{virtual} xbInt16 GetFieldLen( xbInt16 iFieldNo, xbInt16 \&iFieldLen ) \textcolor{keyword}{const};}
-\DoxyCodeLine{222 \textcolor{keyword}{virtual} xbInt16 GetFieldLen( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt16 \&iFieldLen ) \textcolor{keyword}{const};}
-\DoxyCodeLine{223 \textcolor{keyword}{virtual} xbInt16 GetFieldName( xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName ) \textcolor{keyword}{const};}
-\DoxyCodeLine{224 }
-\DoxyCodeLine{225 \textcolor{keyword}{virtual} xbInt16 GetFieldNo( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt16 \&iFieldNo ) \textcolor{keyword}{const};}
-\DoxyCodeLine{226 \textcolor{keyword}{virtual} xbInt16 GetFieldNo( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName ) \textcolor{keyword}{const};}
-\DoxyCodeLine{227 }
-\DoxyCodeLine{228 \textcolor{keyword}{virtual} xbInt16 GetFieldType( xbInt16 iFieldNo, \textcolor{keywordtype}{char} \&cFieldType ) \textcolor{keyword}{const};}
-\DoxyCodeLine{229 \textcolor{keyword}{virtual} xbInt16 GetFieldType( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keywordtype}{char} \&cFieldType ) \textcolor{keyword}{const};}
-\DoxyCodeLine{230 \textcolor{keyword}{virtual} xbInt16 PutField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
-\DoxyCodeLine{231 \textcolor{keyword}{virtual} xbInt16 PutField( xbInt16 iFieldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
-\DoxyCodeLine{232 }
-\DoxyCodeLine{233 \textcolor{keyword}{virtual} xbInt16 PutLogicalField( xbInt16 iFieldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
-\DoxyCodeLine{234 \textcolor{keyword}{virtual} xbInt16 PutLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
-\DoxyCodeLine{235 \textcolor{keyword}{virtual} xbInt16 GetLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData ) \textcolor{keyword}{const};}
-\DoxyCodeLine{236 \textcolor{keyword}{virtual} xbInt16 GetLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData) \textcolor{keyword}{const};}
-\DoxyCodeLine{237 }
-\DoxyCodeLine{238 \textcolor{keyword}{virtual} xbInt16 PutLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bFieldData );}
-\DoxyCodeLine{239 \textcolor{keyword}{virtual} xbInt16 PutLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bFieldData );}
-\DoxyCodeLine{240 \textcolor{keyword}{virtual} xbInt16 GetLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFieldData ) \textcolor{keyword}{const};}
-\DoxyCodeLine{241 \textcolor{keyword}{virtual} xbInt16 GetLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFieldData, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
-\DoxyCodeLine{242 \textcolor{keyword}{virtual} xbInt16 GetLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFieldData) \textcolor{keyword}{const};}
-\DoxyCodeLine{243 }
-\DoxyCodeLine{244 \textcolor{keyword}{virtual} xbInt16 GetLongField( xbInt16 iFieldNo, xbInt32 \&lFieldValue ) \textcolor{keyword}{const};}
-\DoxyCodeLine{245 \textcolor{keyword}{virtual} xbInt16 GetLongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt32 \&lFieldValue ) \textcolor{keyword}{const};}
-\DoxyCodeLine{246 \textcolor{keyword}{virtual} xbInt16 PutLongField( xbInt16 iFieldNo, xbInt32 lFieldValue );}
-\DoxyCodeLine{247 \textcolor{keyword}{virtual} xbInt16 PutLongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldNo, xbInt32 lFieldValue );}
-\DoxyCodeLine{248 }
-\DoxyCodeLine{249 \textcolor{keyword}{virtual} xbInt16 GetULongField( xbInt16 iFieldNo, xbUInt32 \&lFieldValue ) \textcolor{keyword}{const};}
-\DoxyCodeLine{250 \textcolor{keyword}{virtual} xbInt16 GetULongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbUInt32 \&lFieldValue ) \textcolor{keyword}{const};}
-\DoxyCodeLine{251 \textcolor{keyword}{virtual} xbInt16 PutULongField( xbInt16 iFieldNo, xbUInt32 lFieldValue );}
-\DoxyCodeLine{252 \textcolor{keyword}{virtual} xbInt16 PutULongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldNo, xbUInt32 lFieldValue );}
-\DoxyCodeLine{253 }
-\DoxyCodeLine{254 \textcolor{keyword}{virtual} xbInt16 GetDoubleField( xbInt16 FieldNo, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dFieldValue ) \textcolor{keyword}{const};}
-\DoxyCodeLine{255 \textcolor{keyword}{virtual} xbInt16 GetDoubleField( xbInt16 FieldNo, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dFieldValue, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
-\DoxyCodeLine{256 \textcolor{keyword}{virtual} xbInt16 GetDoubleField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dFieldValue ) \textcolor{keyword}{const};}
-\DoxyCodeLine{257 \textcolor{keyword}{virtual} xbInt16 PutDoubleField( xbInt16 FieldNo, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} dFieldValue );}
-\DoxyCodeLine{258 \textcolor{keyword}{virtual} xbInt16 PutDoubleField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&FieldName, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} dFieldValue );}
-\DoxyCodeLine{259 }
-\DoxyCodeLine{260 \textcolor{keyword}{virtual} xbInt16 GetFloatField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} \&fFieldValue ) \textcolor{keyword}{const};}
-\DoxyCodeLine{261 \textcolor{keyword}{virtual} xbInt16 GetFloatField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} \&fFieldValue ) \textcolor{keyword}{const};}
-\DoxyCodeLine{262 \textcolor{keyword}{virtual} xbInt16 PutFloatField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} fFieldValue );}
-\DoxyCodeLine{263 \textcolor{keyword}{virtual} xbInt16 PutFloatField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} fFieldValue );}
-\DoxyCodeLine{264 }
-\DoxyCodeLine{265 \textcolor{keyword}{virtual} xbInt16 GetDateField( xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt ) \textcolor{keyword}{const};}
-\DoxyCodeLine{266 \textcolor{keyword}{virtual} xbInt16 GetDateField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt ) \textcolor{keyword}{const};}
-\DoxyCodeLine{267 \textcolor{keyword}{virtual} xbInt16 PutDateField( xbInt16 iFieldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt );}
-\DoxyCodeLine{268 \textcolor{keyword}{virtual} xbInt16 PutDateField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt );}
-\DoxyCodeLine{269 }
-\DoxyCodeLine{270 }
-\DoxyCodeLine{271 }
-\DoxyCodeLine{272 \textcolor{preprocessor}{ \#ifdef XB\_MEMO\_SUPPORT}}
-\DoxyCodeLine{273 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldCnt () \textcolor{keyword}{const};}
-\DoxyCodeLine{274 \textcolor{keyword}{virtual} xbMemo *GetMemoPtr ();}
-\DoxyCodeLine{275 \textcolor{keyword}{virtual} xbUInt32 GetCreateMemoBlockSize() \textcolor{keyword}{const};}
-\DoxyCodeLine{276 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( xbInt16 iFldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
-\DoxyCodeLine{277 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \& sFldName, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
-\DoxyCodeLine{278 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen ( xbInt16 iFldNo, xbUInt32 \&ullMemoFieldLen );}
-\DoxyCodeLine{279 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \& sFldName, xbUInt32 \&ulMemoFieldLen );}
-\DoxyCodeLine{280 \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} MemoFieldExists ( xbInt16 iFieldNo ) \textcolor{keyword}{const};}
-\DoxyCodeLine{281 \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} MemoFieldExists ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName ) \textcolor{keyword}{const};}
-\DoxyCodeLine{282 \textcolor{keyword}{virtual} xbInt16 SetCreateMemoBlockSize( xbUInt32 ulBlockSize ) = 0;}
-\DoxyCodeLine{283 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField ( xbInt16 iFldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
-\DoxyCodeLine{284 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \& sFldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
-\DoxyCodeLine{285 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_MEMO\_SUPPORT}}
-\DoxyCodeLine{286 }
-\DoxyCodeLine{287 }
-\DoxyCodeLine{288 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
-\DoxyCodeLine{289 \textcolor{keyword}{virtual} xbInt16 LockTable ( xbInt16 iLockFunction );}
-\DoxyCodeLine{290 \textcolor{keyword}{virtual} xbInt16 LockRecord ( xbInt16 iLockFunction, xbUInt32 ulRecNo );}
-\DoxyCodeLine{291 \textcolor{keyword}{virtual} xbInt16 LockAppend ( xbInt16 iLockFunction );}
-\DoxyCodeLine{292 \textcolor{keyword}{virtual} xbInt16 LockHeader ( xbInt16 iLockFunction );}
-\DoxyCodeLine{293 }
-\DoxyCodeLine{294 \textcolor{preprocessor}{ \#ifdef XB\_MEMO\_SUPPORT}}
-\DoxyCodeLine{295 \textcolor{keyword}{virtual} xbInt16 LockMemo ( xbInt16 iLockFunction );}
-\DoxyCodeLine{296 \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetMemoLocked () \textcolor{keyword}{const}; }
-\DoxyCodeLine{297 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_MEMO\_LOCK}}
-\DoxyCodeLine{298 }
-\DoxyCodeLine{299 \textcolor{preprocessor}{ \#ifdef XB\_INDEX\_SUPPORT}}
-\DoxyCodeLine{300 \textcolor{keyword}{virtual} xbInt16 LockIndices ( xbInt16 iLockFunction );}
-\DoxyCodeLine{301 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
+\DoxyCodeLine{213 \textcolor{keyword}{virtual} xbInt16 UndeleteAllRecords();}
+\DoxyCodeLine{214 \textcolor{keyword}{virtual} xbInt16 UndeleteRecord ();}
+\DoxyCodeLine{215 \textcolor{keyword}{virtual} xbInt16 Zap ();}
+\DoxyCodeLine{216 }
+\DoxyCodeLine{217 }
+\DoxyCodeLine{218 \textcolor{comment}{/* field methods */}}
+\DoxyCodeLine{219 \textcolor{comment}{//virtual xbInt16 GetRawField( xbInt16 iFieldNo, char *Buf, xbUInt32 BufSize, xbInt16 iRecBufSw ) const;}}
+\DoxyCodeLine{220 \textcolor{keyword}{virtual} xbInt16 GetField(xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldValue, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
+\DoxyCodeLine{221 \textcolor{keyword}{virtual} xbInt16 GetField(xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldValue) \textcolor{keyword}{const};}
+\DoxyCodeLine{222 \textcolor{keyword}{virtual} xbInt16 GetField(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldValue) \textcolor{keyword}{const};}
+\DoxyCodeLine{223 \textcolor{keyword}{virtual} xbInt16 GetFieldDecimal( xbInt16 iFieldNo, xbInt16 \&iFieldDecimal ) \textcolor{keyword}{const};}
+\DoxyCodeLine{224 \textcolor{keyword}{virtual} xbInt16 GetFieldDecimal( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt16 \&iFieldDecimal ) \textcolor{keyword}{const};}
+\DoxyCodeLine{225 \textcolor{keyword}{virtual} xbInt16 GetFieldLen( xbInt16 iFieldNo, xbInt16 \&iFieldLen ) \textcolor{keyword}{const};}
+\DoxyCodeLine{226 \textcolor{keyword}{virtual} xbInt16 GetFieldLen( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt16 \&iFieldLen ) \textcolor{keyword}{const};}
+\DoxyCodeLine{227 \textcolor{keyword}{virtual} xbInt16 GetFieldName( xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName ) \textcolor{keyword}{const};}
+\DoxyCodeLine{228 }
+\DoxyCodeLine{229 \textcolor{keyword}{virtual} xbInt16 GetFieldNo( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt16 \&iFieldNo ) \textcolor{keyword}{const};}
+\DoxyCodeLine{230 \textcolor{keyword}{virtual} xbInt16 GetFieldNo( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName ) \textcolor{keyword}{const};}
+\DoxyCodeLine{231 }
+\DoxyCodeLine{232 \textcolor{keyword}{virtual} xbInt16 GetFieldType( xbInt16 iFieldNo, \textcolor{keywordtype}{char} \&cFieldType ) \textcolor{keyword}{const};}
+\DoxyCodeLine{233 \textcolor{keyword}{virtual} xbInt16 GetFieldType( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keywordtype}{char} \&cFieldType ) \textcolor{keyword}{const};}
+\DoxyCodeLine{234 \textcolor{keyword}{virtual} xbInt16 PutField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
+\DoxyCodeLine{235 \textcolor{keyword}{virtual} xbInt16 PutField( xbInt16 iFieldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
+\DoxyCodeLine{236 }
+\DoxyCodeLine{237 \textcolor{keyword}{virtual} xbInt16 PutLogicalField( xbInt16 iFieldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
+\DoxyCodeLine{238 \textcolor{keyword}{virtual} xbInt16 PutLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData );}
+\DoxyCodeLine{239 \textcolor{keyword}{virtual} xbInt16 GetLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData ) \textcolor{keyword}{const};}
+\DoxyCodeLine{240 \textcolor{keyword}{virtual} xbInt16 GetLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldData) \textcolor{keyword}{const};}
+\DoxyCodeLine{241 }
+\DoxyCodeLine{242 \textcolor{keyword}{virtual} xbInt16 PutLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bFieldData );}
+\DoxyCodeLine{243 \textcolor{keyword}{virtual} xbInt16 PutLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bFieldData );}
+\DoxyCodeLine{244 \textcolor{keyword}{virtual} xbInt16 GetLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFieldData ) \textcolor{keyword}{const};}
+\DoxyCodeLine{245 \textcolor{keyword}{virtual} xbInt16 GetLogicalField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFieldData, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
+\DoxyCodeLine{246 \textcolor{keyword}{virtual} xbInt16 GetLogicalField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFieldData) \textcolor{keyword}{const};}
+\DoxyCodeLine{247 }
+\DoxyCodeLine{248 \textcolor{keyword}{virtual} xbInt16 GetLongField( xbInt16 iFieldNo, xbInt32 \&lFieldValue ) \textcolor{keyword}{const};}
+\DoxyCodeLine{249 \textcolor{keyword}{virtual} xbInt16 GetLongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbInt32 \&lFieldValue ) \textcolor{keyword}{const};}
+\DoxyCodeLine{250 \textcolor{keyword}{virtual} xbInt16 PutLongField( xbInt16 iFieldNo, xbInt32 lFieldValue );}
+\DoxyCodeLine{251 \textcolor{keyword}{virtual} xbInt16 PutLongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldNo, xbInt32 lFieldValue );}
+\DoxyCodeLine{252 }
+\DoxyCodeLine{253 \textcolor{keyword}{virtual} xbInt16 GetULongField( xbInt16 iFieldNo, xbUInt32 \&lFieldValue ) \textcolor{keyword}{const};}
+\DoxyCodeLine{254 \textcolor{keyword}{virtual} xbInt16 GetULongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, xbUInt32 \&lFieldValue ) \textcolor{keyword}{const};}
+\DoxyCodeLine{255 \textcolor{keyword}{virtual} xbInt16 PutULongField( xbInt16 iFieldNo, xbUInt32 lFieldValue );}
+\DoxyCodeLine{256 \textcolor{keyword}{virtual} xbInt16 PutULongField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldNo, xbUInt32 lFieldValue );}
+\DoxyCodeLine{257 }
+\DoxyCodeLine{258 \textcolor{keyword}{virtual} xbInt16 GetDoubleField( xbInt16 FieldNo, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dFieldValue ) \textcolor{keyword}{const};}
+\DoxyCodeLine{259 \textcolor{keyword}{virtual} xbInt16 GetDoubleField( xbInt16 FieldNo, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dFieldValue, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
+\DoxyCodeLine{260 \textcolor{keyword}{virtual} xbInt16 GetDoubleField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dFieldValue ) \textcolor{keyword}{const};}
+\DoxyCodeLine{261 \textcolor{keyword}{virtual} xbInt16 PutDoubleField( xbInt16 FieldNo, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} dFieldValue );}
+\DoxyCodeLine{262 \textcolor{keyword}{virtual} xbInt16 PutDoubleField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&FieldName, \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} dFieldValue );}
+\DoxyCodeLine{263 }
+\DoxyCodeLine{264 \textcolor{keyword}{virtual} xbInt16 GetFloatField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} \&fFieldValue ) \textcolor{keyword}{const};}
+\DoxyCodeLine{265 \textcolor{keyword}{virtual} xbInt16 GetFloatField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} \&fFieldValue ) \textcolor{keyword}{const};}
+\DoxyCodeLine{266 \textcolor{keyword}{virtual} xbInt16 PutFloatField( xbInt16 iFieldNo, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} fFieldValue );}
+\DoxyCodeLine{267 \textcolor{keyword}{virtual} xbInt16 PutFloatField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{namespacexb_a83aa6a550398db55973aa9fb4257e66e}{xbFloat}} fFieldValue );}
+\DoxyCodeLine{268 }
+\DoxyCodeLine{269 \textcolor{keyword}{virtual} xbInt16 GetDateField( xbInt16 iFieldNo, \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt ) \textcolor{keyword}{const};}
+\DoxyCodeLine{270 \textcolor{keyword}{virtual} xbInt16 GetDateField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt ) \textcolor{keyword}{const};}
+\DoxyCodeLine{271 \textcolor{keyword}{virtual} xbInt16 PutDateField( xbInt16 iFieldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt );}
+\DoxyCodeLine{272 \textcolor{keyword}{virtual} xbInt16 PutDateField( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dt );}
+\DoxyCodeLine{273 }
+\DoxyCodeLine{274 }
+\DoxyCodeLine{275 }
+\DoxyCodeLine{276 \textcolor{preprocessor}{ \#ifdef XB\_MEMO\_SUPPORT}}
+\DoxyCodeLine{277 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldCnt () \textcolor{keyword}{const};}
+\DoxyCodeLine{278 \textcolor{keyword}{virtual} xbMemo *GetMemoPtr ();}
+\DoxyCodeLine{279 \textcolor{keyword}{virtual} xbUInt32 GetCreateMemoBlockSize() \textcolor{keyword}{const};}
+\DoxyCodeLine{280 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( xbInt16 iFldNo, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
+\DoxyCodeLine{281 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \& sFldName, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
+\DoxyCodeLine{282 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen ( xbInt16 iFldNo, xbUInt32 \&ullMemoFieldLen );}
+\DoxyCodeLine{283 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \& sFldName, xbUInt32 \&ulMemoFieldLen );}
+\DoxyCodeLine{284 \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} MemoFieldExists ( xbInt16 iFieldNo ) \textcolor{keyword}{const};}
+\DoxyCodeLine{285 \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} MemoFieldExists ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFieldName ) \textcolor{keyword}{const};}
+\DoxyCodeLine{286 \textcolor{keyword}{virtual} xbInt16 SetCreateMemoBlockSize( xbUInt32 ulBlockSize ) = 0;}
+\DoxyCodeLine{287 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField ( xbInt16 iFldNo, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
+\DoxyCodeLine{288 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \& sFldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sMemoData );}
+\DoxyCodeLine{289 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_MEMO\_SUPPORT}}
+\DoxyCodeLine{290 }
+\DoxyCodeLine{291 }
+\DoxyCodeLine{292 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
+\DoxyCodeLine{293 \textcolor{keyword}{virtual} xbInt16 LockTable ( xbInt16 iLockFunction );}
+\DoxyCodeLine{294 \textcolor{keyword}{virtual} xbInt16 LockRecord ( xbInt16 iLockFunction, xbUInt32 ulRecNo );}
+\DoxyCodeLine{295 \textcolor{keyword}{virtual} xbInt16 LockAppend ( xbInt16 iLockFunction );}
+\DoxyCodeLine{296 \textcolor{keyword}{virtual} xbInt16 LockHeader ( xbInt16 iLockFunction );}
+\DoxyCodeLine{297 }
+\DoxyCodeLine{298 \textcolor{preprocessor}{ \#ifdef XB\_MEMO\_SUPPORT}}
+\DoxyCodeLine{299 \textcolor{keyword}{virtual} xbInt16 LockMemo ( xbInt16 iLockFunction );}
+\DoxyCodeLine{300 \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetMemoLocked () \textcolor{keyword}{const}; }
+\DoxyCodeLine{301 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_MEMO\_LOCK}}
\DoxyCodeLine{302 }
-\DoxyCodeLine{303 xbInt16 GetAutoLock () \textcolor{keyword}{const};}
-\DoxyCodeLine{304 \textcolor{keywordtype}{void} SetAutoLock ( xbInt16 iAutoLock );}
-\DoxyCodeLine{305 xbInt16 GetLockFlavor () \textcolor{keyword}{const};}
-\DoxyCodeLine{306 \textcolor{keywordtype}{void} SetLockFlavor ( xbInt16 iLockFlavor );}
-\DoxyCodeLine{307 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetTableLocked () \textcolor{keyword}{const};}
-\DoxyCodeLine{308 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetHeaderLocked () \textcolor{keyword}{const};}
-\DoxyCodeLine{309 xbUInt32 GetAppendLocked () \textcolor{keyword}{const};}
-\DoxyCodeLine{310 xbLinkListNode * GetFirstRecLock () \textcolor{keyword}{const};}
-\DoxyCodeLine{311 }
-\DoxyCodeLine{312 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
-\DoxyCodeLine{313 \textcolor{keywordtype}{void} DumpTableLockStatus() \textcolor{keyword}{const};}
-\DoxyCodeLine{314 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_DEBUG\_SUPPORT}}
-\DoxyCodeLine{315 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_LOCKING\_SUPPORT}}
-\DoxyCodeLine{316 }
-\DoxyCodeLine{317 }
-\DoxyCodeLine{318 \textcolor{preprocessor}{ \#ifdef XB\_INDEX\_SUPPORT}}
-\DoxyCodeLine{319 \textcolor{keyword}{virtual} xbInt16 CloseIndexFile( xbIx *pIx );}
-\DoxyCodeLine{320 \textcolor{keyword}{virtual} xbInt16 CreateTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sKey, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFilter, }
-\DoxyCodeLine{321 xbInt16 iDescending, xbInt16 iUnique, xbInt16 iOverLay, xbIx **xbIxOut, \textcolor{keywordtype}{void} **vpTagOut );}
-\DoxyCodeLine{322 \textcolor{keyword}{virtual} xbInt16 DeleteTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sName );}
-\DoxyCodeLine{323 \textcolor{keyword}{virtual} xbInt16 DeleteAllIndexFiles();}
-\DoxyCodeLine{324 \textcolor{keyword}{virtual} xbInt16 Find( \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sKey );}
-\DoxyCodeLine{325 \textcolor{keyword}{virtual} xbInt16 Find( \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dtKey );}
-\DoxyCodeLine{326 \textcolor{keyword}{virtual} xbInt16 Find( \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dKey );}
-\DoxyCodeLine{327 \textcolor{keyword}{virtual} xbIx *GetCurIx() \textcolor{keyword}{const};}
-\DoxyCodeLine{328 \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} *GetCurTag() \textcolor{keyword}{const};}
-\DoxyCodeLine{329 }
-\DoxyCodeLine{330 \textcolor{keyword}{virtual} xbInt16 GetFirstKey();}
-\DoxyCodeLine{331 \textcolor{keyword}{virtual} xbInt16 GetNextKey();}
-\DoxyCodeLine{332 \textcolor{keyword}{virtual} xbInt16 GetPrevKey();}
-\DoxyCodeLine{333 \textcolor{keyword}{virtual} xbInt16 GetLastKey();}
-\DoxyCodeLine{334 }
-\DoxyCodeLine{335 \textcolor{keyword}{virtual} \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&GetCurIxType() \textcolor{keyword}{const};}
-\DoxyCodeLine{336 \textcolor{keyword}{virtual} \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&GetCurTagName() \textcolor{keyword}{const};}
-\DoxyCodeLine{337 \textcolor{keyword}{virtual} xbIxList *GetIxList() \textcolor{keyword}{const};}
-\DoxyCodeLine{338 xbLinkListNode *GetTagList () \textcolor{keyword}{const};}
-\DoxyCodeLine{339 \textcolor{keyword}{virtual} xbInt16 OpenIndex( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIndexName );}
-\DoxyCodeLine{340 \textcolor{keyword}{virtual} xbInt16 SetCurTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTagName );}
-\DoxyCodeLine{341 \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} SetCurTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, xbIx *pIx, \textcolor{keywordtype}{void} *vpTag );}
-\DoxyCodeLine{342 }
-\DoxyCodeLine{343 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
-\DoxyCodeLine{344 \textcolor{keyword}{virtual} xbInt16 CheckTagIntegrity( xbInt16 iTagOpt, xbInt16 iOutputOpt );}
-\DoxyCodeLine{345 \textcolor{keyword}{virtual} xbInt16 Reindex( xbInt16 iTagOpt );}
-\DoxyCodeLine{346 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_DEBUG\_SUPPORT}}
-\DoxyCodeLine{347 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
-\DoxyCodeLine{348 }
-\DoxyCodeLine{349 \textcolor{preprocessor}{ \#ifdef XB\_NDXINF\_SUPPORT}}
-\DoxyCodeLine{350 \textcolor{keyword}{virtual} xbInt16 AssociateIndex( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sName, xbInt16 iOption );}
-\DoxyCodeLine{351 xbLinkListNode *GetNdxInfList() \textcolor{keyword}{const};}
-\DoxyCodeLine{352 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_NDXINF\_SUPPORT}}
-\DoxyCodeLine{353 }
-\DoxyCodeLine{354 \textcolor{comment}{//\#ifdef XB\_MDX\_SUPPORT}}
-\DoxyCodeLine{355 \textcolor{comment}{//virtual xbInt16 GetCreateMdxBlockSize() const;}}
-\DoxyCodeLine{356 \textcolor{comment}{//virtual xbInt16 SetCreateMdxBlockSize( xbInt16 ulBlockSize );}}
-\DoxyCodeLine{357 \textcolor{comment}{//\#endif}}
-\DoxyCodeLine{358 }
-\DoxyCodeLine{359 }
-\DoxyCodeLine{360 }
-\DoxyCodeLine{361 \textcolor{keyword}{protected}:}
-\DoxyCodeLine{362 \textcolor{preprocessor}{ \#ifdef XB\_INDEX\_SUPPORT}}
-\DoxyCodeLine{363 \textcolor{keyword}{friend} \textcolor{keyword}{class }xbIx;}
-\DoxyCodeLine{364 \textcolor{keyword}{friend} \textcolor{keyword}{class }xbIxMdx;}
-\DoxyCodeLine{365 }
-\DoxyCodeLine{366 xbInt16 AddIndex( xbIx *ix, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFmt );}
-\DoxyCodeLine{367 \textcolor{keywordtype}{void} ClearTagList();}
-\DoxyCodeLine{368 \textcolor{keyword}{virtual} xbInt16 GetNdxInfFileName( \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sNdxIdxFileName );}
-\DoxyCodeLine{369 xbInt16 RemoveIndex( xbIx * ix );}
-\DoxyCodeLine{370 \textcolor{keywordtype}{void} UpdateSchemaIxFlag( xbInt16 iFldNo, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cVal );}
-\DoxyCodeLine{371 \textcolor{keyword}{virtual} xbInt16 UpdateTagList ();}
-\DoxyCodeLine{372 \textcolor{preprocessor}{ \#endif}}
-\DoxyCodeLine{373 }
-\DoxyCodeLine{374 }
-\DoxyCodeLine{375 }
-\DoxyCodeLine{376 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
-\DoxyCodeLine{377 \textcolor{keywordtype}{void} SetHeaderLocked ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bTableLocked );}
-\DoxyCodeLine{378 \textcolor{keywordtype}{void} SetTableLocked ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bTableLocked );}
-\DoxyCodeLine{379 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_LOCKING\_SUPORT}}
+\DoxyCodeLine{303 \textcolor{preprocessor}{ \#ifdef XB\_INDEX\_SUPPORT}}
+\DoxyCodeLine{304 \textcolor{keyword}{virtual} xbInt16 LockIndices ( xbInt16 iLockFunction );}
+\DoxyCodeLine{305 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
+\DoxyCodeLine{306 }
+\DoxyCodeLine{307 xbInt16 GetAutoLock () \textcolor{keyword}{const};}
+\DoxyCodeLine{308 \textcolor{keywordtype}{void} SetAutoLock ( xbInt16 iAutoLock );}
+\DoxyCodeLine{309 xbInt16 GetLockFlavor () \textcolor{keyword}{const};}
+\DoxyCodeLine{310 \textcolor{keywordtype}{void} SetLockFlavor ( xbInt16 iLockFlavor );}
+\DoxyCodeLine{311 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetTableLocked () \textcolor{keyword}{const};}
+\DoxyCodeLine{312 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetHeaderLocked () \textcolor{keyword}{const};}
+\DoxyCodeLine{313 xbUInt32 GetAppendLocked () \textcolor{keyword}{const};}
+\DoxyCodeLine{314 xbLinkListNode * GetFirstRecLock () \textcolor{keyword}{const};}
+\DoxyCodeLine{315 }
+\DoxyCodeLine{316 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
+\DoxyCodeLine{317 \textcolor{keywordtype}{void} DumpTableLockStatus() \textcolor{keyword}{const};}
+\DoxyCodeLine{318 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_DEBUG\_SUPPORT}}
+\DoxyCodeLine{319 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_LOCKING\_SUPPORT}}
+\DoxyCodeLine{320 }
+\DoxyCodeLine{321 }
+\DoxyCodeLine{322 \textcolor{preprocessor}{ \#ifdef XB\_INDEX\_SUPPORT}}
+\DoxyCodeLine{323 \textcolor{keyword}{virtual} xbInt16 CheckTagIntegrity( xbInt16 iTagOpt, xbInt16 iOutputOpt );}
+\DoxyCodeLine{324 \textcolor{keyword}{virtual} xbInt16 CloseIndexFile( xbIx *pIx );}
+\DoxyCodeLine{325 \textcolor{keyword}{virtual} xbInt16 CreateTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sKey, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFilter, }
+\DoxyCodeLine{326 xbInt16 iDescending, xbInt16 iUnique, xbInt16 iOverLay, xbIx **xbIxOut, \textcolor{keywordtype}{void} **vpTagOut );}
+\DoxyCodeLine{327 \textcolor{keyword}{virtual} xbInt16 DeleteTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sName );}
+\DoxyCodeLine{328 \textcolor{keyword}{virtual} xbInt16 DeleteAllIndexFiles();}
+\DoxyCodeLine{329 \textcolor{keyword}{virtual} xbInt16 Find( \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sKey );}
+\DoxyCodeLine{330 \textcolor{keyword}{virtual} xbInt16 Find( \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&dtKey );}
+\DoxyCodeLine{331 \textcolor{keyword}{virtual} xbInt16 Find( \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dKey );}
+\DoxyCodeLine{332 \textcolor{keyword}{virtual} xbIx *GetCurIx() \textcolor{keyword}{const};}
+\DoxyCodeLine{333 \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} *GetCurTag() \textcolor{keyword}{const};}
+\DoxyCodeLine{334 }
+\DoxyCodeLine{335 \textcolor{keyword}{virtual} xbInt16 GetFirstKey();}
+\DoxyCodeLine{336 \textcolor{keyword}{virtual} xbInt16 GetNextKey();}
+\DoxyCodeLine{337 \textcolor{keyword}{virtual} xbInt16 GetPrevKey();}
+\DoxyCodeLine{338 \textcolor{keyword}{virtual} xbInt16 GetLastKey();}
+\DoxyCodeLine{339 }
+\DoxyCodeLine{340 \textcolor{keyword}{virtual} \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&GetCurIxType() \textcolor{keyword}{const};}
+\DoxyCodeLine{341 \textcolor{keyword}{virtual} \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&GetCurTagName() \textcolor{keyword}{const};}
+\DoxyCodeLine{342 \textcolor{keyword}{virtual} xbIxList *GetIxList() \textcolor{keyword}{const};}
+\DoxyCodeLine{343 \textcolor{keyword}{virtual} xbInt32 GetPhysicalIxCnt () \textcolor{keyword}{const};}
+\DoxyCodeLine{344 xbLinkListNode *GetTagList () \textcolor{keyword}{const};}
+\DoxyCodeLine{345 }
+\DoxyCodeLine{346 \textcolor{keyword}{virtual} xbInt16 OpenIndex( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIndexName );}
+\DoxyCodeLine{347 \textcolor{keyword}{virtual} xbInt16 Reindex( xbInt16 iTagOpt );}
+\DoxyCodeLine{348 \textcolor{keyword}{virtual} xbInt16 SetCurTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTagName );}
+\DoxyCodeLine{349 \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} SetCurTag( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sIxType, xbIx *pIx, \textcolor{keywordtype}{void} *vpTag );}
+\DoxyCodeLine{350 }
+\DoxyCodeLine{351 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
+\DoxyCodeLine{352 }
+\DoxyCodeLine{353 \textcolor{preprocessor}{ \#ifdef XB\_INF\_SUPPORT}}
+\DoxyCodeLine{354 \textcolor{keyword}{virtual} xbInt16 AssociateIndex( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sType, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sName, xbInt16 iOption );}
+\DoxyCodeLine{355 xbLinkListNode *GetInfList() \textcolor{keyword}{const};}
+\DoxyCodeLine{356 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_INF\_SUPPORT}}
+\DoxyCodeLine{357 }
+\DoxyCodeLine{358 \textcolor{comment}{//\#ifdef XB\_MDX\_SUPPORT}}
+\DoxyCodeLine{359 \textcolor{comment}{//virtual xbInt16 GetCreateMdxBlockSize() const;}}
+\DoxyCodeLine{360 \textcolor{comment}{//virtual xbInt16 SetCreateMdxBlockSize( xbInt16 ulBlockSize );}}
+\DoxyCodeLine{361 \textcolor{comment}{//\#endif}}
+\DoxyCodeLine{362 }
+\DoxyCodeLine{363 }
+\DoxyCodeLine{364 }
+\DoxyCodeLine{365 \textcolor{keyword}{protected}:}
+\DoxyCodeLine{366 \textcolor{preprocessor}{ \#ifdef XB\_INDEX\_SUPPORT}}
+\DoxyCodeLine{367 \textcolor{keyword}{friend} \textcolor{keyword}{class }xbIx;}
+\DoxyCodeLine{368 \textcolor{keyword}{friend} \textcolor{keyword}{class }xbIxMdx;}
+\DoxyCodeLine{369 }
+\DoxyCodeLine{370 xbInt16 AddIndex( xbIx *ix, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFmt );}
+\DoxyCodeLine{371 \textcolor{keywordtype}{void} ClearTagList();}
+\DoxyCodeLine{372 xbInt16 RemoveIndex( xbIx * ix );}
+\DoxyCodeLine{373 \textcolor{keywordtype}{void} UpdateSchemaIxFlag( xbInt16 iFldNo, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cVal );}
+\DoxyCodeLine{374 \textcolor{keyword}{virtual} xbInt16 UpdateTagList ();}
+\DoxyCodeLine{375 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
+\DoxyCodeLine{376 }
+\DoxyCodeLine{377 \textcolor{preprocessor}{ \#ifdef XB\_INF\_SUPPORT}}
+\DoxyCodeLine{378 \textcolor{keyword}{virtual} xbInt16 GetInfFileName( \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sNdxIdxFileName );}
+\DoxyCodeLine{379 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_INF\_SUPPORT}}
\DoxyCodeLine{380 }
-\DoxyCodeLine{381 \textcolor{preprocessor}{ \#ifdef XB\_MEMO\_SUPPORT}}
-\DoxyCodeLine{382 xbInt16 iMemoFieldCnt; \textcolor{comment}{// Memo field cnt in the table}}
-\DoxyCodeLine{383 xbMemo *Memo; \textcolor{comment}{// Pointer to memo class}}
-\DoxyCodeLine{384 xbUInt32 ulCreateMemoBlockSize; \textcolor{comment}{// blocksize to use when creating dbt file}}
-\DoxyCodeLine{385 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{381 }
+\DoxyCodeLine{382 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
+\DoxyCodeLine{383 \textcolor{keywordtype}{void} SetHeaderLocked ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bTableLocked );}
+\DoxyCodeLine{384 \textcolor{keywordtype}{void} SetTableLocked ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bTableLocked );}
+\DoxyCodeLine{385 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_LOCKING\_SUPORT}}
\DoxyCodeLine{386 }
-\DoxyCodeLine{387 \textcolor{preprocessor}{ \#ifdef XB\_NDXINF\_SUPPORT}}
-\DoxyCodeLine{388 \textcolor{keyword}{virtual} xbInt16 DeleteNdxInfData();}
-\DoxyCodeLine{389 \textcolor{keyword}{virtual} xbInt16 LoadNdxInfData();}
-\DoxyCodeLine{390 \textcolor{keyword}{virtual} xbInt16 SaveNdxInfData();}
-\DoxyCodeLine{391 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_NDXINF\_SUPPORT}}
+\DoxyCodeLine{387 \textcolor{preprocessor}{ \#ifdef XB\_MEMO\_SUPPORT}}
+\DoxyCodeLine{388 xbInt16 iMemoFieldCnt; \textcolor{comment}{// Memo field cnt in the table}}
+\DoxyCodeLine{389 xbMemo *Memo; \textcolor{comment}{// Pointer to memo class}}
+\DoxyCodeLine{390 xbUInt32 ulCreateMemoBlockSize; \textcolor{comment}{// blocksize to use when creating dbt file}}
+\DoxyCodeLine{391 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{392 }
-\DoxyCodeLine{393 \textcolor{comment}{/*}}
-\DoxyCodeLine{394 \textcolor{comment}{ \#ifdef XB\_MDX\_SUPPORT}}
-\DoxyCodeLine{395 \textcolor{comment}{ xbInt16 iCreateMdxBlockSize;}}
-\DoxyCodeLine{396 \textcolor{comment}{ \#endif // XB\_MDX\_SUPPORT}}
-\DoxyCodeLine{397 \textcolor{comment}{*/}}
+\DoxyCodeLine{393 \textcolor{preprocessor}{ \#ifdef XB\_INF\_SUPPORT}}
+\DoxyCodeLine{394 \textcolor{keyword}{virtual} xbInt16 DeleteInfData();}
+\DoxyCodeLine{395 \textcolor{keyword}{virtual} xbInt16 LoadInfData();}
+\DoxyCodeLine{396 \textcolor{keyword}{virtual} xbInt16 SaveInfData();}
+\DoxyCodeLine{397 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_INF\_SUPPORT}}
\DoxyCodeLine{398 }
-\DoxyCodeLine{399 \textcolor{keyword}{virtual} xbInt16 GetRawField( xbInt16 iFieldNo, \textcolor{keywordtype}{char} *Buf, xbUInt32 BufSize, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
-\DoxyCodeLine{400 \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} InitVars(); }
-\DoxyCodeLine{401 \textcolor{keyword}{virtual} xbInt16 SetVersion() = 0;}
-\DoxyCodeLine{402 \textcolor{keyword}{virtual} xbInt16 ValidateSchema( \mbox{\hyperlink{structxb_1_1xbSchema}{xbSchema}} * s ) = 0;}
-\DoxyCodeLine{403 xbInt16 WriteHeader( xbInt16 iPositionOption, xbInt16 iWriteOption );}
+\DoxyCodeLine{399 \textcolor{comment}{/*}}
+\DoxyCodeLine{400 \textcolor{comment}{ \#ifdef XB\_MDX\_SUPPORT}}
+\DoxyCodeLine{401 \textcolor{comment}{ xbInt16 iCreateMdxBlockSize;}}
+\DoxyCodeLine{402 \textcolor{comment}{ \#endif // XB\_MDX\_SUPPORT}}
+\DoxyCodeLine{403 \textcolor{comment}{*/}}
\DoxyCodeLine{404 }
-\DoxyCodeLine{405 }
-\DoxyCodeLine{406 xbUInt32 ulCurRec; \textcolor{comment}{// Current record or zero}}
-\DoxyCodeLine{407 xbInt16 iAutoCommit; \textcolor{comment}{// Auto commit updates if not explicitly performed before moving off record?}}
-\DoxyCodeLine{408 \textcolor{comment}{// -\/1 -\/-\/> Use DBMS default}}
-\DoxyCodeLine{409 \textcolor{comment}{// 0 -\/-\/> No auto update on this table, regardless of DBMS setting}}
-\DoxyCodeLine{410 \textcolor{comment}{// 1 -\/-\/> Auto update on this table, regardless of DBMS setting}}
+\DoxyCodeLine{405 \textcolor{keyword}{virtual} xbInt16 GetRawField( xbInt16 iFieldNo, \textcolor{keywordtype}{char} *Buf, xbUInt32 BufSize, xbInt16 iRecBufSw ) \textcolor{keyword}{const};}
+\DoxyCodeLine{406 \textcolor{keyword}{virtual} \textcolor{keywordtype}{void} InitVars(); }
+\DoxyCodeLine{407 \textcolor{keyword}{virtual} xbInt16 SetVersion() = 0;}
+\DoxyCodeLine{408 \textcolor{keyword}{virtual} xbInt16 ValidateSchema( \mbox{\hyperlink{structxb_1_1xbSchema}{xbSchema}} * s ) = 0;}
+\DoxyCodeLine{409 xbInt16 WriteHeader( xbInt16 iPositionOption, xbInt16 iWriteOption );}
+\DoxyCodeLine{410 }
\DoxyCodeLine{411 }
-\DoxyCodeLine{412 xbInt16 iFileVersion; \textcolor{comment}{// xBase file version -\/ which class is in play}}
-\DoxyCodeLine{413 }
-\DoxyCodeLine{414 }
-\DoxyCodeLine{415 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sAlias; \textcolor{comment}{// table alias}}
-\DoxyCodeLine{416 xbInt16 iNoOfFields;}
-\DoxyCodeLine{417 xbInt16 iDbfStatus; \textcolor{comment}{// 0 = closed}}
-\DoxyCodeLine{418 \textcolor{comment}{// 1 = open}}
-\DoxyCodeLine{419 \textcolor{comment}{// 2 = updates pending}}
+\DoxyCodeLine{412 xbUInt32 ulCurRec; \textcolor{comment}{// Current record or zero}}
+\DoxyCodeLine{413 xbInt16 iAutoCommit; \textcolor{comment}{// Auto commit updates if not explicitly performed before moving off record?}}
+\DoxyCodeLine{414 \textcolor{comment}{// -\/1 -\/-\/> Use DBMS default}}
+\DoxyCodeLine{415 \textcolor{comment}{// 0 -\/-\/> No auto update on this table, regardless of DBMS setting}}
+\DoxyCodeLine{416 \textcolor{comment}{// 1 -\/-\/> Auto update on this table, regardless of DBMS setting}}
+\DoxyCodeLine{417 }
+\DoxyCodeLine{418 xbInt16 iFileVersion; \textcolor{comment}{// xBase file version -\/ which class is in play}}
+\DoxyCodeLine{419 }
\DoxyCodeLine{420 }
-\DoxyCodeLine{421 xbSchemaRec *SchemaPtr; \textcolor{comment}{// Pointer to field data}}
-\DoxyCodeLine{422 \textcolor{keywordtype}{char} *RecBuf; \textcolor{comment}{// Pointer to record buffer}}
-\DoxyCodeLine{423 \textcolor{keywordtype}{char} *RecBuf2; \textcolor{comment}{// Pointer to original rec buf}}
-\DoxyCodeLine{424 }
-\DoxyCodeLine{425 }
-\DoxyCodeLine{426 \textcolor{comment}{/* Next several variables are database header fields, up through dbase V */}}
-\DoxyCodeLine{427 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cVersion;}
-\DoxyCodeLine{428 \textcolor{keywordtype}{char} cUpdateYY;}
-\DoxyCodeLine{429 \textcolor{keywordtype}{char} cUpdateMM;}
-\DoxyCodeLine{430 \textcolor{keywordtype}{char} cUpdateDD;}
-\DoxyCodeLine{431 xbUInt32 ulNoOfRecs;}
-\DoxyCodeLine{432 xbUInt16 uiHeaderLen;}
-\DoxyCodeLine{433 xbUInt16 uiRecordLen;}
-\DoxyCodeLine{434 \textcolor{keywordtype}{char} cTransactionFlag;}
-\DoxyCodeLine{435 \textcolor{keywordtype}{char} cEncryptionFlag;}
-\DoxyCodeLine{436 \textcolor{keywordtype}{char} cIndexFlag;}
-\DoxyCodeLine{437 \textcolor{keywordtype}{char} cLangDriver; \textcolor{comment}{// dbase 7 sets to 1B}}
-\DoxyCodeLine{438 }
-\DoxyCodeLine{439 }
-\DoxyCodeLine{440 }
-\DoxyCodeLine{441 \textcolor{keyword}{private}:}
-\DoxyCodeLine{442 \textcolor{keywordtype}{void} ResetNoOfRecords(); }
-\DoxyCodeLine{443 }
+\DoxyCodeLine{421 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sAlias; \textcolor{comment}{// table alias}}
+\DoxyCodeLine{422 xbInt16 iNoOfFields;}
+\DoxyCodeLine{423 xbInt16 iDbfStatus; \textcolor{comment}{// 0 = closed}}
+\DoxyCodeLine{424 \textcolor{comment}{// 1 = open}}
+\DoxyCodeLine{425 \textcolor{comment}{// 2 = updates pending}}
+\DoxyCodeLine{426 }
+\DoxyCodeLine{427 xbSchemaRec *SchemaPtr; \textcolor{comment}{// Pointer to field data}}
+\DoxyCodeLine{428 \textcolor{keywordtype}{char} *RecBuf; \textcolor{comment}{// Pointer to record buffer}}
+\DoxyCodeLine{429 \textcolor{keywordtype}{char} *RecBuf2; \textcolor{comment}{// Pointer to original rec buf}}
+\DoxyCodeLine{430 }
+\DoxyCodeLine{431 }
+\DoxyCodeLine{432 \textcolor{comment}{/* Next several variables are database header fields, up through dbase V */}}
+\DoxyCodeLine{433 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cVersion;}
+\DoxyCodeLine{434 \textcolor{keywordtype}{char} cUpdateYY;}
+\DoxyCodeLine{435 \textcolor{keywordtype}{char} cUpdateMM;}
+\DoxyCodeLine{436 \textcolor{keywordtype}{char} cUpdateDD;}
+\DoxyCodeLine{437 xbUInt32 ulNoOfRecs;}
+\DoxyCodeLine{438 xbUInt16 uiHeaderLen;}
+\DoxyCodeLine{439 xbUInt16 uiRecordLen;}
+\DoxyCodeLine{440 \textcolor{keywordtype}{char} cTransactionFlag;}
+\DoxyCodeLine{441 \textcolor{keywordtype}{char} cEncryptionFlag;}
+\DoxyCodeLine{442 \textcolor{keywordtype}{char} cIndexFlag;}
+\DoxyCodeLine{443 \textcolor{keywordtype}{char} cLangDriver; \textcolor{comment}{// dbase 7 sets to 1B}}
\DoxyCodeLine{444 }
-\DoxyCodeLine{445 \textcolor{preprocessor}{\#ifdef XB\_LOCKING\_SUPPORT}}
-\DoxyCodeLine{446 xbInt16 iAutoLock; \textcolor{comment}{// 0 -\/ autolock off, 1 -\/ autolock on}}
-\DoxyCodeLine{447 xbInt16 iLockFlavor;}
-\DoxyCodeLine{448 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bTableLocked; \textcolor{comment}{// is the table locked}}
-\DoxyCodeLine{449 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bHeaderLocked; \textcolor{comment}{// is the header locked}}
-\DoxyCodeLine{450 xbUInt32 ulAppendLocked; \textcolor{comment}{// record number of the new record for the append lock operation}}
-\DoxyCodeLine{451 xbLinkListOrd lloRecLocks; \textcolor{comment}{// ordered link list of locked records}}
-\DoxyCodeLine{452 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{453 }
-\DoxyCodeLine{454 }
-\DoxyCodeLine{455 \textcolor{preprocessor}{\#ifdef XB\_INDEX\_SUPPORT}}
-\DoxyCodeLine{456 xbIxList *ixList; \textcolor{comment}{// pointer to a list of indices associated with the table}}
-\DoxyCodeLine{457 \textcolor{comment}{// \#ifdef XB\_MDX\_SUPPORT}}
-\DoxyCodeLine{458 \textcolor{comment}{// xbIx *ixMdx; // pointer to production multi-\/tag index file}}
-\DoxyCodeLine{459 \textcolor{comment}{// \#endif}}
-\DoxyCodeLine{460 xbIx *pCurIx; \textcolor{comment}{// Pointer to current index class}}
-\DoxyCodeLine{461 \textcolor{keywordtype}{void} *vpCurIxTag; \textcolor{comment}{// Pointer to current tag}}
-\DoxyCodeLine{462 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sCurIxType; \textcolor{comment}{// Current index type}}
-\DoxyCodeLine{463 xbLinkList llTags; \textcolor{comment}{// linked list of open tags}}
-\DoxyCodeLine{464 }
-\DoxyCodeLine{465 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
-\DoxyCodeLine{466 }
-\DoxyCodeLine{467 \textcolor{preprocessor}{\#ifdef XB\_NDXINF\_SUPPORT}}
-\DoxyCodeLine{468 xbLinkList llNdxInfData; \textcolor{comment}{// linked list of strings containing ndx file entries}}
-\DoxyCodeLine{469 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// XB\_NDXINF\_SUPPORT}}
-\DoxyCodeLine{470 }
-\DoxyCodeLine{471 }
-\DoxyCodeLine{472 \};}
+\DoxyCodeLine{445 }
+\DoxyCodeLine{446 }
+\DoxyCodeLine{447 \textcolor{keyword}{private}:}
+\DoxyCodeLine{448 \textcolor{keywordtype}{void} ResetNoOfRecords(); }
+\DoxyCodeLine{449 }
+\DoxyCodeLine{450 }
+\DoxyCodeLine{451 \textcolor{preprocessor}{\#ifdef XB\_LOCKING\_SUPPORT}}
+\DoxyCodeLine{452 xbInt16 iAutoLock; \textcolor{comment}{// 0 -\/ autolock off, 1 -\/ autolock on}}
+\DoxyCodeLine{453 xbInt16 iLockFlavor;}
+\DoxyCodeLine{454 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bTableLocked; \textcolor{comment}{// is the table locked}}
+\DoxyCodeLine{455 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bHeaderLocked; \textcolor{comment}{// is the header locked}}
+\DoxyCodeLine{456 xbUInt32 ulAppendLocked; \textcolor{comment}{// record number of the new record for the append lock operation}}
+\DoxyCodeLine{457 xbLinkListOrd lloRecLocks; \textcolor{comment}{// ordered link list of locked records}}
+\DoxyCodeLine{458 \textcolor{preprocessor}{\#endif}}
+\DoxyCodeLine{459 }
+\DoxyCodeLine{460 }
+\DoxyCodeLine{461 \textcolor{preprocessor}{\#ifdef XB\_INDEX\_SUPPORT}}
+\DoxyCodeLine{462 xbIxList *ixList; \textcolor{comment}{// pointer to a list of indices associated with the table}}
+\DoxyCodeLine{463 xbIx *pCurIx; \textcolor{comment}{// Pointer to current index class}}
+\DoxyCodeLine{464 \textcolor{keywordtype}{void} *vpCurIxTag; \textcolor{comment}{// Pointer to current tag}}
+\DoxyCodeLine{465 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sCurIxType; \textcolor{comment}{// Current index type}}
+\DoxyCodeLine{466 xbLinkList llTags; \textcolor{comment}{// linked list of open tags}}
+\DoxyCodeLine{467 }
+\DoxyCodeLine{468 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
+\DoxyCodeLine{469 }
+\DoxyCodeLine{470 \textcolor{preprocessor}{\#ifdef XB\_INF\_SUPPORT}}
+\DoxyCodeLine{471 xbLinkList llInfData; \textcolor{comment}{// linked list of strings containing ndx file entries}}
+\DoxyCodeLine{472 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// XB\_INF\_SUPPORT}}
\DoxyCodeLine{473 }
\DoxyCodeLine{474 }
-\DoxyCodeLine{475 \textcolor{preprocessor}{\#ifdef XB\_DBF3\_SUPPORT}}
+\DoxyCodeLine{475 \};}
+\DoxyCodeLine{476 }
\DoxyCodeLine{477 }
-\DoxyCodeLine{483 \textcolor{keyword}{class }XBDLLEXPORT xbDbf3 : \textcolor{keyword}{public} \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} \{}
-\DoxyCodeLine{484 \textcolor{keyword}{public}:}
-\DoxyCodeLine{485 xbDbf3(\mbox{\hyperlink{classxb_1_1xbXBase}{xbXBase}} *x);}
-\DoxyCodeLine{486 \string~xbDbf3();}
-\DoxyCodeLine{487 \textcolor{keyword}{virtual} xbInt16 CreateTable ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias, \mbox{\hyperlink{structxb_1_1xbSchema}{xbSchema}} *, xbInt16 iOverlay, xbInt16 iShareMode );}
-\DoxyCodeLine{488 \textcolor{keyword}{virtual} xbInt16 GetVersion () \textcolor{keyword}{const};}
-\DoxyCodeLine{489 \textcolor{keyword}{virtual} xbInt16 Open ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias, xbInt16 iOpenMode, xbInt16 iShareMode );}
-\DoxyCodeLine{490 }
-\DoxyCodeLine{491 \textcolor{preprocessor}{ \#ifdef XB\_MEMO\_SUPPORT}}
-\DoxyCodeLine{492 \textcolor{keyword}{virtual} xbInt16 SetCreateMemoBlockSize( xbUInt32 iBlockSize );}
-\DoxyCodeLine{493 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{478 \textcolor{preprocessor}{\#ifdef XB\_DBF3\_SUPPORT}}
+\DoxyCodeLine{480 }
+\DoxyCodeLine{486 \textcolor{keyword}{class }XBDLLEXPORT xbDbf3 : \textcolor{keyword}{public} \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} \{}
+\DoxyCodeLine{487 \textcolor{keyword}{public}:}
+\DoxyCodeLine{488 xbDbf3(\mbox{\hyperlink{classxb_1_1xbXBase}{xbXBase}} *x);}
+\DoxyCodeLine{489 \string~xbDbf3();}
+\DoxyCodeLine{490 \textcolor{keyword}{virtual} xbInt16 CreateTable ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias, \mbox{\hyperlink{structxb_1_1xbSchema}{xbSchema}} *, xbInt16 iOverlay, xbInt16 iShareMode );}
+\DoxyCodeLine{491 \textcolor{keyword}{virtual} xbInt16 GetVersion () \textcolor{keyword}{const};}
+\DoxyCodeLine{492 \textcolor{keyword}{virtual} xbInt16 Open ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTableName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sAlias, xbInt16 iOpenMode, xbInt16 iShareMode );}
+\DoxyCodeLine{493 \textcolor{keyword}{virtual} xbInt16 Rename ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sNewName );}
\DoxyCodeLine{494 }
-\DoxyCodeLine{495 \textcolor{keyword}{protected}:}
-\DoxyCodeLine{496 xbInt16 SetVersion ();}
-\DoxyCodeLine{497 \textcolor{keyword}{virtual} xbInt16 ValidateSchema( \mbox{\hyperlink{structxb_1_1xbSchema}{xbSchema}} *s );}
+\DoxyCodeLine{495 \textcolor{preprocessor}{ \#ifdef XB\_MEMO\_SUPPORT}}
+\DoxyCodeLine{496 \textcolor{keyword}{virtual} xbInt16 SetCreateMemoBlockSize( xbUInt32 iBlockSize );}
+\DoxyCodeLine{497 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{498 }
-\DoxyCodeLine{499 \textcolor{keyword}{private}:}
-\DoxyCodeLine{500 }
-\DoxyCodeLine{501 \};}
-\DoxyCodeLine{502 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_DBF3\_SUPPORT */}\textcolor{preprocessor}{}}
-\DoxyCodeLine{503 }
+\DoxyCodeLine{499 \textcolor{keyword}{protected}:}
+\DoxyCodeLine{500 xbInt16 SetVersion ();}
+\DoxyCodeLine{501 \textcolor{keyword}{virtual} xbInt16 ValidateSchema( \mbox{\hyperlink{structxb_1_1xbSchema}{xbSchema}} *s );}
+\DoxyCodeLine{502 }
+\DoxyCodeLine{503 \textcolor{keyword}{private}:}
\DoxyCodeLine{504 }
-\DoxyCodeLine{505 \textcolor{preprocessor}{\#ifdef XB\_DBF4\_SUPPORT}}
+\DoxyCodeLine{505 \};}
+\DoxyCodeLine{506 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_DBF3\_SUPPORT */}\textcolor{preprocessor}{}}
\DoxyCodeLine{507 }
-\DoxyCodeLine{512 \textcolor{keyword}{class }XBDLLEXPORT xbDbf4 : \textcolor{keyword}{public} \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} \{}
-\DoxyCodeLine{513 \textcolor{keyword}{public}:}
-\DoxyCodeLine{514 xbDbf4( \mbox{\hyperlink{namespacexb_a97858ddeb1c4b0100f3edc1a46d3a8b0}{xbXBase}} *x );}
-\DoxyCodeLine{515 }
-\DoxyCodeLine{516 \string~xbDbf4();}
-\DoxyCodeLine{517 }
-\DoxyCodeLine{518 \textcolor{keyword}{virtual} xbInt16 CreateTable ( \textcolor{keyword}{const} xbString \&sTableName, \textcolor{keyword}{const} xbString \&sAlias, xbSchema *, xbInt16 iOverlay, xbInt16 iShareMode );}
-\DoxyCodeLine{519 \textcolor{keyword}{virtual} xbInt16 GetVersion () \textcolor{keyword}{const};}
-\DoxyCodeLine{520 \textcolor{keyword}{virtual} xbInt16 Open ( \textcolor{keyword}{const} xbString \&sTableName, \textcolor{keyword}{const} xbString \&sAlias, xbInt16 iOpenMode, xbInt16 iShareMode );}
+\DoxyCodeLine{508 }
+\DoxyCodeLine{509 \textcolor{preprocessor}{\#ifdef XB\_DBF4\_SUPPORT}}
+\DoxyCodeLine{511 }
+\DoxyCodeLine{516 \textcolor{keyword}{class }XBDLLEXPORT xbDbf4 : \textcolor{keyword}{public} \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} \{}
+\DoxyCodeLine{517 \textcolor{keyword}{public}:}
+\DoxyCodeLine{518 xbDbf4( \mbox{\hyperlink{namespacexb_a97858ddeb1c4b0100f3edc1a46d3a8b0}{xbXBase}} *x );}
+\DoxyCodeLine{519 }
+\DoxyCodeLine{520 \string~xbDbf4();}
\DoxyCodeLine{521 }
-\DoxyCodeLine{522 \textcolor{preprocessor}{ \#ifdef XB\_MEMO\_SUPPORT}}
-\DoxyCodeLine{523 \textcolor{keyword}{virtual} xbInt16 SetCreateMemoBlockSize( xbUInt32 iBlockSize );}
-\DoxyCodeLine{524 \textcolor{preprocessor}{ \#endif}}
-\DoxyCodeLine{525 }
-\DoxyCodeLine{526 \textcolor{keyword}{protected}:}
-\DoxyCodeLine{527 \textcolor{comment}{// void InitVars ();}}
-\DoxyCodeLine{528 xbInt16 SetVersion();}
-\DoxyCodeLine{529 \textcolor{keyword}{virtual} xbInt16 ValidateSchema ( xbSchema *s );}
+\DoxyCodeLine{522 \textcolor{keyword}{virtual} xbInt16 CreateTable ( \textcolor{keyword}{const} xbString \&sTableName, \textcolor{keyword}{const} xbString \&sAlias, xbSchema *, xbInt16 iOverlay, xbInt16 iShareMode );}
+\DoxyCodeLine{523 \textcolor{keyword}{virtual} xbInt16 GetVersion () \textcolor{keyword}{const};}
+\DoxyCodeLine{524 \textcolor{keyword}{virtual} xbInt16 Open ( \textcolor{keyword}{const} xbString \&sTableName, \textcolor{keyword}{const} xbString \&sAlias, xbInt16 iOpenMode, xbInt16 iShareMode );}
+\DoxyCodeLine{525 \textcolor{keyword}{virtual} xbInt16 Rename ( \textcolor{keyword}{const} xbString sNewName );}
+\DoxyCodeLine{526 }
+\DoxyCodeLine{527 \textcolor{preprocessor}{ \#ifdef XB\_MEMO\_SUPPORT}}
+\DoxyCodeLine{528 \textcolor{keyword}{virtual} xbInt16 SetCreateMemoBlockSize( xbUInt32 iBlockSize );}
+\DoxyCodeLine{529 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{530 }
-\DoxyCodeLine{531 \textcolor{keyword}{private}:}
-\DoxyCodeLine{532 }
-\DoxyCodeLine{533 \};}
-\DoxyCodeLine{534 }
-\DoxyCodeLine{535 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_DBF4\_SUPPORT */}\textcolor{preprocessor}{}}
-\DoxyCodeLine{536 }
-\DoxyCodeLine{537 \} \textcolor{comment}{/* namespace xb */}}
-\DoxyCodeLine{538 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_DBF\_H\_\_ */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{531 \textcolor{keyword}{protected}:}
+\DoxyCodeLine{532 \textcolor{comment}{// void InitVars ();}}
+\DoxyCodeLine{533 xbInt16 SetVersion();}
+\DoxyCodeLine{534 \textcolor{keyword}{virtual} xbInt16 ValidateSchema ( xbSchema *s );}
+\DoxyCodeLine{535 }
+\DoxyCodeLine{536 \textcolor{keyword}{private}:}
+\DoxyCodeLine{537 }
+\DoxyCodeLine{538 \};}
+\DoxyCodeLine{539 }
+\DoxyCodeLine{540 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_DBF4\_SUPPORT */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{541 }
+\DoxyCodeLine{542 \} \textcolor{comment}{/* namespace xb */}}
+\DoxyCodeLine{543 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_DBF\_H\_\_ */}\textcolor{preprocessor}{}}
\end{DoxyCode}
diff --git a/docs/doxygen/latex/xbdelete_8cpp.tex b/docs/doxygen/latex/xbdelete_8cpp.tex
new file mode 100644
index 0000000..6c9a05a
--- /dev/null
+++ b/docs/doxygen/latex/xbdelete_8cpp.tex
@@ -0,0 +1,3 @@
+\hypertarget{xbdelete_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/sql/xbdelete.cpp File Reference}
+\label{xbdelete_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbdelete.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbdelete.cpp}}
+{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbdrpix_8cpp.tex b/docs/doxygen/latex/xbdrpix_8cpp.tex
index 5e24367..f4975e6 100644
--- a/docs/doxygen/latex/xbdrpix_8cpp.tex
+++ b/docs/doxygen/latex/xbdrpix_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbdrpix_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/sql/xbdrpix.cpp File Reference}
-\label{xbdrpix_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbdrpix.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbdrpix.cpp}}
+\hypertarget{xbdrpix_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/sql/xbdrpix.cpp File Reference}
+\label{xbdrpix_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbdrpix.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbdrpix.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbdrptbl_8cpp.tex b/docs/doxygen/latex/xbdrptbl_8cpp.tex
index 95f12a7..c62fd23 100644
--- a/docs/doxygen/latex/xbdrptbl_8cpp.tex
+++ b/docs/doxygen/latex/xbdrptbl_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbdrptbl_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/sql/xbdrptbl.cpp File Reference}
-\label{xbdrptbl_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbdrptbl.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbdrptbl.cpp}}
+\hypertarget{xbdrptbl_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/sql/xbdrptbl.cpp File Reference}
+\label{xbdrptbl_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbdrptbl.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbdrptbl.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbexp_8cpp.tex b/docs/doxygen/latex/xbexp_8cpp.tex
index f8439bc..c0a4e04 100644
--- a/docs/doxygen/latex/xbexp_8cpp.tex
+++ b/docs/doxygen/latex/xbexp_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbexp_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbexp.cpp File Reference}
-\label{xbexp_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbexp.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbexp.cpp}}
+\hypertarget{xbexp_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbexp.cpp File Reference}
+\label{xbexp_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbexp.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbexp.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbexp_8h.tex b/docs/doxygen/latex/xbexp_8h.tex
index edcfc3d..8c4d497 100644
--- a/docs/doxygen/latex/xbexp_8h.tex
+++ b/docs/doxygen/latex/xbexp_8h.tex
@@ -1,2 +1,2 @@
-\hypertarget{xbexp_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbexp.h File Reference}
-\label{xbexp_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbexp.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbexp.h}}
+\hypertarget{xbexp_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbexp.h File Reference}
+\label{xbexp_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbexp.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbexp.h}}
diff --git a/docs/doxygen/latex/xbexp_8h_source.tex b/docs/doxygen/latex/xbexp_8h_source.tex
index 7801e11..5d21561 100644
--- a/docs/doxygen/latex/xbexp_8h_source.tex
+++ b/docs/doxygen/latex/xbexp_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbexp_8h_source}{}\doxysection{xbexp.\+h}
-\label{xbexp_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbexp.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbexp.h}}
+\label{xbexp_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbexp.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbexp.h}}
\mbox{\hyperlink{xbexp_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbexp.h}}
diff --git a/docs/doxygen/latex/xbexpnode_8cpp.tex b/docs/doxygen/latex/xbexpnode_8cpp.tex
index d5fce07..b92c84a 100644
--- a/docs/doxygen/latex/xbexpnode_8cpp.tex
+++ b/docs/doxygen/latex/xbexpnode_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbexpnode_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbexpnode.cpp File Reference}
-\label{xbexpnode_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbexpnode.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbexpnode.cpp}}
+\hypertarget{xbexpnode_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbexpnode.cpp File Reference}
+\label{xbexpnode_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbexpnode.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbexpnode.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbexpnode_8h.tex b/docs/doxygen/latex/xbexpnode_8h.tex
index 574b650..e247062 100644
--- a/docs/doxygen/latex/xbexpnode_8h.tex
+++ b/docs/doxygen/latex/xbexpnode_8h.tex
@@ -1,2 +1,2 @@
-\hypertarget{xbexpnode_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbexpnode.h File Reference}
-\label{xbexpnode_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbexpnode.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbexpnode.h}}
+\hypertarget{xbexpnode_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbexpnode.h File Reference}
+\label{xbexpnode_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbexpnode.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbexpnode.h}}
diff --git a/docs/doxygen/latex/xbexpnode_8h_source.tex b/docs/doxygen/latex/xbexpnode_8h_source.tex
index a0cbdd8..00b8f9c 100644
--- a/docs/doxygen/latex/xbexpnode_8h_source.tex
+++ b/docs/doxygen/latex/xbexpnode_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbexpnode_8h_source}{}\doxysection{xbexpnode.\+h}
-\label{xbexpnode_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbexpnode.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbexpnode.h}}
+\label{xbexpnode_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbexpnode.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbexpnode.h}}
\mbox{\hyperlink{xbexpnode_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbexpnode.h}}
diff --git a/docs/doxygen/latex/xbfields_8cpp.tex b/docs/doxygen/latex/xbfields_8cpp.tex
index 83e84b3..803cb06 100644
--- a/docs/doxygen/latex/xbfields_8cpp.tex
+++ b/docs/doxygen/latex/xbfields_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbfields_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbfields.cpp File Reference}
-\label{xbfields_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbfields.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbfields.cpp}}
+\hypertarget{xbfields_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbfields.cpp File Reference}
+\label{xbfields_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbfields.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbfields.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xbfile_8cpp.tex b/docs/doxygen/latex/xbfile_8cpp.tex
index 795870f..8f4dee3 100644
--- a/docs/doxygen/latex/xbfile_8cpp.tex
+++ b/docs/doxygen/latex/xbfile_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbfile_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbfile.cpp File Reference}
-\label{xbfile_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbfile.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbfile.cpp}}
+\hypertarget{xbfile_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbfile.cpp File Reference}
+\label{xbfile_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbfile.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbfile.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xbfile_8h.tex b/docs/doxygen/latex/xbfile_8h.tex
index d3ddbb8..c5079e8 100644
--- a/docs/doxygen/latex/xbfile_8h.tex
+++ b/docs/doxygen/latex/xbfile_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbfile_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbfile.h File Reference}
-\label{xbfile_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbfile.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbfile.h}}
+\hypertarget{xbfile_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbfile.h File Reference}
+\label{xbfile_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbfile.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbfile.h}}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/xbfile_8h_source.tex b/docs/doxygen/latex/xbfile_8h_source.tex
index 19fb9c7..506fe71 100644
--- a/docs/doxygen/latex/xbfile_8h_source.tex
+++ b/docs/doxygen/latex/xbfile_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbfile_8h_source}{}\doxysection{xbfile.\+h}
-\label{xbfile_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbfile.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbfile.h}}
+\label{xbfile_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbfile.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbfile.h}}
\mbox{\hyperlink{xbfile_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbfile.h}}
@@ -135,46 +135,45 @@
\DoxyCodeLine{151 xbInt16 xbRemove ();}
\DoxyCodeLine{152 }
\DoxyCodeLine{153 xbInt16 xbRename ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sOldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sNewName );}
-\DoxyCodeLine{154 xbInt16 xbRename ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sOldName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sNewName, xbInt16 iOption );}
-\DoxyCodeLine{155 \textcolor{keywordtype}{void} xbRewind ();}
-\DoxyCodeLine{156 }
-\DoxyCodeLine{157 xbInt16 xbTruncate ( xbInt64 llSize );}
-\DoxyCodeLine{158 xbInt16 NameSuffixMissing( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFileName, xbInt16 iOption ) \textcolor{keyword}{const};}
-\DoxyCodeLine{159 }
-\DoxyCodeLine{160 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
-\DoxyCodeLine{161 xbInt16 DumpBlockToDisk( xbUInt32 ulBlockNo, \textcolor{keywordtype}{size\_t} lBlockSize );}
-\DoxyCodeLine{162 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{154 \textcolor{keywordtype}{void} xbRewind ();}
+\DoxyCodeLine{155 }
+\DoxyCodeLine{156 xbInt16 xbTruncate ( xbInt64 llSize );}
+\DoxyCodeLine{157 xbInt16 NameSuffixMissing( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFileName, xbInt16 iOption ) \textcolor{keyword}{const};}
+\DoxyCodeLine{158 }
+\DoxyCodeLine{159 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
+\DoxyCodeLine{160 xbInt16 DumpBlockToDisk( xbUInt32 ulBlockNo, \textcolor{keywordtype}{size\_t} lBlockSize );}
+\DoxyCodeLine{161 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{162 }
\DoxyCodeLine{163 }
-\DoxyCodeLine{164 }
-\DoxyCodeLine{165 \textcolor{keyword}{protected}:}
-\DoxyCodeLine{166 }
-\DoxyCodeLine{167 \mbox{\hyperlink{classxb_1_1xbXBase}{xbXBase}} *\mbox{\hyperlink{classxb_1_1xbFile_ae39a67ea391b46055d4ca299cb222004}{xbase}}; \textcolor{comment}{/* pointer to the main structures */}}
-\DoxyCodeLine{168 }
-\DoxyCodeLine{169 \textcolor{keyword}{private}:}
-\DoxyCodeLine{170 FILE *fp;}
-\DoxyCodeLine{171 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sFqFileName; \textcolor{comment}{/* fully qualified file name */}}
-\DoxyCodeLine{172 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sFileName; \textcolor{comment}{/* file name */}}
-\DoxyCodeLine{173 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDirectory; \textcolor{comment}{/* directory, ends with / or \(\backslash\) */}}
-\DoxyCodeLine{174 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bFileOpen; \textcolor{comment}{/* true if file is open */}}
-\DoxyCodeLine{175 xbUInt32 ulBlockSize; \textcolor{comment}{/* used for memo and index files */}}
-\DoxyCodeLine{176 }
-\DoxyCodeLine{177 xbInt16 iOpenMode; \textcolor{comment}{/* XB\_READ || XB\_READ\_WRITE || XB\_WRITE */}}
-\DoxyCodeLine{178 xbInt16 iShareMode; \textcolor{comment}{/* XB\_SINGLE\_USER || XB\_MULTI\_USER -\/ set file buffering */}}
-\DoxyCodeLine{179 xbInt32 iFileNo; \textcolor{comment}{/* Library File No */}}
-\DoxyCodeLine{180 }
-\DoxyCodeLine{181 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
-\DoxyCodeLine{182 xbInt16 iLockRetries; \textcolor{comment}{/* file override number of lock attempts */}}
-\DoxyCodeLine{183 \textcolor{preprocessor}{ \#endif}}
-\DoxyCodeLine{184 }
-\DoxyCodeLine{185 \textcolor{preprocessor}{ \#ifdef HAVE\_SETENDOFFILE\_F}}
-\DoxyCodeLine{186 HANDLE fHandle;}
-\DoxyCodeLine{187 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{164 \textcolor{keyword}{protected}:}
+\DoxyCodeLine{165 }
+\DoxyCodeLine{166 \mbox{\hyperlink{classxb_1_1xbXBase}{xbXBase}} *\mbox{\hyperlink{classxb_1_1xbFile_ae39a67ea391b46055d4ca299cb222004}{xbase}}; \textcolor{comment}{/* pointer to the main structures */}}
+\DoxyCodeLine{167 }
+\DoxyCodeLine{168 \textcolor{keyword}{private}:}
+\DoxyCodeLine{169 FILE *fp;}
+\DoxyCodeLine{170 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sFqFileName; \textcolor{comment}{/* fully qualified file name */}}
+\DoxyCodeLine{171 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sFileName; \textcolor{comment}{/* file name */}}
+\DoxyCodeLine{172 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDirectory; \textcolor{comment}{/* directory, ends with / or \(\backslash\) */}}
+\DoxyCodeLine{173 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bFileOpen; \textcolor{comment}{/* true if file is open */}}
+\DoxyCodeLine{174 xbUInt32 ulBlockSize; \textcolor{comment}{/* used for memo and index files */}}
+\DoxyCodeLine{175 }
+\DoxyCodeLine{176 xbInt16 iOpenMode; \textcolor{comment}{/* XB\_READ || XB\_READ\_WRITE || XB\_WRITE */}}
+\DoxyCodeLine{177 xbInt16 iShareMode; \textcolor{comment}{/* XB\_SINGLE\_USER || XB\_MULTI\_USER -\/ set file buffering */}}
+\DoxyCodeLine{178 xbInt32 iFileNo; \textcolor{comment}{/* Library File No */}}
+\DoxyCodeLine{179 }
+\DoxyCodeLine{180 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
+\DoxyCodeLine{181 xbInt16 iLockRetries; \textcolor{comment}{/* file override number of lock attempts */}}
+\DoxyCodeLine{182 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{183 }
+\DoxyCodeLine{184 \textcolor{preprocessor}{ \#ifdef HAVE\_SETENDOFFILE\_F}}
+\DoxyCodeLine{185 HANDLE fHandle;}
+\DoxyCodeLine{186 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{187 }
\DoxyCodeLine{188 }
-\DoxyCodeLine{189 }
-\DoxyCodeLine{190 \};}
-\DoxyCodeLine{191 }
-\DoxyCodeLine{192 \} \textcolor{comment}{/* namespace */}}
-\DoxyCodeLine{193 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XBFILE\_H\_\_ */}\textcolor{preprocessor}{}}
-\DoxyCodeLine{194 }
+\DoxyCodeLine{189 \};}
+\DoxyCodeLine{190 }
+\DoxyCodeLine{191 \} \textcolor{comment}{/* namespace */}}
+\DoxyCodeLine{192 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XBFILE\_H\_\_ */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{193 }
\end{DoxyCode}
diff --git a/docs/doxygen/latex/xbfilter_8cpp.tex b/docs/doxygen/latex/xbfilter_8cpp.tex
index a3711d4..0b88920 100644
--- a/docs/doxygen/latex/xbfilter_8cpp.tex
+++ b/docs/doxygen/latex/xbfilter_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbfilter_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbfilter.cpp File Reference}
-\label{xbfilter_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbfilter.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbfilter.cpp}}
+\hypertarget{xbfilter_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbfilter.cpp File Reference}
+\label{xbfilter_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbfilter.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbfilter.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbfilter_8h.tex b/docs/doxygen/latex/xbfilter_8h.tex
index e9ccb84..b19421f 100644
--- a/docs/doxygen/latex/xbfilter_8h.tex
+++ b/docs/doxygen/latex/xbfilter_8h.tex
@@ -1,2 +1,2 @@
-\hypertarget{xbfilter_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbfilter.h File Reference}
-\label{xbfilter_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbfilter.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbfilter.h}}
+\hypertarget{xbfilter_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbfilter.h File Reference}
+\label{xbfilter_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbfilter.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbfilter.h}}
diff --git a/docs/doxygen/latex/xbfilter_8h_source.tex b/docs/doxygen/latex/xbfilter_8h_source.tex
index 114fb1f..c0f8e55 100644
--- a/docs/doxygen/latex/xbfilter_8h_source.tex
+++ b/docs/doxygen/latex/xbfilter_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbfilter_8h_source}{}\doxysection{xbfilter.\+h}
-\label{xbfilter_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbfilter.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbfilter.h}}
+\label{xbfilter_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbfilter.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbfilter.h}}
\mbox{\hyperlink{xbfilter_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbfilter.h}}
diff --git a/docs/doxygen/latex/xbfuncs_8cpp.tex b/docs/doxygen/latex/xbfuncs_8cpp.tex
index 237da74..58aeb21 100644
--- a/docs/doxygen/latex/xbfuncs_8cpp.tex
+++ b/docs/doxygen/latex/xbfuncs_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbfuncs_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbfuncs.cpp File Reference}
-\label{xbfuncs_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbfuncs.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbfuncs.cpp}}
+\hypertarget{xbfuncs_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbfuncs.cpp File Reference}
+\label{xbfuncs_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbfuncs.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbfuncs.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbindex_8h.tex b/docs/doxygen/latex/xbindex_8h.tex
index 01bdb4f..8090a64 100644
--- a/docs/doxygen/latex/xbindex_8h.tex
+++ b/docs/doxygen/latex/xbindex_8h.tex
@@ -1,2 +1,2 @@
-\hypertarget{xbindex_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbindex.h File Reference}
-\label{xbindex_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbindex.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbindex.h}}
+\hypertarget{xbindex_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbindex.h File Reference}
+\label{xbindex_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbindex.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbindex.h}}
diff --git a/docs/doxygen/latex/xbindex_8h_source.tex b/docs/doxygen/latex/xbindex_8h_source.tex
index e104f5a..d234125 100644
--- a/docs/doxygen/latex/xbindex_8h_source.tex
+++ b/docs/doxygen/latex/xbindex_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbindex_8h_source}{}\doxysection{xbindex.\+h}
-\label{xbindex_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbindex.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbindex.h}}
+\label{xbindex_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbindex.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbindex.h}}
\mbox{\hyperlink{xbindex_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbindex.h}}
diff --git a/docs/doxygen/latex/xbinsert_8cpp.tex b/docs/doxygen/latex/xbinsert_8cpp.tex
index 394c391..ffb7fe6 100644
--- a/docs/doxygen/latex/xbinsert_8cpp.tex
+++ b/docs/doxygen/latex/xbinsert_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbinsert_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/sql/xbinsert.cpp File Reference}
-\label{xbinsert_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbinsert.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbinsert.cpp}}
+\hypertarget{xbinsert_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/sql/xbinsert.cpp File Reference}
+\label{xbinsert_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbinsert.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbinsert.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbixbase_8cpp.tex b/docs/doxygen/latex/xbixbase_8cpp.tex
index a2adcb8..f987129 100644
--- a/docs/doxygen/latex/xbixbase_8cpp.tex
+++ b/docs/doxygen/latex/xbixbase_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbixbase_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbixbase.cpp File Reference}
-\label{xbixbase_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbixbase.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbixbase.cpp}}
+\hypertarget{xbixbase_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbixbase.cpp File Reference}
+\label{xbixbase_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbixbase.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbixbase.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbixmdx_8cpp.tex b/docs/doxygen/latex/xbixmdx_8cpp.tex
index 71b27f8..07a7006 100644
--- a/docs/doxygen/latex/xbixmdx_8cpp.tex
+++ b/docs/doxygen/latex/xbixmdx_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbixmdx_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbixmdx.cpp File Reference}
-\label{xbixmdx_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbixmdx.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbixmdx.cpp}}
+\hypertarget{xbixmdx_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbixmdx.cpp File Reference}
+\label{xbixmdx_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbixmdx.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbixmdx.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbixndx_8cpp.tex b/docs/doxygen/latex/xbixndx_8cpp.tex
index 6d3f9d7..457c279 100644
--- a/docs/doxygen/latex/xbixndx_8cpp.tex
+++ b/docs/doxygen/latex/xbixndx_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbixndx_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbixndx.cpp File Reference}
-\label{xbixndx_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbixndx.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbixndx.cpp}}
+\hypertarget{xbixndx_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbixndx.cpp File Reference}
+\label{xbixndx_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbixndx.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbixndx.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xblnklst_8h.tex b/docs/doxygen/latex/xblnklst_8h.tex
index 27f761b..1734760 100644
--- a/docs/doxygen/latex/xblnklst_8h.tex
+++ b/docs/doxygen/latex/xblnklst_8h.tex
@@ -1,2 +1,2 @@
-\hypertarget{xblnklst_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xblnklst.h File Reference}
-\label{xblnklst_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnklst.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnklst.h}}
+\hypertarget{xblnklst_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xblnklst.h File Reference}
+\label{xblnklst_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnklst.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnklst.h}}
diff --git a/docs/doxygen/latex/xblnklst_8h_source.tex b/docs/doxygen/latex/xblnklst_8h_source.tex
index f3d8d4c..cbf9fa9 100644
--- a/docs/doxygen/latex/xblnklst_8h_source.tex
+++ b/docs/doxygen/latex/xblnklst_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xblnklst_8h_source}{}\doxysection{xblnklst.\+h}
-\label{xblnklst_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnklst.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnklst.h}}
+\label{xblnklst_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnklst.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnklst.h}}
\mbox{\hyperlink{xblnklst_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xblnklst.h}}
diff --git a/docs/doxygen/latex/xblnklstord_8h.tex b/docs/doxygen/latex/xblnklstord_8h.tex
index 665c61e..f6d60d1 100644
--- a/docs/doxygen/latex/xblnklstord_8h.tex
+++ b/docs/doxygen/latex/xblnklstord_8h.tex
@@ -1,2 +1,2 @@
-\hypertarget{xblnklstord_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xblnklstord.h File Reference}
-\label{xblnklstord_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnklstord.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnklstord.h}}
+\hypertarget{xblnklstord_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xblnklstord.h File Reference}
+\label{xblnklstord_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnklstord.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnklstord.h}}
diff --git a/docs/doxygen/latex/xblnklstord_8h_source.tex b/docs/doxygen/latex/xblnklstord_8h_source.tex
index 8d88a7a..5f4c000 100644
--- a/docs/doxygen/latex/xblnklstord_8h_source.tex
+++ b/docs/doxygen/latex/xblnklstord_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xblnklstord_8h_source}{}\doxysection{xblnklstord.\+h}
-\label{xblnklstord_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnklstord.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnklstord.h}}
+\label{xblnklstord_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnklstord.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnklstord.h}}
\mbox{\hyperlink{xblnklstord_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xblnklstord.h}}
diff --git a/docs/doxygen/latex/xblnknod_8h.tex b/docs/doxygen/latex/xblnknod_8h.tex
index 4db5c8b..9be4f78 100644
--- a/docs/doxygen/latex/xblnknod_8h.tex
+++ b/docs/doxygen/latex/xblnknod_8h.tex
@@ -1,2 +1,2 @@
-\hypertarget{xblnknod_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xblnknod.h File Reference}
-\label{xblnknod_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnknod.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnknod.h}}
+\hypertarget{xblnknod_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xblnknod.h File Reference}
+\label{xblnknod_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnknod.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnknod.h}}
diff --git a/docs/doxygen/latex/xblnknod_8h_source.tex b/docs/doxygen/latex/xblnknod_8h_source.tex
index 69a083a..73fc62f 100644
--- a/docs/doxygen/latex/xblnknod_8h_source.tex
+++ b/docs/doxygen/latex/xblnknod_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xblnknod_8h_source}{}\doxysection{xblnknod.\+h}
-\label{xblnknod_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnknod.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblnknod.h}}
+\label{xblnknod_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnknod.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblnknod.h}}
\mbox{\hyperlink{xblnknod_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xblnknod.h}}
diff --git a/docs/doxygen/latex/xblog_8cpp.tex b/docs/doxygen/latex/xblog_8cpp.tex
index 5fdc579..e0d9529 100644
--- a/docs/doxygen/latex/xblog_8cpp.tex
+++ b/docs/doxygen/latex/xblog_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xblog_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xblog.cpp File Reference}
-\label{xblog_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xblog.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xblog.cpp}}
+\hypertarget{xblog_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xblog.cpp File Reference}
+\label{xblog_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xblog.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xblog.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xblog_8h.tex b/docs/doxygen/latex/xblog_8h.tex
index e916153..28822ab 100644
--- a/docs/doxygen/latex/xblog_8h.tex
+++ b/docs/doxygen/latex/xblog_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xblog_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xblog.h File Reference}
-\label{xblog_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblog.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblog.h}}
+\hypertarget{xblog_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xblog.h File Reference}
+\label{xblog_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblog.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblog.h}}
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/xblog_8h_source.tex b/docs/doxygen/latex/xblog_8h_source.tex
index 9bdec27..b4f73ea 100644
--- a/docs/doxygen/latex/xblog_8h_source.tex
+++ b/docs/doxygen/latex/xblog_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xblog_8h_source}{}\doxysection{xblog.\+h}
-\label{xblog_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblog.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xblog.h}}
+\label{xblog_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblog.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xblog.h}}
\mbox{\hyperlink{xblog_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xblog.h}}
diff --git a/docs/doxygen/latex/xbmemo3_8cpp.tex b/docs/doxygen/latex/xbmemo3_8cpp.tex
index f829ce4..b7343e7 100644
--- a/docs/doxygen/latex/xbmemo3_8cpp.tex
+++ b/docs/doxygen/latex/xbmemo3_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbmemo3_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbmemo3.cpp File Reference}
-\label{xbmemo3_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbmemo3.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbmemo3.cpp}}
+\hypertarget{xbmemo3_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbmemo3.cpp File Reference}
+\label{xbmemo3_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbmemo3.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbmemo3.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbmemo4_8cpp.tex b/docs/doxygen/latex/xbmemo4_8cpp.tex
index ba7a70b..2e8bd11 100644
--- a/docs/doxygen/latex/xbmemo4_8cpp.tex
+++ b/docs/doxygen/latex/xbmemo4_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbmemo4_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbmemo4.cpp File Reference}
-\label{xbmemo4_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbmemo4.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbmemo4.cpp}}
+\hypertarget{xbmemo4_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbmemo4.cpp File Reference}
+\label{xbmemo4_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbmemo4.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbmemo4.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbmemo_8cpp.tex b/docs/doxygen/latex/xbmemo_8cpp.tex
index d3d2c67..902360b 100644
--- a/docs/doxygen/latex/xbmemo_8cpp.tex
+++ b/docs/doxygen/latex/xbmemo_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbmemo_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbmemo.cpp File Reference}
-\label{xbmemo_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbmemo.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbmemo.cpp}}
+\hypertarget{xbmemo_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbmemo.cpp File Reference}
+\label{xbmemo_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbmemo.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbmemo.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbmemo_8h.tex b/docs/doxygen/latex/xbmemo_8h.tex
index e1fff45..f3f9a26 100644
--- a/docs/doxygen/latex/xbmemo_8h.tex
+++ b/docs/doxygen/latex/xbmemo_8h.tex
@@ -1,2 +1,2 @@
-\hypertarget{xbmemo_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbmemo.h File Reference}
-\label{xbmemo_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbmemo.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbmemo.h}}
+\hypertarget{xbmemo_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbmemo.h File Reference}
+\label{xbmemo_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbmemo.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbmemo.h}}
diff --git a/docs/doxygen/latex/xbmemo_8h_source.tex b/docs/doxygen/latex/xbmemo_8h_source.tex
index a948e02..f9628c6 100644
--- a/docs/doxygen/latex/xbmemo_8h_source.tex
+++ b/docs/doxygen/latex/xbmemo_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbmemo_8h_source}{}\doxysection{xbmemo.\+h}
-\label{xbmemo_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbmemo.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbmemo.h}}
+\label{xbmemo_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbmemo.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbmemo.h}}
\mbox{\hyperlink{xbmemo_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbmemo.h}}
@@ -42,145 +42,146 @@
\DoxyCodeLine{59 }
\DoxyCodeLine{60 \textcolor{comment}{/* virtual methods */}}
\DoxyCodeLine{61 \textcolor{keyword}{virtual} \string~xbMemo();}
-\DoxyCodeLine{62 \textcolor{keyword}{virtual} xbInt16 Abort () = 0;}
-\DoxyCodeLine{63 \textcolor{keyword}{virtual} xbInt16 CloseMemoFile ();}
-\DoxyCodeLine{64 \textcolor{keyword}{virtual} xbInt16 Commit () = 0;}
-\DoxyCodeLine{65 }
-\DoxyCodeLine{66 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
-\DoxyCodeLine{67 \textcolor{keyword}{virtual} xbInt16 LockMemo ( xbInt16 iLockFunction );}
-\DoxyCodeLine{68 \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetMemoLocked () \textcolor{keyword}{const};}
-\DoxyCodeLine{69 \textcolor{preprocessor}{ \#endif}}
-\DoxyCodeLine{70 }
-\DoxyCodeLine{71 \textcolor{comment}{/* pure virtual methods */}}
-\DoxyCodeLine{72 \textcolor{keyword}{virtual} xbInt16 CreateMemoFile () = 0;}
-\DoxyCodeLine{73 }
-\DoxyCodeLine{74 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( xbInt16 iFieldNo, xbString \&sMemoData ) = 0;}
-\DoxyCodeLine{75 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen ) = 0;}
-\DoxyCodeLine{76 \textcolor{keyword}{virtual} xbInt16 OpenMemoFile () = 0;}
-\DoxyCodeLine{77 \textcolor{keyword}{virtual} xbInt16 GetMemoFileType();}
-\DoxyCodeLine{78 \textcolor{keyword}{virtual} xbInt16 PackMemo ( \textcolor{keywordtype}{void} (*memoStatusFunc)(xbUInt32 ulItemNum, xbUInt32 ulNumItems)) = 0;}
-\DoxyCodeLine{79 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField( xbInt16 iFieldNo, \textcolor{keyword}{const} xbString \&sMemoData ) = 0;}
+\DoxyCodeLine{62 \textcolor{keyword}{virtual} xbInt16 Abort () = 0;}
+\DoxyCodeLine{63 \textcolor{keyword}{virtual} xbInt16 CloseMemoFile ();}
+\DoxyCodeLine{64 \textcolor{keyword}{virtual} xbInt16 Commit () = 0;}
+\DoxyCodeLine{65 \textcolor{keyword}{virtual} xbInt16 CreateMemoFile () = 0;}
+\DoxyCodeLine{66 }
+\DoxyCodeLine{67 \textcolor{keyword}{virtual} xbInt16 DumpMemoHeader () = 0;}
+\DoxyCodeLine{68 }
+\DoxyCodeLine{69 }
+\DoxyCodeLine{70 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( xbInt16 iFieldNo, xbString \&sMemoData ) = 0;}
+\DoxyCodeLine{71 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen ( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen ) = 0;}
+\DoxyCodeLine{72 \textcolor{keyword}{virtual} xbInt16 OpenMemoFile () = 0;}
+\DoxyCodeLine{73 \textcolor{keyword}{virtual} xbInt16 GetMemoFileType ();}
+\DoxyCodeLine{74 \textcolor{keyword}{virtual} xbInt16 PackMemo ( \textcolor{keywordtype}{void} (*memoStatusFunc)(xbUInt32 ulItemNum, xbUInt32 ulNumItems)) = 0;}
+\DoxyCodeLine{75 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField ( xbInt16 iFieldNo, \textcolor{keyword}{const} xbString \&sMemoData ) = 0;}
+\DoxyCodeLine{76 }
+\DoxyCodeLine{77 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
+\DoxyCodeLine{78 \textcolor{keyword}{virtual} xbInt16 DumpMemoFreeChain() = 0;}
+\DoxyCodeLine{79 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{80 }
-\DoxyCodeLine{81 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
-\DoxyCodeLine{82 \textcolor{keyword}{virtual} xbInt16 DumpMemoFreeChain() = 0;}
-\DoxyCodeLine{83 \textcolor{keyword}{virtual} xbInt16 DumpMemoHeader () = 0;}
+\DoxyCodeLine{81 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
+\DoxyCodeLine{82 \textcolor{keyword}{virtual} xbInt16 LockMemo ( xbInt16 iLockFunction );}
+\DoxyCodeLine{83 \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetMemoLocked () \textcolor{keyword}{const};}
\DoxyCodeLine{84 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{85 }
-\DoxyCodeLine{86 \textcolor{comment}{// *********** FIXME *************}}
-\DoxyCodeLine{87 \textcolor{comment}{// next two methods should be protected but are called in the xb\_test\_xxxx programs testing routines}}
-\DoxyCodeLine{88 \textcolor{comment}{// so for now, they are kept as public}}
-\DoxyCodeLine{89 \textcolor{keyword}{virtual} xbInt16 CalcLastDataBlock ( xbUInt32 \&lLastDataBlock );}
-\DoxyCodeLine{90 \textcolor{keyword}{virtual} xbInt16 GetHdrNextBlock ( xbUInt32 \&ulBlockNo );}
-\DoxyCodeLine{91 }
-\DoxyCodeLine{92 \textcolor{keyword}{protected}:}
-\DoxyCodeLine{93 \textcolor{keyword}{friend} \textcolor{keyword}{class }\mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}};}
-\DoxyCodeLine{94 }
-\DoxyCodeLine{95 \textcolor{keyword}{virtual} xbInt16 ReadDbtHeader ( xbInt16 iOption ) = 0;}
-\DoxyCodeLine{96 \textcolor{keyword}{virtual} xbInt16 UpdateHeaderName () = 0;}
-\DoxyCodeLine{97 \textcolor{keyword}{virtual} xbInt16 UpdateHeadNextNode();}
-\DoxyCodeLine{98 \textcolor{keyword}{virtual} xbInt16 Zap () = 0;}
-\DoxyCodeLine{99 }
-\DoxyCodeLine{100 \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf; \textcolor{comment}{/* pointer to related dbf instance */}}
-\DoxyCodeLine{101 \textcolor{keywordtype}{char} cVersion; \textcolor{comment}{/* byte 16 off the header block, 0x03 for V3, version IV -\/ ? */}}
-\DoxyCodeLine{102 xbInt16 iMemoFileType; \textcolor{comment}{/* 3 = version III, 4 = version IV */}}
-\DoxyCodeLine{103 xbUInt32 ulHdrNextBlock; \textcolor{comment}{/* next available block , bytes 0-\/3 of the memo header */}}
-\DoxyCodeLine{104 \textcolor{keywordtype}{void} * mbb; \textcolor{comment}{/* memo block buffer */}}
-\DoxyCodeLine{105 }
-\DoxyCodeLine{106 }
-\DoxyCodeLine{107 \textcolor{keyword}{private}:}
+\DoxyCodeLine{86 }
+\DoxyCodeLine{87 }
+\DoxyCodeLine{88 \textcolor{comment}{// *********** FIXME *************}}
+\DoxyCodeLine{89 \textcolor{comment}{// next two methods should be protected but are called in the xb\_test\_xxxx programs testing routines}}
+\DoxyCodeLine{90 \textcolor{comment}{// so for now, they are kept as public}}
+\DoxyCodeLine{91 \textcolor{keyword}{virtual} xbInt16 CalcLastDataBlock ( xbUInt32 \&lLastDataBlock );}
+\DoxyCodeLine{92 \textcolor{keyword}{virtual} xbInt16 GetHdrNextBlock ( xbUInt32 \&ulBlockNo );}
+\DoxyCodeLine{93 }
+\DoxyCodeLine{94 \textcolor{keyword}{protected}:}
+\DoxyCodeLine{95 \textcolor{keyword}{friend} \textcolor{keyword}{class }\mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}};}
+\DoxyCodeLine{96 }
+\DoxyCodeLine{97 \textcolor{keyword}{virtual} xbInt16 ReadDbtHeader ( xbInt16 iOption ) = 0;}
+\DoxyCodeLine{98 \textcolor{keyword}{virtual} xbInt16 UpdateHeaderName () = 0;}
+\DoxyCodeLine{99 \textcolor{keyword}{virtual} xbInt16 UpdateHeadNextNode();}
+\DoxyCodeLine{100 \textcolor{keyword}{virtual} xbInt16 Zap () = 0;}
+\DoxyCodeLine{101 }
+\DoxyCodeLine{102 \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf; \textcolor{comment}{/* pointer to related dbf instance */}}
+\DoxyCodeLine{103 \textcolor{keywordtype}{char} cVersion; \textcolor{comment}{/* byte 16 off the header block, 0x03 for V3, version IV -\/ ? */}}
+\DoxyCodeLine{104 xbInt16 iMemoFileType; \textcolor{comment}{/* 3 = version III, 4 = version IV */}}
+\DoxyCodeLine{105 xbUInt32 ulHdrNextBlock; \textcolor{comment}{/* next available block , bytes 0-\/3 of the memo header */}}
+\DoxyCodeLine{106 \textcolor{keywordtype}{void} * mbb; \textcolor{comment}{/* memo block buffer */}}
+\DoxyCodeLine{107 }
\DoxyCodeLine{108 }
-\DoxyCodeLine{109 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
-\DoxyCodeLine{110 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bFileLocked; \textcolor{comment}{/* memo file locked */}}
-\DoxyCodeLine{111 \textcolor{preprocessor}{ \#endif}}
-\DoxyCodeLine{112 }
-\DoxyCodeLine{113 \};}
+\DoxyCodeLine{109 \textcolor{keyword}{private}:}
+\DoxyCodeLine{110 }
+\DoxyCodeLine{111 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
+\DoxyCodeLine{112 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bFileLocked; \textcolor{comment}{/* memo file locked */}}
+\DoxyCodeLine{113 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{114 }
-\DoxyCodeLine{115 }
+\DoxyCodeLine{115 \};}
\DoxyCodeLine{116 }
-\DoxyCodeLine{117 \textcolor{preprocessor}{\#ifdef XB\_DBF3\_SUPPORT}}
-\DoxyCodeLine{119 }
-\DoxyCodeLine{131 \textcolor{keyword}{class }XBDLLEXPORT xbMemoDbt3 : \textcolor{keyword}{public} xbMemo \{}
-\DoxyCodeLine{132 \textcolor{keyword}{public}:}
-\DoxyCodeLine{133 xbMemoDbt3( \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf, xbString \textcolor{keyword}{const} \&sFileName );}
-\DoxyCodeLine{134 \string~xbMemoDbt3();}
-\DoxyCodeLine{135 \textcolor{keyword}{virtual} xbInt16 Abort ();}
-\DoxyCodeLine{136 \textcolor{keyword}{virtual} xbInt16 Commit ();}
-\DoxyCodeLine{137 \textcolor{keyword}{virtual} xbInt16 CreateMemoFile ();}
-\DoxyCodeLine{138 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( xbInt16 iFieldNo, xbString \&sMemoData );}
-\DoxyCodeLine{139 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen );}
-\DoxyCodeLine{140 \textcolor{keyword}{virtual} xbInt16 OpenMemoFile ();}
-\DoxyCodeLine{141 \textcolor{keyword}{virtual} xbInt16 PackMemo ( \textcolor{keywordtype}{void} (*memoStatusFunc) (xbUInt32 ulItemNum, xbUInt32 ulNumItems));}
-\DoxyCodeLine{142 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField( xbInt16 iFieldNo, \textcolor{keyword}{const} xbString \&sMemoData );}
-\DoxyCodeLine{143 }
-\DoxyCodeLine{144 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
-\DoxyCodeLine{145 \textcolor{keyword}{virtual} xbInt16 DumpMemoFreeChain();}
-\DoxyCodeLine{146 \textcolor{keyword}{virtual} xbInt16 DumpMemoHeader ();}
-\DoxyCodeLine{147 \textcolor{preprocessor}{ \#endif}}
-\DoxyCodeLine{148 }
-\DoxyCodeLine{149 \textcolor{keyword}{protected}:}
-\DoxyCodeLine{150 \textcolor{keyword}{virtual} xbInt16 ReadDbtHeader( xbInt16 iOption );}
-\DoxyCodeLine{151 \textcolor{keyword}{virtual} xbInt16 UpdateHeaderName();}
-\DoxyCodeLine{152 \textcolor{keyword}{virtual} xbInt16 Zap();}
-\DoxyCodeLine{153 }
-\DoxyCodeLine{154 \textcolor{keyword}{private}:}
-\DoxyCodeLine{155 \};}
-\DoxyCodeLine{156 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{157 }
-\DoxyCodeLine{158 }
-\DoxyCodeLine{159 \textcolor{preprocessor}{\#ifdef XB\_DBF4\_SUPPORT}}
+\DoxyCodeLine{117 }
+\DoxyCodeLine{118 }
+\DoxyCodeLine{119 \textcolor{preprocessor}{\#ifdef XB\_DBF3\_SUPPORT}}
+\DoxyCodeLine{121 }
+\DoxyCodeLine{133 \textcolor{keyword}{class }XBDLLEXPORT xbMemoDbt3 : \textcolor{keyword}{public} xbMemo \{}
+\DoxyCodeLine{134 \textcolor{keyword}{public}:}
+\DoxyCodeLine{135 xbMemoDbt3( \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf, xbString \textcolor{keyword}{const} \&sFileName );}
+\DoxyCodeLine{136 \string~xbMemoDbt3();}
+\DoxyCodeLine{137 \textcolor{keyword}{virtual} xbInt16 Abort ();}
+\DoxyCodeLine{138 \textcolor{keyword}{virtual} xbInt16 Commit ();}
+\DoxyCodeLine{139 \textcolor{keyword}{virtual} xbInt16 CreateMemoFile ();}
+\DoxyCodeLine{140 \textcolor{keyword}{virtual} xbInt16 DumpMemoHeader ();}
+\DoxyCodeLine{141 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( xbInt16 iFieldNo, xbString \&sMemoData );}
+\DoxyCodeLine{142 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen );}
+\DoxyCodeLine{143 \textcolor{keyword}{virtual} xbInt16 OpenMemoFile ();}
+\DoxyCodeLine{144 \textcolor{keyword}{virtual} xbInt16 PackMemo ( \textcolor{keywordtype}{void} (*memoStatusFunc) (xbUInt32 ulItemNum, xbUInt32 ulNumItems));}
+\DoxyCodeLine{145 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField( xbInt16 iFieldNo, \textcolor{keyword}{const} xbString \&sMemoData );}
+\DoxyCodeLine{146 }
+\DoxyCodeLine{147 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
+\DoxyCodeLine{148 \textcolor{keyword}{virtual} xbInt16 DumpMemoFreeChain();}
+\DoxyCodeLine{149 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{150 }
+\DoxyCodeLine{151 \textcolor{keyword}{protected}:}
+\DoxyCodeLine{152 \textcolor{keyword}{virtual} xbInt16 ReadDbtHeader( xbInt16 iOption );}
+\DoxyCodeLine{153 \textcolor{keyword}{virtual} xbInt16 UpdateHeaderName();}
+\DoxyCodeLine{154 \textcolor{keyword}{virtual} xbInt16 Zap();}
+\DoxyCodeLine{155 }
+\DoxyCodeLine{156 \textcolor{keyword}{private}:}
+\DoxyCodeLine{157 \};}
+\DoxyCodeLine{158 \textcolor{preprocessor}{\#endif}}
+\DoxyCodeLine{159 }
\DoxyCodeLine{160 }
+\DoxyCodeLine{161 \textcolor{preprocessor}{\#ifdef XB\_DBF4\_SUPPORT}}
\DoxyCodeLine{162 }
-\DoxyCodeLine{172 \textcolor{keyword}{class }XBDLLEXPORT xbMemoDbt4 : \textcolor{keyword}{public} xbMemo \{}
-\DoxyCodeLine{173 \textcolor{keyword}{public}:}
-\DoxyCodeLine{174 xbMemoDbt4( \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf, xbString \textcolor{keyword}{const} \&sFileName );}
-\DoxyCodeLine{175 \string~xbMemoDbt4();}
-\DoxyCodeLine{176 \textcolor{keyword}{virtual} xbInt16 Abort ();}
-\DoxyCodeLine{177 \textcolor{keyword}{virtual} xbInt16 Commit ();}
-\DoxyCodeLine{178 \textcolor{keyword}{virtual} xbInt16 CreateMemoFile ();}
-\DoxyCodeLine{179 }
-\DoxyCodeLine{180 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( xbInt16 iFieldNo, xbString \&sMemoData );}
-\DoxyCodeLine{181 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen ( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen );}
-\DoxyCodeLine{182 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen ( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen, xbUInt32 \&lBlockNo );}
-\DoxyCodeLine{183 \textcolor{keyword}{virtual} xbInt16 OpenMemoFile ();}
-\DoxyCodeLine{184 \textcolor{keyword}{virtual} xbInt16 PackMemo ( \textcolor{keywordtype}{void} (*memoStatusFunc) (xbUInt32 ulItemNum, xbUInt32 ulNumItems));}
-\DoxyCodeLine{185 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField ( xbInt16 iFieldNo, \textcolor{keyword}{const} xbString \&sMemoData );}
-\DoxyCodeLine{186 }
-\DoxyCodeLine{187 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
-\DoxyCodeLine{188 \textcolor{keyword}{virtual} xbInt16 DumpMemoFreeChain ();}
-\DoxyCodeLine{189 \textcolor{keyword}{virtual} xbInt16 DumpMemoHeader ();}
-\DoxyCodeLine{190 \textcolor{keyword}{virtual} xbInt16 DumpMemoInternals ();}
-\DoxyCodeLine{191 \textcolor{keyword}{virtual} xbInt16 ReadFreeBlockHeader( xbUInt32 ulBlockNo, xbUInt32 \&ulNextBlock, xbUInt32 \&ulFreeBlockCnt );}
-\DoxyCodeLine{192 \textcolor{preprocessor}{ \#endif}}
-\DoxyCodeLine{193 }
-\DoxyCodeLine{194 \textcolor{keyword}{protected}:}
-\DoxyCodeLine{195 \textcolor{keyword}{virtual} xbInt16 FindBlockSetInChain( xbUInt32 ulBlocksNeeded, xbUInt32 \&ulLastDataBlock, xbUInt32 \&ulLocation, xbUInt32 \&ulPrevNode, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFound );}
-\DoxyCodeLine{196 \textcolor{keyword}{virtual} xbInt16 FreeMemoBlockChain( xbUInt32 ulBlockNo );}
-\DoxyCodeLine{197 \textcolor{keyword}{virtual} xbInt16 FreeMemoBlockChain( xbUInt32 ulBlockNo, xbUInt32 \&ulLastDataBlock );}
-\DoxyCodeLine{198 \textcolor{keyword}{virtual} xbInt16 GetBlockSetFromChain( xbUInt32 ulBlocksNeeded, xbUInt32 ulLocation, xbUInt32 ulPrevNode );}
-\DoxyCodeLine{199 \textcolor{keyword}{virtual} xbInt16 ReadDbtHeader( xbInt16 iOption );}
-\DoxyCodeLine{200 \textcolor{keyword}{virtual} xbInt16 ReadBlockHeader( xbUInt32 ulBlockNo, xbInt16 iOption );}
-\DoxyCodeLine{201 \textcolor{keyword}{virtual} xbInt16 UpdateHeaderName ();}
-\DoxyCodeLine{202 \textcolor{keyword}{virtual} xbInt16 WriteBlockHeader( xbUInt32 ulBlockNo, xbInt16 iOption );}
-\DoxyCodeLine{203 \textcolor{keyword}{virtual} xbInt16 Zap();}
-\DoxyCodeLine{204 }
-\DoxyCodeLine{205 \textcolor{keyword}{private}:}
-\DoxyCodeLine{206 xbString sDbfFileNameWoExt;}
-\DoxyCodeLine{207 xbUInt32 ulNextFreeBlock;}
-\DoxyCodeLine{208 xbUInt32 ulFreeBlockCnt;}
-\DoxyCodeLine{209 xbInt16 iField1;}
-\DoxyCodeLine{210 xbInt16 iStartPos;}
-\DoxyCodeLine{211 xbUInt32 ulFieldLen;}
-\DoxyCodeLine{212 }
-\DoxyCodeLine{213 xbLinkList llOldBlocks; \textcolor{comment}{// list of previously used memo blocks for field, used by Commit() / Abort()}}
-\DoxyCodeLine{214 xbLinkList llNewBlocks; \textcolor{comment}{// list of newly updated memo blocks for field, used by Commit() / Abort()}}
-\DoxyCodeLine{215 }
-\DoxyCodeLine{216 \};}
-\DoxyCodeLine{217 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{218 }
+\DoxyCodeLine{164 }
+\DoxyCodeLine{174 \textcolor{keyword}{class }XBDLLEXPORT xbMemoDbt4 : \textcolor{keyword}{public} xbMemo \{}
+\DoxyCodeLine{175 \textcolor{keyword}{public}:}
+\DoxyCodeLine{176 xbMemoDbt4( \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf, xbString \textcolor{keyword}{const} \&sFileName );}
+\DoxyCodeLine{177 \string~xbMemoDbt4();}
+\DoxyCodeLine{178 \textcolor{keyword}{virtual} xbInt16 Abort ();}
+\DoxyCodeLine{179 \textcolor{keyword}{virtual} xbInt16 Commit ();}
+\DoxyCodeLine{180 \textcolor{keyword}{virtual} xbInt16 CreateMemoFile ();}
+\DoxyCodeLine{181 \textcolor{keyword}{virtual} xbInt16 DumpMemoHeader ();}
+\DoxyCodeLine{182 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( xbInt16 iFieldNo, xbString \&sMemoData );}
+\DoxyCodeLine{183 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen ( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen );}
+\DoxyCodeLine{184 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen ( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen, xbUInt32 \&lBlockNo );}
+\DoxyCodeLine{185 \textcolor{keyword}{virtual} xbInt16 OpenMemoFile ();}
+\DoxyCodeLine{186 \textcolor{keyword}{virtual} xbInt16 PackMemo ( \textcolor{keywordtype}{void} (*memoStatusFunc) (xbUInt32 ulItemNum, xbUInt32 ulNumItems));}
+\DoxyCodeLine{187 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField ( xbInt16 iFieldNo, \textcolor{keyword}{const} xbString \&sMemoData );}
+\DoxyCodeLine{188 }
+\DoxyCodeLine{189 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
+\DoxyCodeLine{190 \textcolor{keyword}{virtual} xbInt16 DumpMemoFreeChain ();}
+\DoxyCodeLine{191 \textcolor{keyword}{virtual} xbInt16 DumpMemoInternals ();}
+\DoxyCodeLine{192 \textcolor{keyword}{virtual} xbInt16 ReadFreeBlockHeader( xbUInt32 ulBlockNo, xbUInt32 \&ulNextBlock, xbUInt32 \&ulFreeBlockCnt );}
+\DoxyCodeLine{193 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{194 }
+\DoxyCodeLine{195 \textcolor{keyword}{protected}:}
+\DoxyCodeLine{196 \textcolor{keyword}{virtual} xbInt16 FindBlockSetInChain( xbUInt32 ulBlocksNeeded, xbUInt32 \&ulLastDataBlock, xbUInt32 \&ulLocation, xbUInt32 \&ulPrevNode, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFound );}
+\DoxyCodeLine{197 \textcolor{keyword}{virtual} xbInt16 FreeMemoBlockChain( xbUInt32 ulBlockNo );}
+\DoxyCodeLine{198 \textcolor{keyword}{virtual} xbInt16 FreeMemoBlockChain( xbUInt32 ulBlockNo, xbUInt32 \&ulLastDataBlock );}
+\DoxyCodeLine{199 \textcolor{keyword}{virtual} xbInt16 GetBlockSetFromChain( xbUInt32 ulBlocksNeeded, xbUInt32 ulLocation, xbUInt32 ulPrevNode );}
+\DoxyCodeLine{200 \textcolor{keyword}{virtual} xbInt16 ReadDbtHeader( xbInt16 iOption );}
+\DoxyCodeLine{201 \textcolor{keyword}{virtual} xbInt16 ReadBlockHeader( xbUInt32 ulBlockNo, xbInt16 iOption );}
+\DoxyCodeLine{202 \textcolor{keyword}{virtual} xbInt16 UpdateHeaderName ();}
+\DoxyCodeLine{203 \textcolor{keyword}{virtual} xbInt16 WriteBlockHeader( xbUInt32 ulBlockNo, xbInt16 iOption );}
+\DoxyCodeLine{204 \textcolor{keyword}{virtual} xbInt16 Zap();}
+\DoxyCodeLine{205 }
+\DoxyCodeLine{206 \textcolor{keyword}{private}:}
+\DoxyCodeLine{207 xbString sDbfFileNameWoExt;}
+\DoxyCodeLine{208 xbUInt32 ulNextFreeBlock;}
+\DoxyCodeLine{209 xbUInt32 ulFreeBlockCnt;}
+\DoxyCodeLine{210 xbInt16 iField1;}
+\DoxyCodeLine{211 xbInt16 iStartPos;}
+\DoxyCodeLine{212 xbUInt32 ulFieldLen;}
+\DoxyCodeLine{213 }
+\DoxyCodeLine{214 xbLinkList llOldBlocks; \textcolor{comment}{// list of previously used memo blocks for field, used by Commit() / Abort()}}
+\DoxyCodeLine{215 xbLinkList llNewBlocks; \textcolor{comment}{// list of newly updated memo blocks for field, used by Commit() / Abort()}}
+\DoxyCodeLine{216 }
+\DoxyCodeLine{217 \};}
+\DoxyCodeLine{218 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{219 }
-\DoxyCodeLine{220 \} \textcolor{comment}{/* namespace xb */}}
-\DoxyCodeLine{221 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_MEMO\_SUPPORT */}\textcolor{preprocessor}{}}
-\DoxyCodeLine{222 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_MEMO\_H\_\_ */}\textcolor{preprocessor}{}}
-\DoxyCodeLine{223 }
+\DoxyCodeLine{220 }
+\DoxyCodeLine{221 \} \textcolor{comment}{/* namespace xb */}}
+\DoxyCodeLine{222 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_MEMO\_SUPPORT */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{223 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_MEMO\_H\_\_ */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{224 }
\end{DoxyCode}
diff --git a/docs/doxygen/latex/xbretcod_8h.tex b/docs/doxygen/latex/xbretcod_8h.tex
index d2ce8f0..9e36114 100644
--- a/docs/doxygen/latex/xbretcod_8h.tex
+++ b/docs/doxygen/latex/xbretcod_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbretcod_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbretcod.h File Reference}
-\label{xbretcod_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbretcod.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbretcod.h}}
+\hypertarget{xbretcod_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbretcod.h File Reference}
+\label{xbretcod_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbretcod.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbretcod.h}}
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/xbretcod_8h_source.tex b/docs/doxygen/latex/xbretcod_8h_source.tex
index 3d2ca9e..69b09ed 100644
--- a/docs/doxygen/latex/xbretcod_8h_source.tex
+++ b/docs/doxygen/latex/xbretcod_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbretcod_8h_source}{}\doxysection{xbretcod.\+h}
-\label{xbretcod_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbretcod.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbretcod.h}}
+\label{xbretcod_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbretcod.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbretcod.h}}
\mbox{\hyperlink{xbretcod_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbretcod.h}}
diff --git a/docs/doxygen/latex/xbset_8cpp.tex b/docs/doxygen/latex/xbset_8cpp.tex
index 2e325e7..4ee080e 100644
--- a/docs/doxygen/latex/xbset_8cpp.tex
+++ b/docs/doxygen/latex/xbset_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbset_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/sql/xbset.cpp File Reference}
-\label{xbset_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbset.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbset.cpp}}
+\hypertarget{xbset_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/sql/xbset.cpp File Reference}
+\label{xbset_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbset.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbset.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbsql_8cpp.tex b/docs/doxygen/latex/xbsql_8cpp.tex
index f488c9d..e70fabf 100644
--- a/docs/doxygen/latex/xbsql_8cpp.tex
+++ b/docs/doxygen/latex/xbsql_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbsql_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/sql/xbsql.cpp File Reference}
-\label{xbsql_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbsql.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/sql/xbsql.cpp}}
+\hypertarget{xbsql_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/sql/xbsql.cpp File Reference}
+\label{xbsql_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbsql.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/sql/xbsql.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbsql_8h.tex b/docs/doxygen/latex/xbsql_8h.tex
index e398353..df1b008 100644
--- a/docs/doxygen/latex/xbsql_8h.tex
+++ b/docs/doxygen/latex/xbsql_8h.tex
@@ -1,2 +1,2 @@
-\hypertarget{xbsql_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbsql.h File Reference}
-\label{xbsql_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbsql.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbsql.h}}
+\hypertarget{xbsql_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbsql.h File Reference}
+\label{xbsql_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbsql.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbsql.h}}
diff --git a/docs/doxygen/latex/xbsql_8h_source.tex b/docs/doxygen/latex/xbsql_8h_source.tex
index ae69922..f42eca3 100644
--- a/docs/doxygen/latex/xbsql_8h_source.tex
+++ b/docs/doxygen/latex/xbsql_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbsql_8h_source}{}\doxysection{xbsql.\+h}
-\label{xbsql_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbsql.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbsql.h}}
+\label{xbsql_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbsql.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbsql.h}}
\mbox{\hyperlink{xbsql_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbsql.h}}
@@ -46,30 +46,37 @@
\DoxyCodeLine{42 }
\DoxyCodeLine{43 \textcolor{keyword}{private}:}
\DoxyCodeLine{44 }
-\DoxyCodeLine{45 xbInt16 SqlCreateTable( \textcolor{keyword}{const} xbString \&sCmdLine );}
-\DoxyCodeLine{46 xbInt16 SqlCreateIndex( \textcolor{keyword}{const} xbString \&sCmdLine );}
-\DoxyCodeLine{47 }
-\DoxyCodeLine{48 xbInt16 SqlDropIndex( \textcolor{keyword}{const} xbString \&sCmdLine );}
-\DoxyCodeLine{49 xbInt16 SqlDropTable( \textcolor{keyword}{const} xbString \&sCmdLine );}
+\DoxyCodeLine{45 xbInt16 SqlAlterTable( \textcolor{keyword}{const} xbString \&sCmdLine );}
+\DoxyCodeLine{46 }
+\DoxyCodeLine{47 xbInt16 SqlCreateTable( \textcolor{keyword}{const} xbString \&sCmdLine );}
+\DoxyCodeLine{48 }
+\DoxyCodeLine{49 xbInt16 SqlDelete( \textcolor{keyword}{const} xbString \&sCmdLine );}
\DoxyCodeLine{50 }
-\DoxyCodeLine{51 }
-\DoxyCodeLine{52 \textcolor{comment}{// xbInt16 SqlCreateView( const xbString \&sCmdLine );}}
-\DoxyCodeLine{53 \textcolor{comment}{// xbInt16 SqlDropView( const xbString \&sCmdLine );}}
-\DoxyCodeLine{54 \textcolor{comment}{// xbInt16 SqlUpdate( const xbString \&sCmdLine );}}
-\DoxyCodeLine{55 \textcolor{comment}{// xbInt16 SqlSelect( const xbString \&sCmdLine );}}
-\DoxyCodeLine{56 }
-\DoxyCodeLine{57 \textcolor{keywordtype}{void} SqlHelp() \textcolor{keyword}{const};}
-\DoxyCodeLine{58 xbInt16 SqlInsert( \textcolor{keyword}{const} xbString \&sCmLine );}
-\DoxyCodeLine{59 xbInt16 SqlSet( \textcolor{keyword}{const} xbString \&sCmdLine );}
-\DoxyCodeLine{60 xbInt16 SqlUse( \textcolor{keyword}{const} xbString \&sCmdLine );}
-\DoxyCodeLine{61 }
-\DoxyCodeLine{62 \mbox{\hyperlink{namespacexb_a97858ddeb1c4b0100f3edc1a46d3a8b0}{xbXBase}} *xbase;}
-\DoxyCodeLine{63 xbUda uda;}
-\DoxyCodeLine{64 }
-\DoxyCodeLine{65 \};}
-\DoxyCodeLine{66 }
-\DoxyCodeLine{67 \} \textcolor{comment}{/* namespace xb */}}
-\DoxyCodeLine{68 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_SQL\_SUPPORT */}\textcolor{preprocessor}{}}
-\DoxyCodeLine{69 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_XBSQL\_H\_\_ */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{51 xbInt16 SqlDropTable( \textcolor{keyword}{const} xbString \&sCmdLine );}
+\DoxyCodeLine{52 }
+\DoxyCodeLine{53 }
+\DoxyCodeLine{54 \textcolor{preprocessor}{ \#ifdef XB\_INDEX\_SUPPORT}}
+\DoxyCodeLine{55 xbInt16 SqlCreateIndex( \textcolor{keyword}{const} xbString \&sCmdLine );}
+\DoxyCodeLine{56 xbInt16 SqlDropIndex( \textcolor{keyword}{const} xbString \&sCmdLine );}
+\DoxyCodeLine{57 \textcolor{preprocessor}{ \#endif }\textcolor{comment}{// XB\_INDEX\_SUPPORT}}
+\DoxyCodeLine{58 }
+\DoxyCodeLine{59 \textcolor{comment}{// xbInt16 SqlCreateView( const xbString \&sCmdLine );}}
+\DoxyCodeLine{60 \textcolor{comment}{// xbInt16 SqlDropView( const xbString \&sCmdLine );}}
+\DoxyCodeLine{61 \textcolor{comment}{// xbInt16 SqlUpdate( const xbString \&sCmdLine );}}
+\DoxyCodeLine{62 \textcolor{comment}{// xbInt16 SqlSelect( const xbString \&sCmdLine );}}
+\DoxyCodeLine{63 }
+\DoxyCodeLine{64 \textcolor{keywordtype}{void} SqlHelp() \textcolor{keyword}{const};}
+\DoxyCodeLine{65 xbInt16 SqlInsert( \textcolor{keyword}{const} xbString \&sCmLine );}
+\DoxyCodeLine{66 xbInt16 SqlSet( \textcolor{keyword}{const} xbString \&sCmdLine );}
+\DoxyCodeLine{67 xbInt16 SqlUse( \textcolor{keyword}{const} xbString \&sCmdLine );}
+\DoxyCodeLine{68 }
+\DoxyCodeLine{69 \mbox{\hyperlink{namespacexb_a97858ddeb1c4b0100f3edc1a46d3a8b0}{xbXBase}} *xbase;}
+\DoxyCodeLine{70 xbUda uda;}
+\DoxyCodeLine{71 }
+\DoxyCodeLine{72 \};}
+\DoxyCodeLine{73 }
+\DoxyCodeLine{74 \} \textcolor{comment}{/* namespace xb */}}
+\DoxyCodeLine{75 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_SQL\_SUPPORT */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{76 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_XBSQL\_H\_\_ */}\textcolor{preprocessor}{}}
\end{DoxyCode}
diff --git a/docs/doxygen/latex/xbssv_8cpp.tex b/docs/doxygen/latex/xbssv_8cpp.tex
index 9f23133..f5492e3 100644
--- a/docs/doxygen/latex/xbssv_8cpp.tex
+++ b/docs/doxygen/latex/xbssv_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbssv_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbssv.cpp File Reference}
-\label{xbssv_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbssv.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbssv.cpp}}
+\hypertarget{xbssv_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbssv.cpp File Reference}
+\label{xbssv_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbssv.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbssv.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xbssv_8h.tex b/docs/doxygen/latex/xbssv_8h.tex
index cfffb14..673bd81 100644
--- a/docs/doxygen/latex/xbssv_8h.tex
+++ b/docs/doxygen/latex/xbssv_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbssv_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbssv.h File Reference}
-\label{xbssv_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbssv.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbssv.h}}
+\hypertarget{xbssv_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbssv.h File Reference}
+\label{xbssv_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbssv.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbssv.h}}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/xbssv_8h_source.tex b/docs/doxygen/latex/xbssv_8h_source.tex
index f0a7055..5a0f66b 100644
--- a/docs/doxygen/latex/xbssv_8h_source.tex
+++ b/docs/doxygen/latex/xbssv_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbssv_8h_source}{}\doxysection{xbssv.\+h}
-\label{xbssv_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbssv.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbssv.h}}
+\label{xbssv_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbssv.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbssv.h}}
\mbox{\hyperlink{xbssv_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbssv.h}}
@@ -61,110 +61,107 @@
\DoxyCodeLine{70 \textcolor{keywordtype}{void} SetDataDirectory ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sDataDirectory );}
\DoxyCodeLine{71 \textcolor{keywordtype}{void} SetDefaultDateFormat ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sDefaultDateFormat );}
\DoxyCodeLine{72 }
-\DoxyCodeLine{73 }
-\DoxyCodeLine{74 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} BitSet ( \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c, xbInt16 iBitNo ) \textcolor{keyword}{const};}
-\DoxyCodeLine{75 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
-\DoxyCodeLine{76 \textcolor{keywordtype}{void} BitDump ( \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c ) \textcolor{keyword}{const};}
-\DoxyCodeLine{77 \textcolor{keywordtype}{void} BitDump ( \textcolor{keywordtype}{char} c ) \textcolor{keyword}{const};}
-\DoxyCodeLine{78 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{73 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} BitSet ( \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c, xbInt16 iBitNo ) \textcolor{keyword}{const};}
+\DoxyCodeLine{74 \textcolor{keywordtype}{void} BitDump ( \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c ) \textcolor{keyword}{const};}
+\DoxyCodeLine{75 \textcolor{keywordtype}{void} BitDump ( \textcolor{keywordtype}{char} c ) \textcolor{keyword}{const};}
+\DoxyCodeLine{76 }
+\DoxyCodeLine{77 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetDefaultAutoCommit () \textcolor{keyword}{const};}
+\DoxyCodeLine{78 \textcolor{keywordtype}{void} SetDefaultAutoCommit ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bDefaultAutoCommit );}
\DoxyCodeLine{79 }
-\DoxyCodeLine{80 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetDefaultAutoCommit () \textcolor{keyword}{const};}
-\DoxyCodeLine{81 \textcolor{keywordtype}{void} SetDefaultAutoCommit ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bDefaultAutoCommit );}
-\DoxyCodeLine{82 }
-\DoxyCodeLine{83 \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& GetDefaultLogDirectory () \textcolor{keyword}{const};}
-\DoxyCodeLine{84 \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& GetDefaultLogFileName () \textcolor{keyword}{const};}
-\DoxyCodeLine{85 \textcolor{keywordtype}{void} SetDefaultLogDirectory ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sDefaultLogDirectory );}
+\DoxyCodeLine{80 \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& GetDefaultLogDirectory () \textcolor{keyword}{const};}
+\DoxyCodeLine{81 \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& GetDefaultLogFileName () \textcolor{keyword}{const};}
+\DoxyCodeLine{82 \textcolor{keywordtype}{void} SetDefaultLogDirectory ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sDefaultLogDirectory );}
+\DoxyCodeLine{83 }
+\DoxyCodeLine{84 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetMultiUser () \textcolor{keyword}{const};}
+\DoxyCodeLine{85 \textcolor{keywordtype}{void} SetMultiUser ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bMultiUser );}
\DoxyCodeLine{86 }
-\DoxyCodeLine{87 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetMultiUser () \textcolor{keyword}{const};}
-\DoxyCodeLine{88 \textcolor{keywordtype}{void} SetMultiUser ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bMultiUser );}
-\DoxyCodeLine{89 }
-\DoxyCodeLine{90 \textcolor{preprocessor}{ \#if defined (XB\_NDX\_SUPPORT) || defined (XB\_MDX\_SUPPORT)}}
-\DoxyCodeLine{91 xbInt16 GetUniqueKeyOpt () \textcolor{keyword}{const};}
-\DoxyCodeLine{92 xbInt16 SetUniqueKeyOpt ( xbInt16 iUniqueKeyOpt );}
-\DoxyCodeLine{93 \textcolor{preprocessor}{ \#endif}}
-\DoxyCodeLine{94 }
-\DoxyCodeLine{95 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
-\DoxyCodeLine{96 xbInt16 GetDefaultLockRetries () \textcolor{keyword}{const};}
-\DoxyCodeLine{97 \textcolor{keywordtype}{void} SetDefaultLockRetries ( xbInt16 iRetryCount );}
-\DoxyCodeLine{98 xbInt32 GetDefaultLockWait () \textcolor{keyword}{const};}
-\DoxyCodeLine{99 \textcolor{keywordtype}{void} SetDefaultLockWait ( xbInt32 lRetryWait );}
-\DoxyCodeLine{100 xbInt16 GetDefaultLockFlavor () \textcolor{keyword}{const};}
-\DoxyCodeLine{101 \textcolor{keywordtype}{void} SetDefaultLockFlavor ( xbInt16 iLockFlavor );}
-\DoxyCodeLine{102 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetDefaultAutoLock () \textcolor{keyword}{const};}
-\DoxyCodeLine{103 \textcolor{keywordtype}{void} SetDefaultAutoLock ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bAutoLock );}
-\DoxyCodeLine{104 \textcolor{keywordtype}{void} EnableDefaultAutoLock ();}
-\DoxyCodeLine{105 \textcolor{keywordtype}{void} DisableDefaultAutoLock ();}
-\DoxyCodeLine{106 \textcolor{preprocessor}{ \#endif}}
-\DoxyCodeLine{107 }
-\DoxyCodeLine{108 \textcolor{preprocessor}{ \#ifdef XB\_MDX\_SUPPORT}}
-\DoxyCodeLine{109 xbInt16 GetCreateMdxBlockSize() \textcolor{keyword}{const};}
-\DoxyCodeLine{110 xbInt16 SetCreateMdxBlockSize( xbInt16 ulBlockSize );}
-\DoxyCodeLine{111 \textcolor{preprocessor}{ \#endif}}
-\DoxyCodeLine{112 }
-\DoxyCodeLine{113 \textcolor{keyword}{protected}:}
-\DoxyCodeLine{114 }
-\DoxyCodeLine{115 \textcolor{keywordtype}{void} SetEndianType ();}
+\DoxyCodeLine{87 \textcolor{preprocessor}{ \#if defined (XB\_NDX\_SUPPORT) || defined (XB\_MDX\_SUPPORT)}}
+\DoxyCodeLine{88 xbInt16 GetUniqueKeyOpt () \textcolor{keyword}{const};}
+\DoxyCodeLine{89 xbInt16 SetUniqueKeyOpt ( xbInt16 iUniqueKeyOpt );}
+\DoxyCodeLine{90 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{91 }
+\DoxyCodeLine{92 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
+\DoxyCodeLine{93 xbInt16 GetDefaultLockRetries () \textcolor{keyword}{const};}
+\DoxyCodeLine{94 \textcolor{keywordtype}{void} SetDefaultLockRetries ( xbInt16 iRetryCount );}
+\DoxyCodeLine{95 xbInt32 GetDefaultLockWait () \textcolor{keyword}{const};}
+\DoxyCodeLine{96 \textcolor{keywordtype}{void} SetDefaultLockWait ( xbInt32 lRetryWait );}
+\DoxyCodeLine{97 xbInt16 GetDefaultLockFlavor () \textcolor{keyword}{const};}
+\DoxyCodeLine{98 \textcolor{keywordtype}{void} SetDefaultLockFlavor ( xbInt16 iLockFlavor );}
+\DoxyCodeLine{99 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetDefaultAutoLock () \textcolor{keyword}{const};}
+\DoxyCodeLine{100 \textcolor{keywordtype}{void} SetDefaultAutoLock ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bAutoLock );}
+\DoxyCodeLine{101 \textcolor{keywordtype}{void} EnableDefaultAutoLock ();}
+\DoxyCodeLine{102 \textcolor{keywordtype}{void} DisableDefaultAutoLock ();}
+\DoxyCodeLine{103 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{104 }
+\DoxyCodeLine{105 \textcolor{preprocessor}{ \#ifdef XB\_MDX\_SUPPORT}}
+\DoxyCodeLine{106 xbInt16 GetCreateMdxBlockSize() \textcolor{keyword}{const};}
+\DoxyCodeLine{107 xbInt16 SetCreateMdxBlockSize( xbInt16 ulBlockSize );}
+\DoxyCodeLine{108 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{109 }
+\DoxyCodeLine{110 \textcolor{keyword}{protected}:}
+\DoxyCodeLine{111 }
+\DoxyCodeLine{112 \textcolor{keywordtype}{void} SetEndianType ();}
+\DoxyCodeLine{113 }
+\DoxyCodeLine{114 \textcolor{keyword}{static} xbInt16 \mbox{\hyperlink{classxb_1_1xbSsv_a5849e813f5e8e1cd180f0366637adbf3}{iEndianType}}; \textcolor{comment}{// B=Big Endian L=Little Endian}}
+\DoxyCodeLine{115 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \mbox{\hyperlink{classxb_1_1xbSsv_a9dec3164c3b264882df634915ecf21da}{sNullString}}; \textcolor{comment}{// Null String}}
\DoxyCodeLine{116 }
-\DoxyCodeLine{117 \textcolor{keyword}{static} xbInt16 \mbox{\hyperlink{classxb_1_1xbSsv_a5849e813f5e8e1cd180f0366637adbf3}{iEndianType}}; \textcolor{comment}{// B=Big Endian L=Little Endian}}
-\DoxyCodeLine{118 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \mbox{\hyperlink{classxb_1_1xbSsv_a9dec3164c3b264882df634915ecf21da}{sNullString}}; \textcolor{comment}{// Null String}}
+\DoxyCodeLine{117 }
+\DoxyCodeLine{118 \textcolor{keyword}{private}:}
\DoxyCodeLine{119 }
-\DoxyCodeLine{120 }
-\DoxyCodeLine{121 \textcolor{keyword}{private}:}
+\DoxyCodeLine{120 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDefaultDateFormat;}
+\DoxyCodeLine{121 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDataDirectory; \textcolor{comment}{//Data file directory}}
\DoxyCodeLine{122 }
-\DoxyCodeLine{123 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDefaultDateFormat;}
-\DoxyCodeLine{124 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDataDirectory; \textcolor{comment}{//Data file directory}}
-\DoxyCodeLine{125 }
-\DoxyCodeLine{126 \textcolor{preprocessor}{ \#ifdef XB\_LOGGING\_SUPPORT}}
-\DoxyCodeLine{127 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDefaultLogDirectory; \textcolor{comment}{//Default location to store log files}}
-\DoxyCodeLine{128 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDefaultLogFileName; \textcolor{comment}{//Default LogFileName}}
-\DoxyCodeLine{129 \textcolor{preprocessor}{ \#endif}}
-\DoxyCodeLine{130 }
-\DoxyCodeLine{131 \textcolor{keyword}{static} xbInt16 iDefaultFileVersion; \textcolor{comment}{// 3 = DBase 3}}
-\DoxyCodeLine{132 \textcolor{comment}{// 4 = DBase 4}}
-\DoxyCodeLine{133 \textcolor{comment}{// default version used in CreateTable command}}
-\DoxyCodeLine{134 \textcolor{comment}{// can be over ridden at the Xbase level, or table level}}
-\DoxyCodeLine{135 \textcolor{comment}{// Different versions can be open simultaneously}}
-\DoxyCodeLine{136 }
-\DoxyCodeLine{137 \textcolor{keyword}{static} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bDefaultAutoCommit; \textcolor{comment}{// Default dbf auto commit switch}}
-\DoxyCodeLine{138 }
-\DoxyCodeLine{139 \textcolor{keyword}{static} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bMultiUser; \textcolor{comment}{// True if multi user mode is turned on}}
-\DoxyCodeLine{140 \textcolor{comment}{// Turn this off for better performance in single user mode}}
-\DoxyCodeLine{141 \textcolor{comment}{// This needs to be turned on or off before any data tables are opened}}
-\DoxyCodeLine{142 \textcolor{comment}{// turning this on after tables are opened, can result in out of date}}
-\DoxyCodeLine{143 \textcolor{comment}{// file buffers if multiple users are sharing the files}}
-\DoxyCodeLine{144 }
-\DoxyCodeLine{145 \textcolor{preprocessor}{\#ifdef XB\_LOCKING\_SUPPORT}}
-\DoxyCodeLine{146 \textcolor{keyword}{static} xbInt32 lDefaultLockWait; \textcolor{comment}{// Number of milliseconds between lock retries}}
-\DoxyCodeLine{147 \textcolor{keyword}{static} xbInt16 iDefaultLockRetries; \textcolor{comment}{// Number of times to retry a lock before conceding}}
-\DoxyCodeLine{148 \textcolor{keyword}{static} xbInt16 bDefaultAutoLock; \textcolor{comment}{// Autolocking enabled?}}
-\DoxyCodeLine{149 \textcolor{keyword}{static} xbInt16 iDefaultLockFlavor; \textcolor{comment}{// 1 = DBase}}
-\DoxyCodeLine{150 \textcolor{comment}{// 2 = Clipper -\/ not developed yet}}
-\DoxyCodeLine{151 \textcolor{comment}{// 3 = FoxPro -\/ not developed yet}}
-\DoxyCodeLine{152 \textcolor{comment}{// 9 = Xbase64 -\/ not developed yet}}
-\DoxyCodeLine{153 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{154 }
+\DoxyCodeLine{123 \textcolor{preprocessor}{ \#ifdef XB\_LOGGING\_SUPPORT}}
+\DoxyCodeLine{124 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDefaultLogDirectory; \textcolor{comment}{//Default location to store log files}}
+\DoxyCodeLine{125 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDefaultLogFileName; \textcolor{comment}{//Default LogFileName}}
+\DoxyCodeLine{126 \textcolor{preprocessor}{ \#endif}}
+\DoxyCodeLine{127 }
+\DoxyCodeLine{128 \textcolor{keyword}{static} xbInt16 iDefaultFileVersion; \textcolor{comment}{// 3 = DBase 3}}
+\DoxyCodeLine{129 \textcolor{comment}{// 4 = DBase 4}}
+\DoxyCodeLine{130 \textcolor{comment}{// default version used in CreateTable command}}
+\DoxyCodeLine{131 \textcolor{comment}{// can be over ridden at the Xbase level, or table level}}
+\DoxyCodeLine{132 \textcolor{comment}{// Different versions can be open simultaneously}}
+\DoxyCodeLine{133 }
+\DoxyCodeLine{134 \textcolor{keyword}{static} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bDefaultAutoCommit; \textcolor{comment}{// Default dbf auto commit switch}}
+\DoxyCodeLine{135 }
+\DoxyCodeLine{136 \textcolor{keyword}{static} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bMultiUser; \textcolor{comment}{// True if multi user mode is turned on}}
+\DoxyCodeLine{137 \textcolor{comment}{// Turn this off for better performance in single user mode}}
+\DoxyCodeLine{138 \textcolor{comment}{// This needs to be turned on or off before any data tables are opened}}
+\DoxyCodeLine{139 \textcolor{comment}{// turning this on after tables are opened, can result in out of date}}
+\DoxyCodeLine{140 \textcolor{comment}{// file buffers if multiple users are sharing the files}}
+\DoxyCodeLine{141 }
+\DoxyCodeLine{142 \textcolor{preprocessor}{\#ifdef XB\_LOCKING\_SUPPORT}}
+\DoxyCodeLine{143 \textcolor{keyword}{static} xbInt32 lDefaultLockWait; \textcolor{comment}{// Number of milliseconds between lock retries}}
+\DoxyCodeLine{144 \textcolor{keyword}{static} xbInt16 iDefaultLockRetries; \textcolor{comment}{// Number of times to retry a lock before conceding}}
+\DoxyCodeLine{145 \textcolor{keyword}{static} xbInt16 bDefaultAutoLock; \textcolor{comment}{// Autolocking enabled?}}
+\DoxyCodeLine{146 \textcolor{keyword}{static} xbInt16 iDefaultLockFlavor; \textcolor{comment}{// 1 = DBase}}
+\DoxyCodeLine{147 \textcolor{comment}{// 2 = Clipper -\/ not developed yet}}
+\DoxyCodeLine{148 \textcolor{comment}{// 3 = FoxPro -\/ not developed yet}}
+\DoxyCodeLine{149 \textcolor{comment}{// 9 = Xbase64 -\/ not developed yet}}
+\DoxyCodeLine{150 \textcolor{preprocessor}{\#endif}}
+\DoxyCodeLine{151 }
+\DoxyCodeLine{152 }
+\DoxyCodeLine{153 }
+\DoxyCodeLine{154 \textcolor{preprocessor}{\#if defined (XB\_NDX\_SUPPORT) || defined (XB\_MDX\_SUPPORT)}}
\DoxyCodeLine{155 }
-\DoxyCodeLine{156 }
-\DoxyCodeLine{157 \textcolor{preprocessor}{\#if defined (XB\_NDX\_SUPPORT) || defined (XB\_MDX\_SUPPORT)}}
-\DoxyCodeLine{158 }
-\DoxyCodeLine{159 \textcolor{keyword}{static} xbInt16 iUniqueKeyOpt;}
-\DoxyCodeLine{160 }
-\DoxyCodeLine{161 \textcolor{comment}{// is one of:}}
-\DoxyCodeLine{162 \textcolor{comment}{// XB\_HALT\_ON\_DUPKEY}}
-\DoxyCodeLine{163 \textcolor{comment}{// XB\_EMULATE\_DBASE}}
+\DoxyCodeLine{156 \textcolor{keyword}{static} xbInt16 iUniqueKeyOpt;}
+\DoxyCodeLine{157 }
+\DoxyCodeLine{158 \textcolor{comment}{// is one of:}}
+\DoxyCodeLine{159 \textcolor{comment}{// XB\_HALT\_ON\_DUPKEY}}
+\DoxyCodeLine{160 \textcolor{comment}{// XB\_EMULATE\_DBASE}}
+\DoxyCodeLine{161 }
+\DoxyCodeLine{162 \textcolor{preprocessor}{\#endif}}
+\DoxyCodeLine{163 }
\DoxyCodeLine{164 }
-\DoxyCodeLine{165 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{166 }
-\DoxyCodeLine{167 }
-\DoxyCodeLine{168 \textcolor{preprocessor}{\#ifdef XB\_MDX\_SUPPORT}}
-\DoxyCodeLine{169 \textcolor{keyword}{static} xbInt16 iCreateMdxBlockSize; \textcolor{comment}{// System level Mdx Block Size}}
-\DoxyCodeLine{170 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// XB\_MDX\_SUPPORT}}
-\DoxyCodeLine{171 }
+\DoxyCodeLine{165 \textcolor{preprocessor}{\#ifdef XB\_MDX\_SUPPORT}}
+\DoxyCodeLine{166 \textcolor{keyword}{static} xbInt16 iCreateMdxBlockSize; \textcolor{comment}{// System level Mdx Block Size}}
+\DoxyCodeLine{167 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// XB\_MDX\_SUPPORT}}
+\DoxyCodeLine{168 }
+\DoxyCodeLine{169 }
+\DoxyCodeLine{170 }
+\DoxyCodeLine{171 \};}
\DoxyCodeLine{172 }
-\DoxyCodeLine{173 }
-\DoxyCodeLine{174 \};}
-\DoxyCodeLine{175 }
-\DoxyCodeLine{176 \} \textcolor{comment}{/* namespace xb */}}
-\DoxyCodeLine{177 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_XBSSV\_H\_\_ */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{173 \} \textcolor{comment}{/* namespace xb */}}
+\DoxyCodeLine{174 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_XBSSV\_H\_\_ */}\textcolor{preprocessor}{}}
\end{DoxyCode}
diff --git a/docs/doxygen/latex/xbstring_8cpp.tex b/docs/doxygen/latex/xbstring_8cpp.tex
index 852e57f..0405be8 100644
--- a/docs/doxygen/latex/xbstring_8cpp.tex
+++ b/docs/doxygen/latex/xbstring_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbstring_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbstring.cpp File Reference}
-\label{xbstring_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbstring.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbstring.cpp}}
+\hypertarget{xbstring_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbstring.cpp File Reference}
+\label{xbstring_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbstring.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbstring.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xbstring_8h.tex b/docs/doxygen/latex/xbstring_8h.tex
index 6e8f52b..5fe0d07 100644
--- a/docs/doxygen/latex/xbstring_8h.tex
+++ b/docs/doxygen/latex/xbstring_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbstring_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbstring.h File Reference}
-\label{xbstring_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbstring.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbstring.h}}
+\hypertarget{xbstring_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbstring.h File Reference}
+\label{xbstring_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbstring.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbstring.h}}
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$iostream$>$}\newline
\doxysubsection*{Data Structures}
diff --git a/docs/doxygen/latex/xbstring_8h_source.tex b/docs/doxygen/latex/xbstring_8h_source.tex
index b87d4d6..9f6ce21 100644
--- a/docs/doxygen/latex/xbstring_8h_source.tex
+++ b/docs/doxygen/latex/xbstring_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbstring_8h_source}{}\doxysection{xbstring.\+h}
-\label{xbstring_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbstring.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbstring.h}}
+\label{xbstring_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbstring.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbstring.h}}
\mbox{\hyperlink{xbstring_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbstring.h}}
@@ -79,8 +79,8 @@
\DoxyCodeLine{95 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Append(\textcolor{keywordtype}{char} c);}
\DoxyCodeLine{96 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Assign(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *srcStr, xbUInt32 lStartPos, xbUInt32 lCopyLen );}
\DoxyCodeLine{97 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Assign(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *srcStr, xbUInt32 lStartPos );}
-\DoxyCodeLine{98 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Assign(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s, xbUInt32 pos, xbUInt32 n );}
-\DoxyCodeLine{99 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Assign(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s, xbUInt32 n );}
+\DoxyCodeLine{98 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Assign(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s, xbUInt32 pos, xbUInt32 lCopyLen );}
+\DoxyCodeLine{99 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Assign(\textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s, xbUInt32 lCopyLen );}
\DoxyCodeLine{100 }
\DoxyCodeLine{101 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} Copy() \textcolor{keyword}{const};}
\DoxyCodeLine{102 xbUInt32 CountChar( \textcolor{keywordtype}{char} c ) \textcolor{keyword}{const};}
@@ -120,50 +120,51 @@
\DoxyCodeLine{136 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&PutAt(xbUInt32 ulPos, \textcolor{keywordtype}{char} c);}
\DoxyCodeLine{137 }
\DoxyCodeLine{138 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Remove( xbUInt32 ulPos, xbUInt32 ulN );}
-\DoxyCodeLine{139 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Resize( xbUInt32 lSize );}
-\DoxyCodeLine{140 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Rtrim();}
-\DoxyCodeLine{141 }
-\DoxyCodeLine{142 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Set( \textcolor{keyword}{const} \textcolor{keywordtype}{char} *s );}
-\DoxyCodeLine{143 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Set( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s );}
-\DoxyCodeLine{144 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Set( \textcolor{keyword}{const} \textcolor{keywordtype}{char} *s, xbUInt32 ulSize );}
-\DoxyCodeLine{145 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&SetNum( xbInt32 lNum );}
-\DoxyCodeLine{146 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Sprintf(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *format, ...);}
-\DoxyCodeLine{147 }
-\DoxyCodeLine{148 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *Str() \textcolor{keyword}{const};}
-\DoxyCodeLine{149 \textcolor{keywordtype}{char} *strncpy( \textcolor{keywordtype}{char} * cDest, xbUInt32 n ) \textcolor{keyword}{const};}
-\DoxyCodeLine{150 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&SwapChars( \textcolor{keywordtype}{char} from, \textcolor{keywordtype}{char} to );}
-\DoxyCodeLine{151 }
-\DoxyCodeLine{152 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&ToLowerCase();}
-\DoxyCodeLine{153 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&ToUpperCase();}
-\DoxyCodeLine{154 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Trim();}
-\DoxyCodeLine{155 }
-\DoxyCodeLine{156 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} ValidLogicalValue() \textcolor{keyword}{const};}
-\DoxyCodeLine{157 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} ValidNumericValue() \textcolor{keyword}{const};}
-\DoxyCodeLine{158 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&ZapChar( \textcolor{keywordtype}{char} c );}
-\DoxyCodeLine{159 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&ZapLeadingChar( \textcolor{keywordtype}{char} c );}
-\DoxyCodeLine{160 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&ZapTrailingChar( \textcolor{keywordtype}{char} c );}
-\DoxyCodeLine{161 }
-\DoxyCodeLine{162 \textcolor{keyword}{friend} std::ostream\& \mbox{\hyperlink{namespacexb_ad27f348219e895c44f74addba8e1889a}{operator<< }}( std::ostream\& os, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& s );}
-\DoxyCodeLine{163 }
-\DoxyCodeLine{164 \textcolor{keyword}{private}:}
-\DoxyCodeLine{165 }
-\DoxyCodeLine{166 \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{char} * NullString;}
-\DoxyCodeLine{167 \textcolor{keyword}{static} \textcolor{keywordtype}{char} cJunkBuf;}
-\DoxyCodeLine{168 }
-\DoxyCodeLine{169 \textcolor{keywordtype}{char} *data; \textcolor{comment}{// pointer to actual string data}}
-\DoxyCodeLine{170 xbUInt32 size; \textcolor{comment}{// size of string plus null terminating byte}}
-\DoxyCodeLine{171 }
-\DoxyCodeLine{172 \textcolor{keywordtype}{void} ctor(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *s);}
-\DoxyCodeLine{173 \textcolor{comment}{// xbUInt32 CalcSprintfBufSize(const char *format, ...);}}
-\DoxyCodeLine{174 }
-\DoxyCodeLine{175 \textcolor{comment}{// char * xb\_realloc( char *pIn, xbUInt32 iLen );}}
-\DoxyCodeLine{176 }
-\DoxyCodeLine{177 \textcolor{comment}{// next routine could result in buffer over runs if used with improperly sized buffers}}
-\DoxyCodeLine{178 \textcolor{keywordtype}{char} * xb\_strcpy ( \textcolor{keywordtype}{char} *target, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *source);}
-\DoxyCodeLine{179 }
-\DoxyCodeLine{180 \};}
-\DoxyCodeLine{181 }
-\DoxyCodeLine{182 \} \textcolor{comment}{/* namespace */}}
-\DoxyCodeLine{183 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XBSTRING\_H\_\_ */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{139 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Replace( \textcolor{keyword}{const} \textcolor{keywordtype}{char} *sReplace, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *sReplaceWith, xbInt16 iOpt = 0 );}
+\DoxyCodeLine{140 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Resize( xbUInt32 lSize );}
+\DoxyCodeLine{141 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Rtrim();}
+\DoxyCodeLine{142 }
+\DoxyCodeLine{143 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Set( \textcolor{keyword}{const} \textcolor{keywordtype}{char} *s );}
+\DoxyCodeLine{144 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Set( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&s );}
+\DoxyCodeLine{145 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Set( \textcolor{keyword}{const} \textcolor{keywordtype}{char} *s, xbUInt32 ulSize );}
+\DoxyCodeLine{146 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&SetNum( xbInt32 lNum );}
+\DoxyCodeLine{147 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Sprintf(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *format, ...);}
+\DoxyCodeLine{148 }
+\DoxyCodeLine{149 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *Str() \textcolor{keyword}{const};}
+\DoxyCodeLine{150 \textcolor{keywordtype}{char} *strncpy( \textcolor{keywordtype}{char} * cDest, xbUInt32 n ) \textcolor{keyword}{const};}
+\DoxyCodeLine{151 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&SwapChars( \textcolor{keywordtype}{char} from, \textcolor{keywordtype}{char} to );}
+\DoxyCodeLine{152 }
+\DoxyCodeLine{153 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&ToLowerCase();}
+\DoxyCodeLine{154 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&ToUpperCase();}
+\DoxyCodeLine{155 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Trim();}
+\DoxyCodeLine{156 }
+\DoxyCodeLine{157 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} ValidLogicalValue() \textcolor{keyword}{const};}
+\DoxyCodeLine{158 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} ValidNumericValue() \textcolor{keyword}{const};}
+\DoxyCodeLine{159 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&ZapChar( \textcolor{keywordtype}{char} c );}
+\DoxyCodeLine{160 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&ZapLeadingChar( \textcolor{keywordtype}{char} c );}
+\DoxyCodeLine{161 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&ZapTrailingChar( \textcolor{keywordtype}{char} c );}
+\DoxyCodeLine{162 }
+\DoxyCodeLine{163 \textcolor{keyword}{friend} std::ostream\& \mbox{\hyperlink{namespacexb_ad27f348219e895c44f74addba8e1889a}{operator<< }}( std::ostream\& os, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& s );}
+\DoxyCodeLine{164 }
+\DoxyCodeLine{165 \textcolor{keyword}{private}:}
+\DoxyCodeLine{166 }
+\DoxyCodeLine{167 \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{char} * NullString;}
+\DoxyCodeLine{168 \textcolor{keyword}{static} \textcolor{keywordtype}{char} cJunkBuf;}
+\DoxyCodeLine{169 }
+\DoxyCodeLine{170 \textcolor{keywordtype}{char} *data; \textcolor{comment}{// pointer to actual string data}}
+\DoxyCodeLine{171 xbUInt32 size; \textcolor{comment}{// size of string plus null terminating byte}}
+\DoxyCodeLine{172 }
+\DoxyCodeLine{173 \textcolor{keywordtype}{void} ctor(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *s);}
+\DoxyCodeLine{174 \textcolor{comment}{// xbUInt32 CalcSprintfBufSize(const char *format, ...);}}
+\DoxyCodeLine{175 }
+\DoxyCodeLine{176 \textcolor{comment}{// char * xb\_realloc( char *pIn, xbUInt32 iLen );}}
+\DoxyCodeLine{177 }
+\DoxyCodeLine{178 \textcolor{comment}{// next routine could result in buffer over runs if used with improperly sized buffers}}
+\DoxyCodeLine{179 \textcolor{keywordtype}{char} * xb\_strcpy ( \textcolor{keywordtype}{char} *target, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *source);}
+\DoxyCodeLine{180 }
+\DoxyCodeLine{181 \};}
+\DoxyCodeLine{182 }
+\DoxyCodeLine{183 \} \textcolor{comment}{/* namespace */}}
+\DoxyCodeLine{184 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XBSTRING\_H\_\_ */}\textcolor{preprocessor}{}}
\end{DoxyCode}
diff --git a/docs/doxygen/latex/xbtag_8cpp.tex b/docs/doxygen/latex/xbtag_8cpp.tex
index 9b867a3..2166160 100644
--- a/docs/doxygen/latex/xbtag_8cpp.tex
+++ b/docs/doxygen/latex/xbtag_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbtag_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbtag.cpp File Reference}
-\label{xbtag_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbtag.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbtag.cpp}}
+\hypertarget{xbtag_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbtag.cpp File Reference}
+\label{xbtag_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbtag.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbtag.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbtag_8h.tex b/docs/doxygen/latex/xbtag_8h.tex
index 4ef8990..b82a5ea 100644
--- a/docs/doxygen/latex/xbtag_8h.tex
+++ b/docs/doxygen/latex/xbtag_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbtag_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbtag.h File Reference}
-\label{xbtag_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtag.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtag.h}}
+\hypertarget{xbtag_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbtag.h File Reference}
+\label{xbtag_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtag.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtag.h}}
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/xbtag_8h_source.tex b/docs/doxygen/latex/xbtag_8h_source.tex
index 605c6f3..4bb9c2c 100644
--- a/docs/doxygen/latex/xbtag_8h_source.tex
+++ b/docs/doxygen/latex/xbtag_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbtag_8h_source}{}\doxysection{xbtag.\+h}
-\label{xbtag_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtag.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtag.h}}
+\label{xbtag_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtag.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtag.h}}
\mbox{\hyperlink{xbtag_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbtag.h}}
diff --git a/docs/doxygen/latex/xbtblmgr_8cpp.tex b/docs/doxygen/latex/xbtblmgr_8cpp.tex
index 8c83985..0374c27 100644
--- a/docs/doxygen/latex/xbtblmgr_8cpp.tex
+++ b/docs/doxygen/latex/xbtblmgr_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbtblmgr_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbtblmgr.cpp File Reference}
-\label{xbtblmgr_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbtblmgr.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbtblmgr.cpp}}
+\hypertarget{xbtblmgr_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbtblmgr.cpp File Reference}
+\label{xbtblmgr_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbtblmgr.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbtblmgr.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xbtblmgr_8h.tex b/docs/doxygen/latex/xbtblmgr_8h.tex
index 494f1f9..23668f6 100644
--- a/docs/doxygen/latex/xbtblmgr_8h.tex
+++ b/docs/doxygen/latex/xbtblmgr_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbtblmgr_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbtblmgr.h File Reference}
-\label{xbtblmgr_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtblmgr.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtblmgr.h}}
+\hypertarget{xbtblmgr_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbtblmgr.h File Reference}
+\label{xbtblmgr_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtblmgr.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtblmgr.h}}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/xbtblmgr_8h_source.tex b/docs/doxygen/latex/xbtblmgr_8h_source.tex
index 4e43990..83a37a7 100644
--- a/docs/doxygen/latex/xbtblmgr_8h_source.tex
+++ b/docs/doxygen/latex/xbtblmgr_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbtblmgr_8h_source}{}\doxysection{xbtblmgr.\+h}
-\label{xbtblmgr_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtblmgr.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtblmgr.h}}
+\label{xbtblmgr_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtblmgr.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtblmgr.h}}
\mbox{\hyperlink{xbtblmgr_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbtblmgr.h}}
@@ -43,25 +43,26 @@
\DoxyCodeLine{39 \textcolor{keyword}{public}:}
\DoxyCodeLine{40 \mbox{\hyperlink{classxb_1_1xbTblMgr}{xbTblMgr}}();}
\DoxyCodeLine{41 \mbox{\hyperlink{classxb_1_1xbTblMgr}{\string~xbTblMgr}}();}
-\DoxyCodeLine{42 xbInt16 AddTblToTblList ( \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} *d, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTblName );}
-\DoxyCodeLine{43 xbInt16 AddTblToTblList ( \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} *d, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTblName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTblAlias );}
-\DoxyCodeLine{44 xbInt16 DisplayTableList () \textcolor{keyword}{const};}
-\DoxyCodeLine{45 \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} * GetDbfPtr ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTblAlias ) \textcolor{keyword}{const};}
-\DoxyCodeLine{46 \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} * GetDbfPtr ( xbInt16 sItemNo ) \textcolor{keyword}{const};}
-\DoxyCodeLine{47 xbInt16 GetOpenTableCount () \textcolor{keyword}{const};}
-\DoxyCodeLine{48 xbInt16 RemoveTblFromTblList ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTblAlias );}
-\DoxyCodeLine{49 xbInt16 RemoveTblFromTblList ( \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} *d );}
-\DoxyCodeLine{50 }
-\DoxyCodeLine{51 \textcolor{keyword}{protected}:}
-\DoxyCodeLine{52 }
-\DoxyCodeLine{53 \textcolor{keyword}{private}:}
-\DoxyCodeLine{54 \mbox{\hyperlink{structxb_1_1xbTblList}{xbTblList}} * TblList; \textcolor{comment}{// List of open database tables}}
-\DoxyCodeLine{55 xbInt16 iOpenTableCount; \textcolor{comment}{// Number of open tables}}
-\DoxyCodeLine{56 }
-\DoxyCodeLine{57 \};}
-\DoxyCodeLine{58 }
-\DoxyCodeLine{59 \} \textcolor{comment}{/* namespace xb */}}
-\DoxyCodeLine{60 }
-\DoxyCodeLine{61 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_XBMGR\_H\_\_ */}\textcolor{preprocessor}{}}
+\DoxyCodeLine{42 xbInt16 AddTblToTblList ( \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} *d, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTblName );}
+\DoxyCodeLine{43 xbInt16 AddTblToTblList ( \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} *d, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTblName, \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTblAlias );}
+\DoxyCodeLine{44 xbInt16 DisplayTableList () \textcolor{keyword}{const};}
+\DoxyCodeLine{45 \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} * GetDbfPtr ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTblAlias ) \textcolor{keyword}{const};}
+\DoxyCodeLine{46 \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} * GetDbfPtr ( xbInt16 sItemNo ) \textcolor{keyword}{const};}
+\DoxyCodeLine{47 \mbox{\hyperlink{structxb_1_1xbTblList}{xbTblList}} * GetTblListEntry ( \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} *d );}
+\DoxyCodeLine{48 xbInt16 GetOpenTableCount () \textcolor{keyword}{const};}
+\DoxyCodeLine{49 xbInt16 RemoveTblFromTblList ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sTblAlias );}
+\DoxyCodeLine{50 xbInt16 RemoveTblFromTblList ( \mbox{\hyperlink{classxb_1_1xbDbf}{xbDbf}} *d );}
+\DoxyCodeLine{51 }
+\DoxyCodeLine{52 \textcolor{keyword}{protected}:}
+\DoxyCodeLine{53 }
+\DoxyCodeLine{54 \textcolor{keyword}{private}:}
+\DoxyCodeLine{55 \mbox{\hyperlink{structxb_1_1xbTblList}{xbTblList}} * TblList; \textcolor{comment}{// List of open database tables}}
+\DoxyCodeLine{56 xbInt16 iOpenTableCount; \textcolor{comment}{// Number of open tables}}
+\DoxyCodeLine{57 }
+\DoxyCodeLine{58 \};}
+\DoxyCodeLine{59 }
+\DoxyCodeLine{60 \} \textcolor{comment}{/* namespace xb */}}
+\DoxyCodeLine{61 }
+\DoxyCodeLine{62 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_XBMGR\_H\_\_ */}\textcolor{preprocessor}{}}
\end{DoxyCode}
diff --git a/docs/doxygen/latex/xbtypes_8h.tex b/docs/doxygen/latex/xbtypes_8h.tex
index fb4d143..48c0ade 100644
--- a/docs/doxygen/latex/xbtypes_8h.tex
+++ b/docs/doxygen/latex/xbtypes_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbtypes_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbtypes.h File Reference}
-\label{xbtypes_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtypes.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtypes.h}}
+\hypertarget{xbtypes_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbtypes.h File Reference}
+\label{xbtypes_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtypes.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtypes.h}}
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/xbtypes_8h_source.tex b/docs/doxygen/latex/xbtypes_8h_source.tex
index 61b6d34..4a76695 100644
--- a/docs/doxygen/latex/xbtypes_8h_source.tex
+++ b/docs/doxygen/latex/xbtypes_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbtypes_8h_source}{}\doxysection{xbtypes.\+h}
-\label{xbtypes_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtypes.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbtypes.h}}
+\label{xbtypes_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtypes.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbtypes.h}}
\mbox{\hyperlink{xbtypes_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbtypes.h}}
diff --git a/docs/doxygen/latex/xbuda_8cpp.tex b/docs/doxygen/latex/xbuda_8cpp.tex
index 26c239e..ff9f678 100644
--- a/docs/doxygen/latex/xbuda_8cpp.tex
+++ b/docs/doxygen/latex/xbuda_8cpp.tex
@@ -1,3 +1,3 @@
-\hypertarget{xbuda_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbuda.cpp File Reference}
-\label{xbuda_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbuda.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbuda.cpp}}
+\hypertarget{xbuda_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbuda.cpp File Reference}
+\label{xbuda_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbuda.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbuda.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
diff --git a/docs/doxygen/latex/xbuda_8h.tex b/docs/doxygen/latex/xbuda_8h.tex
index d8e1907..5162f27 100644
--- a/docs/doxygen/latex/xbuda_8h.tex
+++ b/docs/doxygen/latex/xbuda_8h.tex
@@ -1,2 +1,2 @@
-\hypertarget{xbuda_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbuda.h File Reference}
-\label{xbuda_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbuda.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbuda.h}}
+\hypertarget{xbuda_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbuda.h File Reference}
+\label{xbuda_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbuda.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbuda.h}}
diff --git a/docs/doxygen/latex/xbuda_8h_source.tex b/docs/doxygen/latex/xbuda_8h_source.tex
index 7438671..5f61588 100644
--- a/docs/doxygen/latex/xbuda_8h_source.tex
+++ b/docs/doxygen/latex/xbuda_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbuda_8h_source}{}\doxysection{xbuda.\+h}
-\label{xbuda_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbuda.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbuda.h}}
+\label{xbuda_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbuda.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbuda.h}}
\mbox{\hyperlink{xbuda_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbuda.h}}
diff --git a/docs/doxygen/latex/xbxbase_8cpp.tex b/docs/doxygen/latex/xbxbase_8cpp.tex
index c803e2f..21bbba9 100644
--- a/docs/doxygen/latex/xbxbase_8cpp.tex
+++ b/docs/doxygen/latex/xbxbase_8cpp.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbxbase_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/core/xbxbase.cpp File Reference}
-\label{xbxbase_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbxbase.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/core/xbxbase.cpp}}
+\hypertarget{xbxbase_8cpp}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/core/xbxbase.cpp File Reference}
+\label{xbxbase_8cpp}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbxbase.cpp@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/core/xbxbase.cpp}}
{\ttfamily \#include \char`\"{}xbase.\+h\char`\"{}}\newline
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
diff --git a/docs/doxygen/latex/xbxbase_8h.tex b/docs/doxygen/latex/xbxbase_8h.tex
index 0a1702e..d6e686c 100644
--- a/docs/doxygen/latex/xbxbase_8h.tex
+++ b/docs/doxygen/latex/xbxbase_8h.tex
@@ -1,5 +1,5 @@
-\hypertarget{xbxbase_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.2/src/include/xbxbase.h File Reference}
-\label{xbxbase_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbxbase.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbxbase.h}}
+\hypertarget{xbxbase_8h}{}\doxysection{/mnt/1\+Tdata/xbase/xbase64-\/4.0.3/src/include/xbxbase.h File Reference}
+\label{xbxbase_8h}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbxbase.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbxbase.h}}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item
diff --git a/docs/doxygen/latex/xbxbase_8h_source.tex b/docs/doxygen/latex/xbxbase_8h_source.tex
index fb56397..5917849 100644
--- a/docs/doxygen/latex/xbxbase_8h_source.tex
+++ b/docs/doxygen/latex/xbxbase_8h_source.tex
@@ -1,5 +1,5 @@
\hypertarget{xbxbase_8h_source}{}\doxysection{xbxbase.\+h}
-\label{xbxbase_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbxbase.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbxbase.h}}
+\label{xbxbase_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbxbase.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbxbase.h}}
\mbox{\hyperlink{xbxbase_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbxbase.h}}
diff --git a/docs/howto/AddNewMemoFileType.txt b/docs/howto/AddNewMemoFileType.txt
new file mode 100755
index 0000000..a784d69
--- /dev/null
+++ b/docs/howto/AddNewMemoFileType.txt
@@ -0,0 +1,9 @@
+
+
+How to create a new memo file format
+
+1) Derive a child class from xbMemo Pure Virtual Class
+
+2) Create header file
+3) Create cpp file
+4) Update CMakeLists.txt
\ No newline at end of file
diff --git a/docs/html/Xbase64ClassDiagram.jpg b/docs/html/Xbase64ClassDiagram.jpg
new file mode 100755
index 0000000..81bb539
Binary files /dev/null and b/docs/html/Xbase64ClassDiagram.jpg differ
diff --git a/docs/html/gpl-3.0.txt b/docs/html/gpl-3.0.txt
new file mode 100755
index 0000000..94a9ed0
--- /dev/null
+++ b/docs/html/gpl-3.0.txt
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/docs/html/index.htm b/docs/html/index.htm
deleted file mode 100755
index 3c992f5..0000000
--- a/docs/html/index.htm
+++ /dev/null
@@ -1,33 +0,0 @@
-
-Xbase DBMS Documentation Table of Contents
-
-
+
+
diff --git a/docs/html/xbac.html b/docs/html/xbac.html
new file mode 100755
index 0000000..0b0fb0b
--- /dev/null
+++ b/docs/html/xbac.html
@@ -0,0 +1,102 @@
+
+
+Xbase DBMS Appendix C
+
+
Library Build Compile Options
+
Chapter Updated 12/09/22
+
+
+
+
+
Library Build Compile Options
+
+
+
+
Options
Description
Prerequisites - Notes
+
XB_DEBUG_SUPPORT
Include library debugging functionality
+
XB_UTILS_SUPPORT
Build utility programs?
+
XB_EXAMPLES_SUPPORT
Build example programs?
+
XB_MEMO_SUPPORT
Include Memo file support?
Prereq: XB_LINKLIST_SUPPORT
+
XB_LOGGING_SUPPORT
Include logging support?
+
XB_DBF3_SUPPORT
Include DBF Version III support?
At lease one of XB_DBF3_SUPPORT or XB_DBF4_SUPPORT required
+
XB_DBF4_SUPPORT
Include DBF Version IV support?
At least one of XB_DBF3_SUPPORT or XB_DBF4_SUPPORT required
+
XB_LINKLIST_SUPPORT
Include Linklist functionality?
+
XB_LOCKING_SUPPORT
Include File and Record locking support?
Prereq: XB_LINKLIST_SUPPORT
+
XB_FUNCTION_SUPPORT
Include Expression Function support?
+
XB_EXPRESSION_SUPPORT
Include Expression support?
Prereq: XB_FUNCTION_SUPPORT and XB_LINKLIST_SUPPORT
+
XB_NDX_SUPPORT
Include NDX Index support?
Prereq: XB_EXPRESSION_SUPPORT
+
XB_MDX_SUPPORT
Include MDX Index support?
Prereq: XB_EXPRESSION_SUPPORT
+
XB_SQL_SUPPORT
Include SQL support?
Prereq: XB_MEMO_SUPPORT and XB_DBF4_SUPPORT
+
XB_INF_SUPPORT
Include INF support (Provides auto open functions for NDX indices)
+
XB_FILTER_SUPPORT
Include Filter support
Prereq: XB_EXPRESSION_SUPPORT
+
+
+
+
+
+
CMake
+The Xbase library is built using the CMake build manager. Cmake provides the architecture for
+building cross platform projects with a unified build system. If you are not familiar with CMake,
+you can familiarize yourself with it at https://cmake.org
+
+To modify the XBase64 compile options take the following steps:
+
+1) Identify which platform you want to build and identify the correct build folder
+
+
/xbase64-4.x.x/build/borland5.5
Older free Borland 5.5 32 bit Windows compiler
+
/xbase64-4.x.x/build/linux32
Linux 32 bit build folder
+
/xbase64-4.x.x/build/linux64
Linux 64 bit build folder
+
/xbase64-4.x.x/build/win32vs
Windows 32 bit Visual Studio folder
+
/xbase64-4.x.x/build/win64vs
Windows 64 bit Visual Studio folder
+
/xbase64-4.x.x/build/mac64
MAC 64 but folder
+
+
+
+2) Navigate to the appropriate folder identified in step 1. Once you are in the correct folder,
+verify there is a CmakeLists.txt file. That file is the main librbary build configuration file.
+
+
+3) Select one if the following methods to update the config options
+
+
For Windows users, use program cmake-gui.exe
+
For Unix/Linux/Mac users, use program cmake-gui
+
For Unix command line, use program "ccmake ."
+
Or manually edit the CmakeLists.txt file with your favorite text editor
+
+
+
+
Debug Support (Option: XB_DEBUG_SUPPORT)
+The following methods are included from the library when the XB_DEBUG_OPTION is turned on. They
+are mainly used for library debugging purposes and can be safely left turned off.
+
+
Method/Function
Description
+
xbDate::Dump()
Dump the xbDate object internals to stdout
+
xbDate::DumpDateTable()
Dump internal date tables to stdout
+
xbDbf::DumpTableLockStatus()
Dump internal locking status / structures
+
xbExp::DumpToken()
Dump expression values
+
xbExp::DumpTree()
Dump expression token tree
+
xbExpNode::DumpToken()
Dump expression node values
+
xbFile::DumpBlockToDisk
Dump specified block of data to a disk file
+
xbIx::DumpNode
Dump index node header
+
xbIxMdx::DumpBlock
Dump MDX index block
+
xbIxMdx::DumpFreeBlocks
Dump MDX free block chain
+
xbIxMdx::DumpHeader
Dump MDX file header info
+
xbIxMdx::DumpIxForTag
Dump MDX index keys and values for a given tag
+
xbIxMdx::DumpIxNodeChain
Dump MDX current memory node linked list for a given tag
+
xbIxMdx::DumpTagBlocks
Dump MDX blocks for a given tag
+
xbIxNdx::DumpHeader
Dump MDX file header info
+
xbIxNdx::DumpIxNodeChain
Dump MDX current memory node linked list for a given tag
+
xbIxNdx::DumpNode
Dump index node header
+
xbIxNdx::DumpTagBlocks
Dump NDX blocks for a given tag
+
xbMemoDbt3::DumpMemoFreeChain()
Place holder
+
xbMemoDbt4::DumpMemoFreeChain()
Dump list of free blocks available for reuse
+
xbMemoDbt4::DumpMemoInternals()
Dump V4 memo file internals
+
xbString::Dump()
Dump string internals
+
xbString::DumpHex()
Dump string internals in hex
+
+
+
+
+
+
+
diff --git a/docs/html/xbad.html b/docs/html/xbad.html
new file mode 100755
index 0000000..7356b7b
--- /dev/null
+++ b/docs/html/xbad.html
@@ -0,0 +1,27 @@
+
+
+Xbase DBMS Appendix D
+
+
File Types
+
Chapter Updated 12/09/22
+
+
Supported File Types.
+
+All supported file types have one the following file extensions:
+The extensions are allway upper case.
+
+
+
+
+
+
File Type
Description
+
*.DBF
Main database file or Table
+
*.DBT
Memo file data
+
*.INF
INF - Behave like MS ODBC File. Used to auto open NDX index file
+
*.MDX
Production V4 index file, contains up to 47 tags. Automatically opened.
+
*.NDX
Non production V3 index files. Contains one tag per file. Automatically opened if included in ocrreespondin INF file.
+
+
+
+
+
diff --git a/docs/html/xbae.html b/docs/html/xbae.html
new file mode 100755
index 0000000..5f1dce6
--- /dev/null
+++ b/docs/html/xbae.html
@@ -0,0 +1,94 @@
+
+
+Xbase DBMS Appendix E
+
+
Eror Codes
+
Chapter Updated 12/09/22
+
+
Error Codes and Error Processing
+
+Alomost all Xbase64 methods and functions return and xbInt16 return code, which is zero or positive on success and negative
+if an error condition occurs.
+
+As of the 4.x.x release, the library has been extensively updated to use exception processing and most error
+conditions will result in a mesage written to the logfile if logfile processing is enabled. The error routines
+typically write two values to the logfile, an error code value and an iErrorStop value which identifies where
+exactly in the library code the error occurred.
+
+Error codes are defined in the xbretcod.h file.
+
+
+
File Type
Description
+
*.DBF
Main database file or Table
+
*.DBT
Memo file data
+
*.INF
INF - Behave like MS ODBC File. Used to auto open NDX index file
+
*.MDX
Production V4 index file, contains up to 47 tags. Automatically opened.
+
*.NDX
Non production V3 index files. Contains one tag per file. Automatically opened if included in ocrreespondin INF file.
-
-Welcome to Xbase64 DBMS, a collection of specifications, programs,
-utilities and a C++ class library for manipulating legacy Xbase (DBF) type
-data files and indices.
-
-
-The term Xbase is often used used to describe the format of the original
-DBase, Clipper and Foxbase (.DBF) files. The XBase file format is well
-documented and has stood the test of time. Various popular programs
-still create and read xbase formatted files.
-
-The purpose of the Xbase64 library is to provide reliable and usable
-programming tools for reading, writing and updating DBF databases,
-indices and memo fields. Version 4.x.x has been tested for compatability
-with DBase III (TM) and DBase IV (TM) version data files and indices
-*.DBF (data), *.NDX (single tag index), *.MDX (multi tag index) and
-*.DBT (memo).
-
-Version 4.x.x is a major rewrite of the library to strenghen error
-processing and bring consistency across modules. It includes updates
-to the locking process and also includes a module to support MDX multi
-tag indices.
-
-Earlier versions of the library have included NTX and CDX index formats
-and that code will be re-incorporated into the latest version in the
-future.
-
-
-
-
-
-
System Requirements
-
-To build the Xbase64 library, the following items are needed:
-
-A computer, a C/C++ compiler and CMAKE.
-
-The original source code was developed on a Linux platform with the GCC
-public domain C/C++ compiler.
-
-
-Xbase64 DBMS has been successfully ported and runs on Linux, Mac and and Windows.
-
-
-To make the Xbase64 library as portable as possible, the following things occurred:
-
-
The software was developed to compile and run on either 32 or 64 bit architectures.
-
The software was developed to compile and run on either big endian or little endian archtectures.
-
All numeric data is stored in little endian format.
-
The library is built using Cmake to provide support on a wide variety of platforms.
-
Field types were defined to be consistent across various OS and CPU configurations.
-Xbase64 defines the following field types:
-
-
-
Field Types
-
-
Type
Description
-
xbInt16
16 bit int
-
xbUInt16
16 bit unsigned int
-
xbInt32
32 bit int
-
xbUInt32
32 bit unsigned int
-
xbInt64
64 bit int
-
xbUInt64
64 bit unsigned int
-
xbDouble
double
-
char
char
-
void
void
-
struct SCHEMA
Used for defining record structures
-
-
-
-Xbase64 was designed for portability utilizing standard ANSI-C/C++ compliant
-code. If you decide to write updates to the Xbase64 project, please try
-to keep your work to standard C/C++ generic calls and use the above predefined field types.
-
-
Compilation Overview
-To build the xbase64 library, verify you have:
-
Xbase64 source code
-
cmake 2.6 or LATER
-
Compiler and linker
-
-
-Verify you have access rights to the target location of the library
-
-
-For Linux:
-
-
cd xbase/Linux
-
cmake .
-
make
-
make test
-
sudo make install
-
Verify the ld.so.conf file has the library target directory. For example
-update file /etc/ld.so.conf to include /usr/local/lib and run ldconfig.
-
-
-For Mac:
-
-
Verify you have xcode installed and operational.
-
From a VS Studio 64 bit shell in admin mode: nmake install
-
-
-For Windows 32 bit with Visual Studio:
-
-
Open a Visual Studio 32 bit Shell
-
cd xbase\Win32VS
-
buildwin.bat
-
nmake test
-
From a VS Studio 32 bit shell in admin mode: nmake install
-
-
-For Windows 32 bit with Borland 5.5 free compiler
-
-
cd xbase\Win32Borland
-
BuildBorland.bat
-
make test
-
-
-For other platforms:
-
-Here is something to start with...
-
cd xbase
-
md MyPlatform
-
cd MyPlatform
-
cp ../Cmake/CmakeLists.txt.
-
Enter the appropriate make command for your environment. Check the cmake web site for help.
- On Linux, it is .cmake, then make
- your mileage may vary
-
- Send your results to the library maintainer so it can be added to this library
-
-
-
-To use the Xbase classes, include the following header file in the program:
-
-
-#include <xbase.h>
-
-For more information on getting started, check out the sample programs in the src/examples folder.
-
-
-
-
System Limitations
-
-Maximum size of a database file is the size of LONG - 2,147,483,647 bytes
-Total number of fields in a database - 255
-Total number of characters in all fields - 32767
-Maximum number of characters in a field - 254
-Total number of records in a file - 1 billion
-Maximum index key length - 100 bytes
-Maximum .DBT file memo block size - 32256
-Maximum expression result length - 100 bytes
-Maximum NDX index key length - 100 bytes
+
+Welcome to Xbase64 DBMS, a collection of specifications, programs,
+utilities and a C++ class library for manipulating legacy Xbase (DBF) type
+data files and indices.
+
+
+The term Xbase is often used used to describe the format of the original
+DBase, Clipper and Foxbase (.DBF) files. The XBase file format is well
+documented and has stood the test of time. Various popular programs
+still create and read xbase formatted files.
+
+The purpose of the Xbase64 library is to provide reliable and usable
+programming tools for reading, writing and updating DBF databases,
+indices and memo fields. Version 4.x.x has been tested for compatability
+with DBase III (TM) and DBase IV (TM) version data files and indices
+*.DBF (data), *.NDX (single tag index), *.MDX (multi tag index) and
+*.DBT (memo).
+
+Version 4.x.x is a major rewrite of the library to strengthen error
+processing and bring consistency across modules. It includes updates
+to the locking process and also includes a module to support MDX multi
+tag indices.
+
+Earlier versions of the library have included NTX and CDX index formats
+and that code will be re-incorporated into the latest version in the
+future.
+
+
+
+Why use the Xbase library?
+The DBF file format is a ubiquitous industry standard with
+widespread usage and application. Using this standard file format removes any
+vender specific locks that bind you to a particular platform.
+Additionally, with Xbase64 only the options needed can be compiled into or out of the library
+to provide a custom configuration specific to project requirements.
+For a small footprint, locking, memo fields and indices could be excluded from
+the library build which would reduce the library size.
+This tool is usefull for small to medium sized apps that don't need all the
+overhead, sophistication and cost of a complex client server configuration.
+The Xbase library is designed to be flexible in which options can be compiled
+into or out fo the library and also which environments it can be run on.
+
+
+
+
+
System Requirements
+
+To build the Xbase64 library, the following items are needed:
+
+A computer, a C/C++ compiler and CMAKE.
+
+The original source code was developed on a Linux platform with the GCC
+public domain C/C++ compiler.
+
+
+Xbase64 DBMS has been successfully ported and runs on Linux, Mac and and Windows.
+
+
+To make the Xbase64 library as portable as possible, the following things occurred:
+
+
The software was developed to compile and run on either 32 or 64 bit architectures.
+
The software was developed to compile and run on either big endian or little endian archtectures.
+
All numeric data is stored in little endian format.
+
The library is built using Cmake to provide support on a wide variety of platforms.
+
Field types were defined to be consistent across various OS and CPU configurations.
+Xbase64 defines the following field types:
+
+
+
Field Types
+
+
Type
Description
+
xbBool
Contains xbTrue (0) or xbFalse (1)
+
xbInt16
16 bit int
+
xbUInt16
16 bit unsigned int
+
xbInt32
32 bit int
+
xbUInt32
32 bit unsigned int
+
xbInt64
64 bit int
+
xbUInt64
64 bit unsigned int
+
xbDouble
double
+
char
char
+
void
void
+
struct SCHEMA
Used for defining record structures
+
+
+
+Xbase64 was designed for portability utilizing standard ANSI-C/C++ compliant
+code. If you decide to write updates to the Xbase64 project, please try
+to keep your work to standard C/C++ generic calls and use the above predefined field types.
+
+
Compilation Overview
+To build the xbase64 library, verify you have:
+
Xbase64 source code
+
cmake 2.6 or LATER
+
Compiler and linker
+
+
+Verify you have access rights to the target location of the library
+
+
+For Linux:
+
+
cd xbase/Linux
+
cmake .
+
make
+
make test
+
sudo make install
+
Verify the ld.so.conf file has the library target directory. For example
+update file /etc/ld.so.conf to include /usr/local/lib and run ldconfig.
+
+
+For Mac:
+
+
Verify you have xcode installed and operational.
+
From a VS Studio 64 bit shell in admin mode: nmake install
+
+
+For Windows 32 bit with Visual Studio:
+
+
Open a Visual Studio 32 bit Shell
+
cd xbase\Win32VS
+
buildwin.bat
+
nmake test
+
From a VS Studio 32 bit shell in admin mode: nmake install
+
+
+For Windows 32 bit with Borland 5.5 free compiler
+
+
cd xbase\Win32Borland
+
BuildBorland.bat
+
make test
+
+
+For other platforms:
+
+Here is something to start with...
+
cd xbase
+
md MyPlatform
+
cd MyPlatform
+
cp ../Cmake/CmakeLists.txt.
+
Enter the appropriate make command for your environment. Check the cmake web site for help.
+ On Linux, it is .cmake, then make
+ your mileage may vary
+
+ Send your results to the library maintainer so it can be added to this library
+
+
+
+To use the Xbase classes, include the following header file in the program:
+
+
+#include <xbase.h>
+
+For more information on getting started, check out the sample programs in the src/examples folder.
+
+
+
+
System Limitations
+
+Maximum size of a database file is the size of LONG - 2,147,483,647 bytes
+Total number of fields in a database - 255
+Total number of characters in all fields - 32767
+Maximum number of characters in a field - 254
+Total number of records in a file - 1 billion
+Maximum index key length - 100 bytes
+Maximum .DBT file memo block size - 32256
+Maximum expression result length - 100 bytes
+Maximum NDX index key length - 100 bytes
-
-Xbase64 supports multi-user processing through file and record locks.
-Record locking restricts multiple cooperating programs from simultaneously
-accessing the same data and corrupting it. Without record and file locking
-in a multi-user environment, simultaneous access to the data and index files
-can cause the files to become inaccurate and unusable.
-
-Automatic record locking is on by default in the Xbase64 library. To disable it,
-use method xbXBase::DisableDefaultAutoLock() and to enable it, use method xbXBase::EnableDefaultAutoLock().
-
-Locking can also be enabled / disabled at the table level with with xbDbf::SetAutoLock().
-
-
-
-The current Xbase64 record locking logic is modeled after DBase (tm) V7 locking.
-
-
-The locking methods return either XB_LOCK_FAILED or XB_NO_ERROR. If they return
-XB_LOCK_FAILED the actual reason can be found in the global variable
-errno or function perror() can be executed to view the
-results.
-
-
-The errno field may contain one of the following values if the lock was not
-successful.
-
-
-
Error Code
Description
-
EBADF
Invalid file descriptor
-
EINVAL
Invalid lock information or file does not support locks
-
EACCESS EAGAIN
Lock can not be set because it is blocked by an existing lock on the file.
-
ENOLCK
The system is out of lock resources, too many file locks in place.
-
EDEADLK
Deadlock condition
-
EINTR
Process was interrupted by a signal while it was waiting
-
-
-
-
Linux/Windows File Locking Compatibility Issue
-
-There is a compatibility locking issue to be aware of. Windows environments allow for the exclusive
-opening of file handles and Linux/Unix platforms do not. If you are writing an application that will be
-using a tool like Dbase on a Windows machine, accessing a file on a Linux/Samba configure machine,
-be aware that the file could be opened in exclusive mode by DBase on the Windows system, and the same file could
-be simultaneously opened with a program on the Unix box. That could cause some issues.
-
-
-In Unix, a program can not lock a file so another process can not access it.
-In Windows, a program can lock a file so another process can not access it.
-DBase(tm) supports routines to open files exclusively, preventing other users from opening a file.
-
-
Samba settings
-
-If you will be using Samba on Linux/Unix and sharing files between Linux and Windows machines,
-you will need to disable oplocks. In the smb.conf file, set:
-
+
+Xbase64 supports multi-user processing through file and record locks.
+Record locking restricts multiple cooperating programs from simultaneously
+accessing the same data and corrupting it. Without record and file locking
+in a multi-user environment, simultaneous access to the data and index files
+can cause the files to become inaccurate and unusable.
+
+Automatic record locking is on by default in the Xbase64 library. To disable it,
+use method xbXBase::DisableDefaultAutoLock() and to enable it, use method xbXBase::EnableDefaultAutoLock().
+
+Locking can also be enabled / disabled at the table level with with xbDbf::SetAutoLock().
+If autolocking is disabled and the code base is being used in a multi user environment, it is
+up to the application program to verify the needed locks are set as there is no checking or
+setting any locks if autolocking is turned off. It is only safe to turn off the autolocking functionality
+if the library is being used in a single user environment.
+
+
+The current Xbase64 record locking logic is modeled after DBase (tm) V7 locking.
+
+
+The locking methods return either XB_LOCK_FAILED or XB_NO_ERROR. If they return
+XB_LOCK_FAILED the actual reason can be found in the global variable
+errno or function perror() can be executed to view the
+results.
+
+
+The errno field may contain one of the following values if the lock was not
+successful.
+
+
+
Error Code
Description
+
EBADF
Invalid file descriptor
+
EINVAL
Invalid lock information or file does not support locks
+
EACCESS EAGAIN
Lock can not be set because it is blocked by an existing lock on the file.
+
ENOLCK
The system is out of lock resources, too many file locks in place.
+
EDEADLK
Deadlock condition
+
EINTR
Process was interrupted by a signal while it was waiting
+
+
+
+
Linux/Windows File Locking Compatibility Issue
+
+There is a compatibility locking issue to be aware of. Windows environments allow for the exclusive
+opening of file handles and Linux/Unix platforms do not. If you are writing an application that will be
+using a tool like Dbase on a Windows machine, accessing a file on a Linux/Samba configure machine,
+be aware that the file could be opened in exclusive mode by DBase on the Windows system, and the same file could
+be simultaneously opened with a program on the Unix box. That could cause some issues.
+
+
+In Unix, a program can not lock a file so another process can not access it.
+In Windows, a program can lock a file so another process can not access it.
+DBase(tm) supports routines to open files exclusively, preventing other users from opening a file.
+Locking on the Mac/Apple platform only works on NFS shares. It does not work with SMB shares.
+
+
Samba settings
+
+If you will be using Samba on Linux/Unix and sharing files between Linux and Windows machines,
+you will need to disable oplocks. In the smb.conf file, set:
+
+[sharename]
+oplocks = False
+level2 oplocks = False
+
+
+
iLockFlavor
+
+The library was constructed in a manner so that it could be updated to support alternate lock "flavors".
+The 4.x.x library is built to mirror the DBase locking, but the structure is in place to expand to other locking
+types if needed.
+
+
+
+
+
-
-The Xbase library includes a logging module that can be turned on or off for auditing purposes.
-
-See example code below for how to use the logging routines.
-
-
-
-#include "xbase.h"
-using namespace xb;
-
-int main( int argCnt, char **av ){
-
- #ifdef XB_LOGGING_SUPPORT
- xbString sMsg;
- xbString sLogFileName;
- xbXBase x;
- sLogFileName = "/home/xbase/logfiles/LogFile.txt";
- x.SetLogFileName( sLogFileName );
- x.EnableMsgLogging();
+
+The Xbase library includes a logging module that can be turned on or off for auditing purposes.
+
+See example code below for how to use the logging routines.
+
+
+
+#include "xbase.h"
+using namespace xb;
+
+int main( int argCnt, char **av ){
+
+ #ifdef XB_LOGGING_SUPPORT
+ xbString sMsg;
+ xbString sLogFileName;
+ xbXBase x;
+ sLogFileName = "/home/xbase/logfiles/LogFile.txt";
+ x.SetLogFileName( sLogFileName );
+ x.EnableMsgLogging();
+
+Development of SQL support is still underway and very preliminary. As of the 4.0.3 version, the following SQL commands
+are available.
+The SQL commands are modeled after industry standard SQL specifications and do what you would expect an SQL command to do.
+
+Use of [brackets] in this chapter identifies optional components of a given command.
+
+
+
ALTER TABLE
+Expected format:
+ALTER TABLE tablename.DBF RENAME TO newtablename.DBF
+
+
+
CREATE INDEX
+Expected format to create an Dbase 3, NDX index:
+CREATE INDEX ixname.NDX ON tablename.dbf ( EXPRESSION ) [ASSOCIATE]
+
+
+Expected format to create an Dbase 4, tag on an MDX index:
+CREATE [UNIQUE] INDEX tagname ON tablename.DBF ( EXPRESSION ) [DESC] [FILTER .NOT. DELETED()]
+
+
+The ASSOCIATE parameter is specific to Xbase64 library, it is used to associate non production (NDX) index file to a dbf
+file so it will be automatically opened with the dbf file whenever the dbf file is opened by the xbase64 routines.
+
+The [ASSOCIATE] parameter is not used with MDX production indices
+
+Xbase first looks for ".NDX" in the file name to determine if an NDX index should be created.
+If .NDX is not in the filename, it looks in the uda for "IXTYPE" for either NDX or MDX to
+detmermine the index type to create. if IXTYPE is not found, it creates an MDX tag.
+
+The optional DESC parameter defines an entire index key as descending. This is
+different than other SQL implementations where specific fields can be descending.
+
+The optional FILTER parameter is specific to the XBASE64 library, is it used to assign a filter to a tag in an
+MDX style index. Everything to the right of the keyword FILTER is considered part of the filter.
+
+The original DBASE indices used to '+' to create an index on more than one field
+ ie: FIELD1+FIELD2+FIELD3
+
+The Xbase library supports either '+' or ',' when creating mutli field indices.
+
+Expexted format:
+INSERT INTO tablename (field1, field2, field3,...) VALUES ( 'charval', numval, 'what is the correct odbc date format to use? CCYYMMDD');
+
+
+
SET
+Used to set a variable name
+Expected format:
+SET ATTRIBUTE = DATAVALUE
+SET ATTRIBUTE = ^ (to delete an entry)
+
+
-
-The objective of this chapter is to provide information regarding how
-the database files are utilized and document the various record structures.
-With the exception of the brief section on the record buffer, the
-information presented in this chapter is not required to use the
-Xbase library. It is mainly information describing internal file
-structures utilized by the Xbase routines.
-
-Xbase DBF files are comprised of a variable length header record which stores
-information about the file and describes
-the fixed length record format, followed by a series of fixed length
-data records.
-
-
-Each fixed length data record is preceded by a one byte indicator
-which identifiies if the record has been deleted. If the record is
-not deleted, the indicator is a space (0x20). If deleted, the
-indicator contains an asterisk (0x2A). Data fields are stored in records
-without field separators or record terminators.
-
-In earlier releases of dBASE, there is an ASCII NULL character
-between the $0D end of header indicator and the start of the data.
-This NULL was removed starting with dBASE III Plus, making a Plus
-header one byte shorter than an identically structured III file.
-The methods documented in the Xbase software and documentation follow
-the more recent version where the NULL character is not included.
-
-
-Each database file is comprised of zero, one or many records. A record is
-comprised of fields. Only one record is accessed at a time.
-
-Zero, one or many database files can be open simultaneously.
-
-
-
-
The Record Buffer
-
-When using the Xbase routines, each open data file has a record buffer
-which is manipulated by calling the database, index and field routines.
-
-
-If AutoCommit is turned on (Default), updates are committed from
-the record buffer to the database when a write, or append is performed.
-The library automatically writes updates to the database if the buffer has
-been updated and the record is repositioned or the database is closed.
-
-
-If AutoCommit is turned off, updates will need to be explicity
-committed to the database file with one of dbf->Put(), dbf->Append()
-or dbf->Commit() command depending on context..
-Updates can be cancelled with the Abort() command.
-
-The record buffer is not used for handling the actual data portion of
-memo fields. When working with memo fields, the application program must
-allocate enough buffer space for reading and writing memo fields or use
-the xbString class for handling memo data.
-
-Internal to the library, there is an additional record buffer which
-stores the original value of the data record before any changes are made.
-This is used by the index routines for finding and deleting original key
-values from any open indices before adding the new keys. If the key values
-are not changed, no index updates occur. Additionally, calling the Abort()
-method will back out any updates to the record buffer.
-
-
-
-
-
-
-
Xbase Database File Header - DBF Version III and Version IV
-
-The Xbase file header, located at the beginning of the database, describes
-the .DBF database. Knowledge of this structure is not necessary to
-effectively utilize the Xbase64 libraries.
-
-
-
-
Position
Length
Description
-
0
1 byte
file version number
- (03H without a .DBT file)
- (83H with a .DBT file)
-
1-3
3 bytes
date of last update
- (YY MM DD) in binary format
-
4-7
32 bit number
number of records in data file
-
8-9
16 bit number
length of header structure
-
10-11
16 bit number
length of the record
-
12-31
20 bytes
reserved
-
32-n
32 bytes each
field descriptor record (see below)
-
n+1
1 byte
0DH as the field terminator
-
-
-
-
-
-
Xbase Field Descriptor Record
-The Xbase field descriptor record stores information about each field in the
-database. Each database has from 1 to 1024 fields.
-Knowledge of this structure is not necessary to
-effectively utilize the Xbase libraries.
-
-
-
-
Position
Length
Description
-
0-10
11 bytes
field name in ASCII zero-filled
-
11
1 byte
field type in ASCII (C N L D or M)
-
12-15
32 bit number
field data address
-
16
1 byte
field length in binary
-
17
1 byte
field decimal count in binary
-
18-31
14 bytes
reserved bytes (version 1.00)
-
-
-
-
-
Field Data Format
-Data are stored in ASCII format in the database as follows:
-
-
-
DATA TYPE
DATA RECORD STORAGE
-
Character
ASCII characters, left justified, right blank filled
-
Date
(8 digits in YYYYMMDD format, such as
- 19601007 for October 7, 1960)
-
Logical
? Y y N n T t F f (? when not initialized)
-
Memo
10 digits representing a .DBT block number
-
Numeric
. 0 1 2 3 4 5 6 7 8 9 + -, right justified, left blank filled
-
Float (Version IV only)
. 0 1 2 3 4 5 6 7 8 9 + -, right justified, left blank filled
-
-
-
-
-
Memo Fields
-
-Memo fields store variable length data elements in a seperate .DBT file.
-The main .DBF file maintains a ten byte field which is used by the Xbase
-routines for determining the location of the data in the .DBT file.
-
-
-Xbase DBMS supports both dBASE III+ and dBASE IV version memo files.
-The version IV files are somewhat more efficient in that they reuse
-unused memo space when data are deleted or freed from use. With version
-III files, all new updates are appended to the end of the file and the
-unused space is not reclaimed until the datafiles are packed.
-
-
-Memo fields can be used for storing a variety of date type. However,
-type 3 files are limited to storing textual data because most internal
-memo field processing in a type 3 file relies on two contiguous 0x1a
-charaters.
-
-Type 4 memo fields can be used for storing BLOB (binary large object)
-data reliably, as the internal file structure does not rely on any
-special characters embedded in the data.
-
-A special note on storing string data in a memo field. For those users
-that are new to C/C++ programming, string fields typically end with
-a null (0x00) terminator character. As a general rule of thumb when using
-the library, add one to the length of any string when
-specifying the length of the data. This stores the null terminating byte
-with the data. For example, when storing string "This is a string"
-specified size should be 17, not 16.
-
-
-
Technical memo file information
-
-The following info on memo fields is for the curious.
-It is not required
-reading if you don't need to know the internals.
-
-
Memo files are made up of one or more blocks
-
For version III files, the block size is 512
-
For version IV files, the block size is a multiple of 512
-
The minimum amout of space necessary to store one memo field is
-one block or 512 bytes.
-
The default block size can be adjusted by manipulating the
-XB_DBT_BLOCK_SIZE macro in the options.h file.
-
-
-
The main .DBF file maintains a ten byte numeric field which is blank if
-no memo data exists for a given field. Otherwise it contains a number, which
-when multiplied by the block size, points to the offset in the file of the head
-block in the file/
-
-
-For version 3 memo field files, there are two fields in the head block of
-the file, NextBlockNo and Version. Depending on the
-Xbase software, some vendors products update these two fields, some do not.
-The Xbase library keeps the fields updated, but does not rely on them to
-be valued with correct data. This helps to support maximum compatibility
-amoungst all Xbase tools available.
-
-For version 4 memo field files,
-the first block in the .DBT file is a header block which is comprised of
-8 bytes of data which maintain the file's block size and the next free
-block available in the file. Blocks two through n contain the actual
-memo data. A chain of empty blocks is maintained within the file for
-potential future use. When an add or update routine executes, it first
-attempts to find a spot in a set of blocks which were earlier allocated,
-but not currently in use for the data. If no free spot is found, data are
-appended to the end of the file.
-
-The free block chain is sorted in block number order. When blocks of
-data are freed and added to the free block chain, the routines will attempt
-to concatonate free block chains togethor where possible. When a delete
-occurs, or an update which requires less space occurs, the new free space
-is added to the free block chain.
-
-
-
-
Various Memo File Block Types
-
-
-
-
Valid Block Types
-
Head Block
-
Only data block for memo field
-
First of several contiguous data block set
-
2-n of contiguous data block set
-
Only data block in free chain (version IV only)
-
First of several contiguous free block set (version IV only)
-
2-n of contiguous free block set (type 4 only)
-
-
-
-
Head Block Structure
-
-
-
1-4
LONG
Next Block ID
-
5-8
LONG
Not used all 0x00's
-
9-16
CHAR(8)
Filename (Version IV Only)
-
17
CHAR
Version (0x03 = Version III, 0x00 = Version IV)
-
18-20
CHAR(3)
Not used all 0x00's
-
21-22
SHORT
Block Size (Version IV only )
-
23-Remainder of block
CHAR
Not used
-
-
-
-
-
Version IV Head Data Block Structure
-
-
-
xbShort
0-1
-1
-
xbShort
2-3
Starting position of data (always 8 ?)
-
xbLong
4-7
Length of data includes first 8 bytes
-
char (9) - Blocksize
8-15
Data
-
-
-
-
Version IV Head Free Block Structure
-
-
-
xbLong
0-3
Next free block in the free block chain
-
xbLong
4-7
Number of free blocks in this contiguous free
- block set
-
-
-Version 3 and 4 memo fields are terminated with two contiguous 0x1A bytes of data.
-
+
+The objective of this chapter is to provide information regarding how
+the database files are utilized and document the various record structures.
+With the exception of the brief section on the record buffer, the
+information presented in this chapter is not required to use the
+Xbase library. It is mainly information describing internal file
+structures utilized by the Xbase routines.
+
+Xbase DBF files are comprised of a variable length header record which stores
+information about the file and describes
+the fixed length record format, followed by a series of fixed length
+data records.
+
+
+Each fixed length data record is preceded by a one byte indicator
+which identifiies if the record has been deleted. If the record is
+not deleted, the indicator is a space (0x20). If deleted, the
+indicator contains an asterisk (0x2A). Data fields are stored in records
+without field separators or record terminators.
+
+In earlier releases of dBASE, there is an ASCII NULL character
+between the $0D end of header indicator and the start of the data.
+This NULL was removed starting with dBASE III Plus, making a Plus
+header one byte shorter than an identically structured III file.
+The methods documented in the Xbase software and documentation follow
+the more recent version where the NULL character is not included.
+
+
+Each database file is comprised of zero, one or many records. A record is
+comprised of fields. Only one record is accessed at a time.
+
+Zero, one or many database files can be open simultaneously.
+
+
+
+
The Record Buffer
+
+When using the Xbase routines, each open data file has a record buffer
+which is manipulated by calling the database, index and field routines.
+
+
+If AutoCommit is turned on (Default), updates are committed from
+the record buffer to the database when a write, or append is performed.
+The library automatically writes updates to the database if the buffer has
+been updated and the record is repositioned or the database is closed.
+
+
+If AutoCommit is turned off, updates will need to be explicity
+committed to the database file with one of dbf->Put(), dbf->Append()
+or dbf->Commit() command depending on context..
+Updates can be cancelled with the Abort() command.
+
+The record buffer is not used for handling the actual data portion of
+memo fields. When working with memo fields, the application program must
+allocate enough buffer space for reading and writing memo fields or use
+the xbString class for handling memo data.
+
+Internal to the library, there is an additional record buffer which
+stores the original value of the data record before any changes are made.
+This is used by the index routines for finding and deleting original key
+values from any open indices before adding the new keys. If the key values
+are not changed, no index updates occur. Additionally, calling the Abort()
+method will back out any updates to the record buffer.
+
+
+
+
+
+
+
Xbase Database File Header - DBF Version III and Version IV
+
+The Xbase file header, located at the beginning of the database, describes
+the .DBF database. Knowledge of this structure is not necessary to
+effectively utilize the Xbase64 libraries.
+
+
+
+
Position
Length
Description
+
0
1 byte
file version number
+ (03H without a .DBT file)
+ (83H with a .DBT file)
+
1-3
3 bytes
date of last update
+ (YY MM DD) in binary format
+
4-7
32 bit number
number of records in data file
+
8-9
16 bit number
length of header structure
+
10-11
16 bit number
length of the record
+
12-31
20 bytes
reserved
+
32-n
32 bytes each
field descriptor record (see below)
+
n+1
1 byte
0DH as the field terminator
+
+
+
+
+
+
Xbase Field Descriptor Record
+The Xbase field descriptor record stores information about each field in the
+database. Each database has from 1 to 1024 fields.
+Knowledge of this structure is not necessary to
+effectively utilize the Xbase libraries.
+
+
+
+
Position
Length
Description
+
0-10
11 bytes
field name in ASCII zero-filled
+
11
1 byte
field type in ASCII (C N L D or M)
+
12-15
32 bit number
field data address
+
16
1 byte
field length in binary
+
17
1 byte
field decimal count in binary
+
18-31
14 bytes
reserved bytes (version 1.00)
+
+
+
+
+
Field Data Format
+Data are stored in ASCII format in the database as follows:
+
+
+
DATA TYPE
DATA RECORD STORAGE
+
Character
ASCII characters, left justified, right blank filled
+
Date
(8 digits in YYYYMMDD format, such as
+ 19601007 for October 7, 1960)
+
Logical
? Y y N n T t F f (? when not initialized)
+
Memo
10 digits representing a .DBT block number
+
Numeric
. 0 1 2 3 4 5 6 7 8 9 + -, right justified, left blank filled
+
Float (Version IV only)
. 0 1 2 3 4 5 6 7 8 9 + -, right justified, left blank filled
+
+
+
+
+
Memo Fields
+
+Memo fields store variable length data elements in a seperate .DBT file.
+The main .DBF file maintains a ten byte field which is used by the Xbase
+routines for determining the location of the data in the .DBT file.
+
+
+Xbase DBMS supports both dBASE III+ and dBASE IV version memo files.
+The version IV files are somewhat more efficient in that they reuse
+unused memo space when data are deleted or freed from use. With version
+III files, all new updates are appended to the end of the file and the
+unused space is not reclaimed until the datafiles are packed.
+
+
+Memo fields can be used for storing a variety of date type. However,
+type 3 files are limited to storing textual data because most internal
+memo field processing in a type 3 file relies on two contiguous 0x1a
+charaters.
+
+Type 4 memo fields can be used for storing BLOB (binary large object)
+data reliably, as the internal file structure does not rely on any
+special characters embedded in the data.
+
+A special note on storing string data in a memo field. For those users
+that are new to C/C++ programming, string fields typically end with
+a null (0x00) terminator character. As a general rule of thumb when using
+the library, add one to the length of any string when
+specifying the length of the data. This stores the null terminating byte
+with the data. For example, when storing string "This is a string"
+specified size should be 17, not 16.
+
+
+
Technical memo file information
+
+The following info on memo fields is for the curious.
+It is not required
+reading if you don't need to know the internals.
+
+
Memo files are made up of one or more blocks
+
For version III files, the block size is 512
+
For version IV files, the block size is a multiple of 512
+
The minimum amout of space necessary to store one memo field is
+one block or 512 bytes.
+
The default block size can be adjusted by manipulating the
+XB_DBT_BLOCK_SIZE macro in the options.h file.
+
+
+
The main .DBF file maintains a ten byte numeric field which is blank if
+no memo data exists for a given field. Otherwise it contains a number, which
+when multiplied by the block size, points to the offset in the file of the head
+block in the file/
+
+
+For version 3 memo field files, there are two fields in the head block of
+the file, NextBlockNo and Version. Depending on the
+Xbase software, some vendors products update these two fields, some do not.
+The Xbase library keeps the fields updated, but does not rely on them to
+be valued with correct data. This helps to support maximum compatibility
+amoungst all Xbase tools available.
+
+For version 4 memo field files,
+the first block in the .DBT file is a header block which is comprised of
+8 bytes of data which maintain the file's block size and the next free
+block available in the file. Blocks two through n contain the actual
+memo data. A chain of empty blocks is maintained within the file for
+potential future use. When an add or update routine executes, it first
+attempts to find a spot in a set of blocks which were earlier allocated,
+but not currently in use for the data. If no free spot is found, data are
+appended to the end of the file.
+
+The free block chain is sorted in block number order. When blocks of
+data are freed and added to the free block chain, the routines will attempt
+to concatonate free block chains togethor where possible. When a delete
+occurs, or an update which requires less space occurs, the new free space
+is added to the free block chain.
+
+
+
+
Various Memo File Block Types
+
+
+
+
Valid Block Types
+
Head Block
+
Only data block for memo field
+
First of several contiguous data block set
+
2-n of contiguous data block set
+
Only data block in free chain (version IV only)
+
First of several contiguous free block set (version IV only)
+
2-n of contiguous free block set (type 4 only)
+
+
+
+
Head Block Structure
+
+
+
1-4
LONG
Next Block ID
+
5-8
LONG
Not used all 0x00's
+
9-16
CHAR(8)
Filename (Version IV Only)
+
17
CHAR
Version (0x03 = Version III, 0x00 = Version IV)
+
18-20
CHAR(3)
Not used all 0x00's
+
21-22
SHORT
Block Size (Version IV only )
+
23-Remainder of block
CHAR
Not used
+
+
+
+
+
Version IV Head Data Block Structure
+
+
+
xbShort
0-1
-1
+
xbShort
2-3
Starting position of data (always 8 ?)
+
xbLong
4-7
Length of data includes first 8 bytes
+
char (9) - Blocksize
8-15
Data
+
+
+
+
Version IV Head Free Block Structure
+
+
+
xbLong
0-3
Next free block in the free block chain
+
xbLong
4-7
Number of free blocks in this contiguous free
+ block set
+
+
+Version 3 and 4 memo fields are terminated with two contiguous 0x1A bytes of data.
+
-The main objective of this chapter is to provide basic information regarding
-various field types supported by the library.
-
-Field names can be up to ten bytes in length and can contain characters, numbers
-or special characters in the name. The field methods are used to manipulate
-the data in a record of a data file. There are several types of fields.
-Field names, types and lengths are defined when a data file is created.
-After the file is created, the field characteristics can not be changed. To
-change field characteristics, a new database table must be defined with the new
-field requirements.
-
-
Memo Fields
-
-Memo fields are variable length data fields which are stored in two parts.
-This first part is a ten byte field which is stored
-in the fixed length record of the .DBF file. The variable data is stored in
-a seperate .DBT file in 512 byte blocks. The ten byte field in the fixed
-length portion of the record points to a .DBT block number.
-
-There are two versions of memo data files type III and type IV. Type IV
-is more advanced in that released space can be reused and it also
-supports BLOB data. The type III file is older technology, does not
-support dynamic space reclamation and only supports string data.
-See method xbDbf::SetVersion for controlling which version type you are
-using.
-
-
-To utilize memo fields, the application program must allocate a buffer
-which is large enough to handle the memo data.
-
-
Fields and Field Numbers
-
-The Xbase routines can access field data via using field names or field
-numbers. Field numbers are numbered 0-n where the first field in a datafile
-is field 0 going through the last field n. Accessing fields by number is
-slightly more efficient than accessing by name.
-
-
Strings
-
-Xbase64 includes support for a string class xbString.
-The xbString class interface was originally derived from the
-Draft Standard C++ Library by P.J. Plauger and modified.
-If you are familiar with other string classes, this one should be similar.
-Strings can be used to manage strings of character data.
-
+The main objective of this chapter is to provide basic information regarding
+various field types supported by the library.
+
+Field names can be up to ten bytes in length and can contain characters, numbers
+or special characters in the name. The field methods are used to manipulate
+the data in a record of a data file. There are several types of fields.
+Field names, types and lengths are defined when a data file is created.
+After the file is created, the field characteristics can not be changed. To
+change field characteristics, a new database table must be defined with the new
+field requirements.
+
+
Memo Fields
+
+Memo fields are variable length data fields which are stored in two parts.
+This first part is a ten byte field which is stored
+in the fixed length record of the .DBF file. The variable data is stored in
+a seperate .DBT file in 512 byte blocks. The ten byte field in the fixed
+length portion of the record points to a .DBT block number.
+
+There are two versions of memo data files type III and type IV. Type IV
+is more advanced in that released space can be reused and it also
+supports BLOB data. The type III file is older technology, does not
+support dynamic space reclamation and only supports string data.
+See method xbDbf::SetVersion for controlling which version type you are
+using.
+
+
+To utilize memo fields, the application program must allocate a buffer
+which is large enough to handle the memo data.
+
+
Fields and Field Numbers
+
+The Xbase routines can access field data via using field names or field
+numbers. Field numbers are numbered 0-n where the first field in a datafile
+is field 0 going through the last field n. Accessing fields by number is
+slightly more efficient than accessing by name.
+
+
Strings
+
+Xbase64 includes support for a string class xbString.
+The xbString class interface was originally derived from the
+Draft Standard C++ Library by P.J. Plauger and modified.
+If you are familiar with other string classes, this one should be similar.
+Strings can be used to manage strings of character data.
+
-
-The objective of this chapter is to provide information regarding
-the basic concepts of date arithmetic and supply generic
-C/C++ date methods.
-
-
Leap Years
-
-Due to the fact that it actually takes about 365 1/4 days for
-the earth to circle the sun, every fourth year and every fourth
-century have an extra day added to the end of February and the year
-is called a leap year. Leap years have 366 days, non leap years
-have 365 days. The following code segment describes how to
-determine if a given year is a leap year.
-
-A leap year is a year having 366 days, which can be evenly
-divisible by 4 and not by 100 or divisible by 400.
-
-There are also leap centuries. Leap centuries are years which
-are evenly divisible by 400.
-
-To calculate a leap year, the following code segment can be used
-
-
- int year;
-
- if(( year % 4 == 0 && year % 100 != 0 ) || year % 400 = 0 )
- LEAP_YEAR = TRUE;
- else
- LEAP_YEAR = FALSE
-
-
-
-
Julian Dates
-
-Around the time of Jesus Christ, a fellow with the name of Julias Ceasar
-established the Julian calendar. The Julian calendar established every
-fourth year as a leap year with 366 days and all other years having 365 days.
-The months were set up the same as they are with a Gregorian calendar, which
-is what we use today. A Julian date is defined as as the number of days from the
-first day of the year; February 1 would have a Julian day of 32.
-
-From a programmer's perspective, Julian dates are useful for doing date
-arithmetic, determining the difference between two dates or calculating
-a future or past date.
-
-To determine the difference between two dates, convert both dates to a
-Julian date and subtract one from the other.
-
-To calculate a future or past date, convert the base date to a Julian date,
-add (or subtract) the number of days necessary to (from) it and convert the
-julian date back to a Gregorian date.
-
-The Julian date routines use a base date of 01/01/0001.
-
-
Gregorian Dates
-
-In 1582, Pope Gregor XIII introduced a corrected form of the Julian calendar.
-Every 4th year still has 366 days except for century years. Century years
-were added as leap years if evenly divisible by 400. The year 2000 is a leap century.
-
-
-The methods supplied with this software are based on gregorian dates with
-the format of CCYYMMDD for century, year, month and day.
-
-
-
Date Formats
-
-All dates are stored in the .DBF files with format CCYYMMDD.
-All date routines work with dates formated with the same CCYYMMDD format.
+
+The objective of this chapter is to provide information regarding
+the basic concepts of date arithmetic and supply generic
+C/C++ date methods.
+
+
Leap Years
+
+Due to the fact that it actually takes about 365 1/4 days for
+the earth to circle the sun, every fourth year and every fourth
+century have an extra day added to the end of February and the year
+is called a leap year. Leap years have 366 days, non leap years
+have 365 days. The following code segment describes how to
+determine if a given year is a leap year.
+
+A leap year is a year having 366 days, which can be evenly
+divisible by 4 and not by 100 or divisible by 400.
+
+There are also leap centuries. Leap centuries are years which
+are evenly divisible by 400.
+
+To calculate a leap year, the following code segment can be used
+
+
+ int year;
+
+ if(( year % 4 == 0 && year % 100 != 0 ) || year % 400 = 0 )
+ LEAP_YEAR = TRUE;
+ else
+ LEAP_YEAR = FALSE
+
+
+
+
Julian Dates
+
+Around the time of Jesus Christ, a fellow with the name of Julias Ceasar
+established the Julian calendar. The Julian calendar established every
+fourth year as a leap year with 366 days and all other years having 365 days.
+The months were set up the same as they are with a Gregorian calendar, which
+is what we use today. A Julian date is defined as as the number of days from the
+first day of the year; February 1 would have a Julian day of 32.
+
+From a programmer's perspective, Julian dates are useful for doing date
+arithmetic, determining the difference between two dates or calculating
+a future or past date.
+
+To determine the difference between two dates, convert both dates to a
+Julian date and subtract one from the other.
+
+To calculate a future or past date, convert the base date to a Julian date,
+add (or subtract) the number of days necessary to (from) it and convert the
+julian date back to a Gregorian date.
+
+The Julian date routines use a base date of 01/01/0001. DBase julian Dates have an offset of 1721425L, reason unknown.
+
+
+
Gregorian Dates
+
+In 1582, Pope Gregor XIII introduced a corrected form of the Julian calendar.
+Every 4th year still has 366 days except for century years. Century years
+were added as leap years if evenly divisible by 400. The year 2000 is a leap century.
+
+
+The methods supplied with this software are based on gregorian dates with
+the format of CCYYMMDD for century, year, month and day.
+
+
+
Date Formats
+
+All dates are stored in the .DBF files with format CCYYMMDD.
+All date routines work with dates formated with the same CCYYMMDD format.
-
-The main objective of this chapter is to provide information regarding the
-basic concepts of using the Xbase64 Expression module.
-
-The Xbase64 library includes an expression parsing routine which assists
-application programmers by providing a high level data manipulation tool and
-also allows for building complex index keys.
-
-The functions included were derived from dBASE III Plus, dBASE IV and Clipper.
-
-Expressions are primarily used for index key definitions and filter criteria, but
-can also be used for other tasks as well.
-
-
-
Internal fuctioning
-The expression module works in two phases. Firstly, method
-ParseExpression is called and builds an expression tree from
-all the components of the expression. The tree is made up of individual
-nodes. The expression is checked for valid field names, literals,
-operands and functions. Any field references are resolved. If fields
-are used in an expression and the database name for the field is not
-included in the name with the -> operand, the routines assume the
-associated database has been successfully opened.
-
-Secondly, method ProcessExpression is called to process the
-expression tree created by ParseExpression(). The routine parses each
-node in the expression tree, executing functions, processing operands
-and manipulating data to produce the desired result.
-
-If an expression will be processed repeatedly, it is best to pre-parse the
-tree using ParseExpression, then for each new call to the expression,
-execute method ProcessExpression which processes the tree.
-
-
-
Expression Return Types
-Expressions will return a type of CHAR, NUMERIC, DATE or LOGICAL.
-
-An expression return type can be determined with method
-GetExpressionResultType after parsing it.
-
-Expressions returning a return type of CHAR are limited to a 200 byte internal
-buffer. There is also a 100 byte limit for NDX and MDX index key support. If
-the 200 byte limit is not large enough for your application, adjust field
-enum { WorkBufMaxLen = 200 }; in file exp.h.
-
-
-
-
Return Type
XBase Type
-
CHAR
xbString
-
NUMERIC
xbDouble
-
DATE
xbDate
-
LOGICAL
xbBool
-
-
-
-Date routines return an xbDate result. In addition, the date value can be
-extracted using GetStringResult() which returns YYYYMMDD or GetDoubleResult()
-which returns a julian value.
-
-
-
Expression Functions
-Each expression function also has a corresponding C++ function. It is
-slightly more efficient to call the C++ functions directly, rather than
-execute the expression parsing routines.
-
-To add a new function, find a function that is similar to what you need, copy
-the code and modify xbxbase.h, xbfuncs.cpp, xbexp.cpp and xb_test_expression.cpp.
-
-
-
-
Function Name
Return Type
Description
-
ABS
N
Calculate absolute value of numeric expression
-
ALLTRIM
C
Trim leading andtrailing whitespace from a string
-
ASC
N
Return ASCII code for first character in a string
-
AT
N
Return starting position of a string within a string
-
CDOW
C
Retun character weekday name for a date
-
CHR
C
Convert numeric expression to a character
-
CMONTH
C
Return month name for a date
-
CTOD
D
Return date from a character date input
-
DATE
D
Return system date
-
DAY
N
Return the day of the month from a date
-
DEL
C
Return record deletion status for a record
-
DELETED
L
Return record deletion status for a record<
-
DESCEND
1
Clipper DESCEND function
-
DOW
N
Return number of day of week
-
DTOC
C
Return character date from input date
-
DTOS
C
Return character CCYYMMDD date from input date
-
EXP
N
Return exponent value
-
IIF
C
Immediate If
-
INT
N
Convert number to integer, truncate any decimals
-
ISALPHA
L
Check if string begins with alpha character
-
ISLOWER
L
Check if string begins with lower case alpha character
-
ISUPPER
L
Check if string begins with upper case character
-
LEFT
C
Return left characters from a string
-
LEN
N
Return lenght of string
-
LOG
N
Calculate logarithm
-
LOWER
C
Convert upper case to lower case
-
LTRIM
C
Trim left side of a string
-
MAX
N
Return higher of two values
-
MIN
N
Return lesser of two values
-
MONTH
N
Return number of month for a given date
-
RECNO
N
Return current rec number for a given table
-
RECCOUNT
N
Return number of records in a given table
-
REPLICATE
C
Repeat character expression N times
-
RIGHT
C
Return right characters from as tring
-
RTRIM
C
Trim right side of string
-
SPACE
C
Generate a string of N spaces
-
SQRT
N
Calculate square root
-
STOD
D
Convert 8 byte CCYYMMDD date to date
-
STR
C
Convert number to character string
-
STRZERO
C
Convert number to character string with leading zeroes
-
SUBSTR
C
Extract portion oif one string from another string
-
TRIM
C
Trim left and right sides of a string
-
UPPER
C
Conver lower case to upper case
-
VAL
N
Convert numeric characters to number
-
YEAR
N
Return year for a given date
-
-
-
-
Expression Components
-Expressions are made up of one or more tokens. A token is one of literal,
-database field, operand or function. Literals are either numeric or character.
-Character literals are enclosed in 'single' or "double" quotes. numeric
-literals are a series of one or more contiguous numerals, ".", "+" or "-'".
-
-A field is simply a field name in the default database, or is in the form
-of database->fieldname.
-
-
-
-
Expression Literals
-
-
-
Type
Example
-
CHAR
"literal" or 'literal'
-
NUMERIC
+99999.99
-
DATE
{10/07/60} or {02/09/1989}
-
-
-
-
-
-
Expression Operators
-
-
Type
Operator
Precedence
Result
Notes
-
Parens
()
12
-
Numeric Operator
+ (unary)
11
N
-
Numeric Operator
- (unary)
11
N
-
Numeric Operator
--X
10
N
-
Numeric Operator
++X
10
N
-
Numeric Operator
**
9
N
-
Numeric Operator
^
9
N
-
Numeric Operator
%
8
N
-
Numeric Operator
*
8
N
-
Numeric Operator
/
8
N
-
Numeric Operator
+ Addition
7
N
-
Numeric Operator
- Subtraction
7
N
-
Numeric Operator
X--
6
N
-
Numeric Operator
X++
6
N
-
-
String Operator
+
5
C
Concatonate 1
-
String Operator
-
5
C
Concatonate 2
-
-
Relational Operator
=
4
L
N,C,D
-
Relational Operator
#, <>, !=
4
N,C,D
-
Relational Operator
<
4
L
N,C,D
-
Relational Operator
>
4
L
N,C,D
-
Relational Operator
<=
4
L
N,C,D
-
Relational Operator
>=
4
L
N,C,D
-
Relational Operator
$
4
L
N,C,D
-
Relational Operator
==
Clipper operator, not implemented yet
-
-
Logical Operator
NOT
3
L
Evaluated after all math and relational operators
-
Logical Operator
.NOT.
3
L
Evaluated after all math and relational operators
-
Logical Operator
AND
2
L
Evaluated after all math and relational operators
-
Logical Operator
.AND.
2
L
Evaluated after all math and relational operators
-
Logical Operator
OR
1
L
Evaluated after all math and relational operators
-
Logical Operator
.OR.
1
L
Evaluated after all math and relational operators
-
-
-
-
Examples
-
CUSTOMERS->LNAME + ", " + CUSTOMERS->FNAME
-
LNAME + ", " + FNAME
-
STARTDT + 90
-
YEAR( TODAY() )
-
IIF( "A" = "N", "true result", "false result" )
-
IIF( "A" = "N" .OR. 2 > 1 , "true result", "false result" )
-
+
+The main objective of this chapter is to provide information regarding the
+basic concepts of using the Xbase64 Expression module.
+
+The Xbase64 library includes an expression parsing routine which assists
+application programmers by providing a high level data manipulation tool and
+also allows for building complex index keys.
+
+The functions included were derived from dBASE III Plus, dBASE IV and Clipper.
+
+Expressions are primarily used for index key definitions and filter criteria, but
+can also be used for other tasks as well.
+
+
+
Internal fuctioning
+The expression module works in two phases. Firstly, method
+ParseExpression is called and builds an expression tree from
+all the components of the expression. The tree is made up of individual
+nodes. The expression is checked for valid field names, literals,
+operands and functions. Any field references are resolved. If fields
+are used in an expression and the database name for the field is not
+included in the name with the -> operand, the routines assume the
+associated database has been successfully opened.
+
+Secondly, method ProcessExpression is called to process the
+expression tree created by ParseExpression(). The routine parses each
+node in the expression tree, executing functions, processing operands
+and manipulating data to produce the desired result.
+
+If an expression will be processed repeatedly, it is best to pre-parse the
+tree using ParseExpression, then for each new call to the expression,
+execute method ProcessExpression which processes the tree.
+
+
Expression Return Types
+Expressions will return a type of CHAR, NUMERIC, DATE or LOGICAL.
+
+An expression return type can be determined with method
+GetExpressionResultType after parsing it.
+
+Expressions returning a return type of CHAR are limited to a 200 byte internal
+buffer. There is also a 100 byte limit for NDX and MDX index key support. If
+the 200 byte limit is not large enough for your application, adjust field
+enum { WorkBufMaxLen = 200 }; in file exp.h.
+
+
+
+
Return Type
XBase Type
+
CHAR
xbString
+
NUMERIC
xbDouble
+
DATE
xbDate
+
LOGICAL
xbBool
+
+
+
+Date routines return an xbDate result. In addition, the date value can be
+extracted using GetStringResult() which returns YYYYMMDD or GetDoubleResult()
+which returns a julian value.
+
+
+
Expression Functions
+Each expression function also has a corresponding C++ function. It is
+slightly more efficient to call the C++ functions directly, rather than
+execute the expression parsing routines.
+
+To add a new function, find a function that is similar to what you need, copy
+the code and modify xbxbase.h, xbfuncs.cpp, xbexp.cpp and xb_test_expression.cpp.
+
+
+
+
Function Name
Return Type
Description
+
ABS
N
Calculate absolute value of numeric expression
+
ALLTRIM
C
Trim leading andtrailing whitespace from a string
+
ASC
N
Return ASCII code for first character in a string
+
AT
N
Return starting position of a string within a string
+
CDOW
C
Retun character weekday name for a date
+
CHR
C
Convert numeric expression to a character
+
CMONTH
C
Return month name for a date
+
CTOD
D
Return date from a character date input
+
DATE
D
Return system date
+
DAY
N
Return the day of the month from a date
+
DEL
C
Return record deletion status for a record
+
DELETED
L
Return record deletion status for a record<
+
DESCEND
1
Clipper DESCEND function
+
DOW
N
Return number of day of week
+
DTOC
C
Return character date from input date
+
DTOS
C
Return character CCYYMMDD date from input date
+
EXP
N
Return exponent value
+
IIF
C
Immediate If
+
INT
N
Convert number to integer, truncate any decimals
+
ISALPHA
L
Check if string begins with alpha character
+
ISLOWER
L
Check if string begins with lower case alpha character
+
ISUPPER
L
Check if string begins with upper case character
+
LEFT
C
Return left characters from a string
+
LEN
N
Return lenght of string
+
LOG
N
Calculate logarithm
+
LOWER
C
Convert upper case to lower case
+
LTRIM
C
Trim left side of a string
+
MAX
N
Return higher of two values
+
MIN
N
Return lesser of two values
+
MONTH
N
Return number of month for a given date
+
RECNO
N
Return current rec number for a given table
+
RECCOUNT
N
Return number of records in a given table
+
REPLICATE
C
Repeat character expression N times
+
RIGHT
C
Return right characters from as tring
+
RTRIM
C
Trim right side of string
+
SPACE
C
Generate a string of N spaces
+
SQRT
N
Calculate square root
+
STOD
D
Convert 8 byte CCYYMMDD date to date
+
STR
C
Convert number to character string
+
STRZERO
C
Convert number to character string with leading zeroes. Clipper Function.
+
SUBSTR
C
Extract portion oif one string from another string
+
TRIM
C
Trim left and right sides of a string
+
UPPER
C
Conver lower case to upper case
+
VAL
N
Convert numeric characters to number
+
YEAR
N
Return year for a given date
+
+
+
+
Expression Components
+Expressions are made up of one or more tokens. A token is one of literal,
+database field, operand or function. Literals are either numeric or character.
+Character literals are enclosed in 'single' or "double" quotes. numeric
+literals are a series of one or more contiguous numerals, ".", "+" or "-'".
+
+A field is simply a field name in the default database, or is in the form
+of database->fieldname.
+
+
+
+
Expression Literals
+
+
+
Type
Example
+
CHAR
"literal" or 'literal'
+
NUMERIC
+99999.99
+
DATE
{10/07/60} or {02/09/1989}
+
+
+
+
Expression Operators
+
+
Type
Operator
Precedence
Result
Notes
+
Parens
()
12
+
Numeric Operator
+ (unary)
11
N
+
Numeric Operator
- (unary)
11
N
+
Numeric Operator
--X
10
N
+
Numeric Operator
++X
10
N
+
Numeric Operator
**
9
N
+
Numeric Operator
^
9
N
+
Numeric Operator
%
8
N
+
Numeric Operator
*
8
N
+
Numeric Operator
/
8
N
+
Numeric Operator
+ Addition
7
N
+
Numeric Operator
- Subtraction
7
N
+
Numeric Operator
X--
6
N
+
Numeric Operator
X++
6
N
+
+
String Operator
+
5
C
Concatonate 1
+
String Operator
-
5
C
Concatonate 2
+
+
Relational Operator
=
4
L
N,C,D
+
Relational Operator
#, <>, !=
4
N,C,D
+
Relational Operator
<
4
L
N,C,D
+
Relational Operator
>
4
L
N,C,D
+
Relational Operator
<=
4
L
N,C,D
+
Relational Operator
>=
4
L
N,C,D
+
Relational Operator
$
4
L
N,C,D
+
Relational Operator
==
Clipper operator, not implemented yet
+
+
Logical Operator
NOT
3
L
Evaluated after all math and relational operators
+
Logical Operator
.NOT.
3
L
Evaluated after all math and relational operators
+
Logical Operator
AND
2
L
Evaluated after all math and relational operators
+
Logical Operator
.AND.
2
L
Evaluated after all math and relational operators
+
Logical Operator
OR
1
L
Evaluated after all math and relational operators
+
Logical Operator
.OR.
1
L
Evaluated after all math and relational operators
+
+
+
+
Example Expressions
+
CUSTOMERS->LNAME + ", " + CUSTOMERS->FNAME
+
LNAME + ", " + FNAME
+
STARTDT + 90
+
DATE() - 7
+
YEAR( TODAY() )
+
IIF( "A" = "N", "true result", "false result" )
+
IIF( "A" = "N" .OR. 2 > 1 , "true result", "false result" )
+
-
-The objective of this chapter is to provide information regarding
-the basic concepts of index processing for the Xbase library.
-
-
-
Overview
-
-The Xbase library is designed to support multiple index types simultaneously.
-Dbase, Clipper and Foxbase each had their own index formats and ultimately the
-goal is to provide support for all the legacy index file formats.
-
-
-The 4.0.x rewrite includes the NDX and MDX formats. Earlier versions of the
-library included NTX and CDX formats which will be brought forward into the
-library rewrite at some point in the future.
-
-
-
Tags
-
-Each index file contains one or more tags depending on the file type. Each tag is a sort order
-and has characteristics: Sort order (ASC or DESC), unique or not unique and some formats support filtering.
-Each open table (dbf file) has an "active tag" for database operations.
-
-
-
Index updates
-
-The library automatically updates all tags in all open index files.
-
-
-
-
Index File Types
-
-
-
File Type
Source
Max Tags Per File
Auto Opened
Sort Order
Unique Keys
-
Reclaimed Nodes
Filter Support
Status
-
-
NDX
dBase
-
1
-
Optional
-
ASC only
-
Y
-
N
-
N
-
Available in 4.0.1
-
-
-
MDX
dBase
-
47
-
Yes
-
ASC or DESC
-
Y
-
Y
-
Y
-
Available in 4.0.1
-
-
-
NTX
-
Clipper
-
1
-
Optional
-
?
-
?
-
?
-
?
-
Pending upgrades
-
-
-
CDX
-
Fox Pro
-
?
-
?
-
?
-
?
-
?
-
?
-
Pending upgrades
-
-
-
IDX
Fox Pro
Undeveloped
-
-
-
-
-
-
Index/Tag Methods
-
-
Method
Description
-
-
-
xbDbf::CheckTagIntegrity
Checks a tag for missing or duplicate entries. Available if XB_DEBUG_SUPPORT is on.
-
-
-
xbDbf::CreateTag
Create a new tag.
-
-
-
xbDbf::DeleteTag
Delete existing tag.
-
-
-
xbDbf::Find
Find key value for the active tag.
-
-
-
xbDbf::GetFirsKey
Retrieve the first key for the active tag.
-
-
-
xbDbf::GetLastKey
Retrieve the last key for the active tag.
-
-
-
xbDbf::GetNextKey
Retrieve the next key for the active tag.
-
-
-
xbDbf::GetPrevKey
Retrieve the previous key for the active tag.
-
-
-
xbDbf::GetCurTag
Retrieve the tag name key for the active tag.
-
-
-
xbDbf::OpenIndex
Open an index file. Only used for index files that aren't automatically opened.
-
-
-
xbDbf::Reindex
Rebuild a tag. Available if XB_DEBUG_SUPPORT is on.
+
+The objective of this chapter is to provide information regarding
+the basic concepts of index processing for the Xbase library.
+
+
+
Overview
+
+The Xbase library is designed to support multiple index types simultaneously.
+Dbase, Clipper and Foxbase each had their own index formats and ultimately the
+goal is to provide support for all the legacy index file formats.
+
+
+The 4.0.x rewrite includes the NDX and MDX formats. Earlier versions of the
+library included NTX and CDX formats which will be brought forward into the
+library rewrite at some point in the future.
+
+
+
Tags
+
+Each index file contains one or more tags depending on the file type. Each tag is a sort order
+and has characteristics: Sort order (ASC or DESC), unique or not unique and some formats support filtering.
+Each open table (dbf file) has an "active tag" for database operations.
+
+
Index processing design
+
+The library is construcuted to handle index files with multiple tags per file. Single tag files like the NDX indices
+are treated as a multi tag file, but there is only one tag. This allows for maximum flexibility for future
+additional index types.
+
+
+
+
Index updates
+
+The library automatically updates all tags in all open index files.
+
+
+
+
Index File Types
+
+
+
File Type
Source
Max Tags Per File
Auto Opened
Sort Order
Unique Keys
+
Reclaimed Nodes
Filter Support
Status
+
+
NDX
dBase
+
1
+
Optional
+
ASC only
+
Y
+
N
+
N
+
Available in 4.0.1
+
+
+
MDX
dBase
+
47
+
Yes
+
ASC or DESC
+
Y
+
Y
+
Y
+
Available in 4.0.1
+
+
+
NTX
+
Clipper
+
1
+
Optional
+
?
+
?
+
?
+
?
+
Pending upgrades
+
+
+
CDX
+
Fox Pro
+
?
+
?
+
?
+
?
+
?
+
?
+
Pending upgrades
+
+
+
IDX
Fox Pro
Undeveloped
+
+
+
+
+
+
Index/Tag Methods
+
+
Method
Description
+
+
+
xbDbf::CheckTagIntegrity
Checks a tag for missing or duplicate entries. Available if XB_DEBUG_SUPPORT is on.
+
+
+
xbDbf::CreateTag
Create a new tag.
+
+
+
xbDbf::DeleteTag
Delete existing tag.
+
+
+
xbDbf::Find
Find key value for the active tag.
+
+
+
xbDbf::GetFirsKey
Retrieve the first key for the active tag.
+
+
+
xbDbf::GetLastKey
Retrieve the last key for the active tag.
+
+
+
xbDbf::GetNextKey
Retrieve the next key for the active tag.
+
+
+
xbDbf::GetPrevKey
Retrieve the previous key for the active tag.
+
+
+
xbDbf::GetCurTag
Retrieve the tag name key for the active tag.
+
+
+
xbDbf::OpenIndex
Open an index file. Only used for index files that aren't automatically opened.
+
+
+
xbDbf::Reindex
Rebuild a tag. Available if XB_DEBUG_SUPPORT is on.
-
-The objective of this chapter is to provide information regarding the
-basic concepts of how .NDX index files work in the Xbase environment.
-
-The information in this chapter has been gathered by searching the internet
-and by examining the structure of known good NDX indexes.
-
-
NDX Index File Characteristics
-
-
NDX indices maintain keys in ascending sort order only.
-
NDX indices support unique or non unique keys.
-
-Unique keys must be unique if the UniqueKeyOption is not set to XB_EMULATE_DBASE.
-If the UniqueKeyOption is set to XB_EMULATE_DBASE, then the database update routines will
-add a record to the table, but not add a corresponding duplicate key to the index tag.
-The UniqueKeyOption is off (don't allow duplicates) by default.
-
-
-Non-unique Keys are not required to be unique, duplicate
-keys are allowed if the index is created with the XB_NOT_UNIQUE
-setting. Duplicate keys are stored in record number order.
-
-
NDX indexes are automatically updated by the Xbase library after the
-indices are opened.
-
-
Character keys are left justified and padded on the right with spaces.
-
-
Numeric keys are stored as eight byte double values.
-
-
NDX File Internals
-
-NDX files are comprised of two or more 512 byte blocks or nodes of
-information. There are three types of nodes: Head Nodes, Interior
-Nodes and Leaf Nodes.
-
-
The Head Node is the first node in the file starting at
-position zero (0) and contains information about the NDX file. There
-is only one Head Node in each index and it always starts at the
-beginning of the file.
-
-
-
-
NDX Header Node
-
-
Type
Size
Field Name
Description
-
xbLong
4
StartNode
This identifies the root node of
- the index. The Header node is node 0.
-
xbLong
4
Total Nodes
This is the count of the total
- nodes in the index. The count includes the header node.
-
-The following structure is used by the Xbase NDX routines:
-
- struct NdxHeadNode{
- xbLong StartNode; /* header node is node 0 */
- xbLong TotalNodes; /* includes header node */
- xbLong NoOfKeys; /* actual count + 1 */
- xbUShort KeyLen; /* length of key data */
- xbUShort KeysPerNode; /* max number of keys per node */
- xbUShort KeyType; /* 00 = Char, 01 = Numeric */
- xbLong KeySize; /* KeyLen + 8 */
- char Reserved1; /* Not sure about this one */
- char Unique; /* 00 = not unique, 01 = unique*/
- char KeyExpression[488]; /* key definition */
- }
-
-
-
-
Interior and Leaf Nodes
-
-Interior Nodes and Leaf Nodes share the same structure in an NDX file.
-The difference between the two types is that interior nodes point to
-other interior nodes or leaf nodes and leaf nodes point to records in
-a DBF file. Interior nodes are optional nodes in an NDX file,
-however if there are more than a few keys in the index there will
-certainly be one or more interior nodes in the file. There will
-always be at least one leaf node in the file. Leaf nodes contain DBF
-record numbers which point to the location of the record in the
-DBF file.
-
-Interior nodes have field LeftNodeNo valued which points to the node
-which points to the keys which are less than the key value in the KeyVal
-field. There is one more LeftNodeNo value in the node than there are keys.
-The Last LeftNodeNo points to the node which is greater than the highest
-key value in the node. Interior nodes have 0 in the value for the
-DbfRecNo field.
-
-Leaf nodes have 0 in the LeftNodeNo field but do have a value in the
-DbfRecNo field which points to a DFB record.
-
-
-
-
NDX Interior Node and Leaf Node Structure
-
-
Type
Size
Field Name
Description
-
xbLong
4
NoOfKeysThisNode
The number of key values in this node.
-
char
508
KeyRec
A repeating structure of
- pointers and keys. See the next table for the KeyRec structure.
-
-
-
-
KeyRec Structure
-
-
Type
Size
Field Name
Description
-
xbLong
4
LeftNodeNo
The node number of the lower node
- for this key. 0 in Leaf Nodes.
-
xbLong
4
DbfRecNo
The DBF record number for this key.
- 0 in Interior Nodes.
-
char
KeyLen
KeyValue
The key value.
-
-
-
-For those interested in knowing how the Xbase DBMS manipulates and
-navigates index files, the following discussion may be helpfull.
-
-Xbase DBMS navigates through NDX files by using an in-memory chain
-of nodes of the current location / key in use. It starts by reading the
-Head Node of the index, which points to the first node of the file. The
-first node of the file will be a leaf node if the index is small or will
-be an interior node if the index has more than one leaf node. The first
-interior node is loaded into memory, added to the node chain and points
-to the next node to read. The node is made up of one or more keys. If
-it is a leaf node, the logic looks for a matching key on the node.
-Otherwise, if it is an interior node, the logic looks at the keys until the
-search key is greater than or equal to the key in the node and then
-traverses down the tree to the next node. It continues down the tree,
-adding the nodes to the in-memory node chain until it reaches the correct
-leaf node. If it finds a matching key in the leaf node, it returns a
-XB_FOUND condition. If it doesn't find an exact match in the leaf node, it
-returns a XB_NOT_FOUND condition and stops on the key which is greater than
-the search key given.
-
-
-
+
+The objective of this chapter is to provide information regarding the
+basic concepts of how .NDX index files work in the Xbase environment.
+
+The information in this chapter has been gathered by searching the internet
+and by examining the structure of known good NDX indexes.
+
+
NDX Index File Characteristics
+
+
NDX indices maintain keys in ascending sort order only.
+
NDX indices support unique or non unique keys.
+
+Unique keys must be unique if the UniqueKeyOption is not set to XB_EMULATE_DBASE.
+If the UniqueKeyOption is set to XB_EMULATE_DBASE, then the database update routines will
+add a record to the table, but not add a corresponding duplicate key to the index tag.
+The UniqueKeyOption is off (don't allow duplicates) by default.
+
+
+Non-unique Keys are not required to be unique, duplicate
+keys are allowed if the index is created with the XB_NOT_UNIQUE
+setting. Duplicate keys are stored in record number order.
+
+
NDX indexes are automatically updated by the Xbase library after the
+indices are opened.
+
+
Character keys are left justified and padded on the right with spaces.
+
+
Numeric keys are stored as eight byte double values.
+
+
NDX File Internals
+
+NDX files are comprised of two or more 512 byte blocks or nodes of
+information. There are three types of nodes: Head Nodes, Interior
+Nodes and Leaf Nodes.
+
+
The Head Node is the first node in the file starting at
+position zero (0) and contains information about the NDX file. There
+is only one Head Node in each index and it always starts at the
+beginning of the file.
+
+
+
+
NDX Header Node
+
+
Type
Size
Field Name
Description
+
xbLong
4
StartNode
This identifies the root node of
+ the index. The Header node is node 0.
+
xbLong
4
Total Nodes
This is the count of the total
+ nodes in the index. The count includes the header node.
+
+The following structure is used by the Xbase NDX routines:
+
+ struct NdxHeadNode{
+ xbLong StartNode; /* header node is node 0 */
+ xbLong TotalNodes; /* includes header node */
+ xbLong NoOfKeys; /* actual count + 1 */
+ xbUShort KeyLen; /* length of key data */
+ xbUShort KeysPerNode; /* max number of keys per node */
+ xbUShort KeyType; /* 00 = Char, 01 = Numeric */
+ xbLong KeySize; /* KeyLen + 8 */
+ char Reserved1; /* Not sure about this one */
+ char Unique; /* 00 = not unique, 01 = unique*/
+ char KeyExpression[488]; /* key definition */
+ }
+
+
+
+
Interior and Leaf Nodes
+
+Interior Nodes and Leaf Nodes share the same structure in an NDX file.
+The difference between the two types is that interior nodes point to
+other interior nodes or leaf nodes and leaf nodes point to records in
+a DBF file. Interior nodes are optional nodes in an NDX file,
+however if there are more than a few keys in the index there will
+certainly be one or more interior nodes in the file. There will
+always be at least one leaf node in the file. Leaf nodes contain DBF
+record numbers which point to the location of the record in the
+DBF file.
+
+Interior nodes have field LeftNodeNo valued which points to the node
+which points to the keys which are less than the key value in the KeyVal
+field. There is one more LeftNodeNo value in the node than there are keys.
+The Last LeftNodeNo points to the node which is greater than the highest
+key value in the node. Interior nodes have 0 in the value for the
+DbfRecNo field.
+
+Leaf nodes have 0 in the LeftNodeNo field but do have a value in the
+DbfRecNo field which points to a DFB record.
+
+
+
+
NDX Interior Node and Leaf Node Structure
+
+
Type
Size
Field Name
Description
+
xbLong
4
NoOfKeysThisNode
The number of key values in this node.
+
char
508
KeyRec
A repeating structure of
+ pointers and keys. See the next table for the KeyRec structure.
+
+
+
+
KeyRec Structure
+
+
Type
Size
Field Name
Description
+
xbLong
4
LeftNodeNo
The node number of the lower node
+ for this key. 0 in Leaf Nodes.
+
xbLong
4
DbfRecNo
The DBF record number for this key.
+ 0 in Interior Nodes.
+
char
KeyLen
KeyValue
The key value.
+
+
+
+For those interested in knowing how the Xbase DBMS manipulates and
+navigates index files, the following discussion may be helpfull.
+
+Xbase DBMS navigates through NDX files by using an in-memory chain
+of nodes of the current location / key in use. It starts by reading the
+Head Node of the index, which points to the first node of the file. The
+first node of the file will be a leaf node if the index is small or will
+be an interior node if the index has more than one leaf node. The first
+interior node is loaded into memory, added to the node chain and points
+to the next node to read. The node is made up of one or more keys. If
+it is a leaf node, the logic looks for a matching key on the node.
+Otherwise, if it is an interior node, the logic looks at the keys until the
+search key is greater than or equal to the key in the node and then
+traverses down the tree to the next node. It continues down the tree,
+adding the nodes to the in-memory node chain until it reaches the correct
+leaf node. If it finds a matching key in the leaf node, it returns a
+XB_FOUND condition. If it doesn't find an exact match in the leaf node, it
+returns a XB_NOT_FOUND condition and stops on the key which is greater than
+the search key given.
+
+
+
-
-The objective of this chapter is to provide information regarding the
-basic concepts of how .MDX index files work in the Xbase environment.
-
-The information in this chapter has been gathered by searching the internet
-and by examining the structure of known good
-
-
MDX Index File Characteristics
-
-
MDX files are the same name as the corresponding DBF file with an MDX extension.
-
MDX files are automatically opened by the library when the DBF file is opened.
-
MDX index files (aka prod indices) contain from one to 47 tags, where each tag has it's own key characteristics.
-
MDX indices maintain keys in either ascending or descending sort order.
-
MDX indices support filtered keys. For example, a filter of .NOT. DELETED() will keep deleted records out
-of the index tag.
-
MDX indices are automatically updated by the Xbase library after the
-indices are opened.
-
-
MDX indices support unique or non unique keys.
-
-Unique keys must be unique if the UniqueKeyOption is not set to XB_EMULATE_DBASE.
-If the UniqueKeyOption is set to XB_EMULATE_DBASE, then the database update routines will
-add a record to the table, but not add a corresponding duplicate key to the index tag.
-The UniqueKeyOption is off (don't allow duplicates) by default.
-
-
-Non-unique Keys are not required to be unique, duplicate
-keys are allowed if the index is created with the XB_NOT_UNIQUE
-setting. Duplicate keys are stored in record number order.
-
-
-
Character keys are left justified and padded on the right with spaces.
-
Numeric keys are stored as twelve byte BCD values.
-
Date keys are stored as eight byte double julian values.
-
-
MDX File Internals
-
-The following information is not needed to use the library, it is just included
-for general information.
-
-MDX files are comprised of 512 pages where multiple pages make a block. The default
-setting is 1024 blocks, each block containing two pages.
-
-The first four pages contain:
-
Bytes 0 - 543 contain general file information.
-
Bytes 544 - 2047 is a 47 item table containing specific tag information.
-
-
-Pages five and beyound:
-
Bytes 2048 and beyond contain tag header blocks, interior nodes and leaf nodes.
-
-
-
-
Interior and Leaf Nodes
-
-Interior Nodes and Leaf Nodes share the same structure in an NDX file with
-the exception that interior nodes have a non zero number immediately
-after the rightmost key on the node.
-
-Interior nodes point to other interior nodes or leaf nodes and leaf nodes point
-to records in a DBF file. Interior nodes are optional nodes in an MDX file,
-however if there are more than a few keys in the index there will
-certainly be one or more interior nodes in the file. There will
-always be at least one leaf node per tag in the file. Leaf nodes
-contain DBF record numbers which point to the location of the record
-in the DBF file.
+
+The objective of this chapter is to provide information regarding the
+basic concepts of how .MDX index files work in the Xbase environment.
+
+The information in this chapter has been gathered by searching the internet
+and by examining the structure of known good
+
+
MDX Index File Characteristics
+
+
MDX files are the same name as the corresponding DBF file with an MDX extension.
+
MDX files are automatically opened by the library when the DBF file is opened.
+
MDX index files (aka prod indices) contain from one to 47 tags, where each tag has it's own key characteristics.
+
MDX indices maintain keys in either ascending or descending sort order.
+
MDX indices support filtered keys. For example, a filter of .NOT. DELETED() will keep deleted records out
+of the index tag.
+
MDX indices are automatically updated by the Xbase library after the
+indices are opened.
+
+
MDX indices support unique or non unique keys.
+
+Unique keys must be unique if the UniqueKeyOption is not set to XB_EMULATE_DBASE.
+If the UniqueKeyOption is set to XB_EMULATE_DBASE, then the database update routines will
+add a record to the table, but not add a corresponding duplicate key to the index tag.
+The UniqueKeyOption is off (don't allow duplicates) by default.
+
+
+Non-unique Keys are not required to be unique, duplicate
+keys are allowed if the index is created with the XB_NOT_UNIQUE
+setting. Duplicate keys are stored in record number order.
+
+
+
Character keys are left justified and padded on the right with spaces.
+
Numeric keys are stored as twelve byte BCD values.
+
Date keys are stored as eight byte double julian values.
+
+
MDX File Internals
+
+The following information is not needed to use the library, it is just included
+for general information.
+
+MDX files are comprised of 512 pages where multiple pages make a block. The default
+setting is 1024 blocks, each block containing two pages.
+
+The first four pages contain:
+
Bytes 0 - 543 contain general file information.
+
Bytes 544 - 2047 is a 47 item table containing specific tag information.
+
+
+Pages five and beyound:
+
Bytes 2048 and beyond contain tag header blocks, interior nodes and leaf nodes.
+
+
+
+
Interior and Leaf Nodes
+
+Interior Nodes and Leaf Nodes share the same structure in an NDX file with
+the exception that interior nodes have a non zero number immediately
+after the rightmost key on the node.
+
+Interior nodes point to other interior nodes or leaf nodes and leaf nodes point
+to records in a DBF file. Interior nodes are optional nodes in an MDX file,
+however if there are more than a few keys in the index there will
+certainly be one or more interior nodes in the file. There will
+always be at least one leaf node per tag in the file. Leaf nodes
+contain DBF record numbers which point to the location of the record
+in the DBF file.
This chapter might be out of date. The NTX module is pending review and updates for release 4.x.x
-
-The objective of this chapter is to provide information regarding the
-basic concepts of how .NTX index files work in the Xbase environment.
-
-The information in this chapter has been gathered by searching the internet
-and by examining the structure of known good NTX indexes.
-
-
NTX Index File Characteristics
-
-
NTX indices maintain keys in ascending sort order only.
-
NTX indices support unique or non unique keys.
-
-Unique keys must be unique. The database update routines will
-fail if an attempt to add a non-unique key is performed.
-
-Non-unique Keys are not required to be unique, duplicate
-keys are allowed if the index is created with the XB_NOT_UNIQUE
-setting. Duplicate keys are stored in record number order.
-
-
NTX indexes are automatically updated by the Xbase library after the
-indices are opened.
-
-
Character keys are left justified and padded on the right with spaces.
-
-
Numeric keys are stored as eight byte double values.
-
-The numeric key processing logic performs floating point numeric
-calculations on eight byte double values. This logic may be compute intensive
-and slow on older machines, especially the older intel processors without a
-math coprocessor chip.
-
-
-
-
-
NTX File Internals
-
-NTX files are comprised of two or more 1024 byte blocks or nodes of
-information. There are three types of nodes: Head Nodes, Interior
-Nodes and Leaf Nodes.
-
-The Head Node is the first node in the file starting at
-position zero (0) and contains information about the NTX file. There
-is only one Head Node in each index and it always starts at the
-beginning of the file.
-The following structure is used by the Xbase NTX routines:
-
-
-struct NtxHeadNode { /* ntx header on disk */
- xbUShort Signature; /* Clipper 5.x or Clipper 87 */
- xbUShort Version; /* Compiler Version */
- /* Also turns out to be */
- /* a last modified counter */
- xbULong StartNode; /* Offset in file for first node */
- xbULong UnusedOffset; /* First free node offset */
- xbUShort KeySize; /* Size of items (KeyLen + 8) */
- xbUShort KeyLen; /* Size of the Key */
- xbUShort DecimalCount; /* Number of decimal positions */
- xbUShort KeysPerNode; /* Max number of keys per node */
- xbUShort HalfKeysPerNode; /* Min number of keys per node */
- char KeyExpression[256]; /* Null terminated key expression */
- unsigned Unique; /* Unique Flag */
- char NotUsed[745];
-};
-
-
-
-
-
-
Interior and Leaf Nodes
-
-NTX files use a B-tree system to store keys. A B-tree is a balanced,
-on disk tree who's design minimizes disk access. Interior Nodes and
-Leaf Nodes share the same structure in an NTX file. The difference is
-that interior nodes point to other nodes. Leaf nodes point to
-nothing. Keys in both interior nodes and leaf nodes point to records
-in a DBF file.
-
-Interior nodes have field LeftNodeNo valued which points to the node
-which points to the keys which are less than the key value in the KeyVal
-field. There is one more LeftNodeNo value in the node than there are keys. The
-Last LeftNodeNo points to the node which is greater than the highest
-key value in the node.
-
-Leaf nodes have 0 in the LeftNodeNo field.
-
-
-
-
NTX Interior Node and Leaf Node Structure
-
-
Type
Size
Field Name
Description
-
xbShort
2
NoOfKeysThisNode
The number of key values in this node. (N)
-
Array of xbUShort
2
offsets[]
Array of
-
HeadNode.KeysPerNode +1
unsigned longs.
- These values are the offsets (in bytes) of each key
- in this node, from the beginning of the node.
-
char
variable
KeyRecs
A repeating structure of
- pointers and keys. See the next table for the KeyRec structure.
-
-
-
-One primary difference between NDX files and NTX files is that NTX
-files uses an array of offsets on all interior and leaf nodes. Each
-offset is the byte count from the beginning of the node where each
-KeyRec will be found. The order of the array of offsets determines
-the order of keys on a given node. When keys are added or deleted,
-thus changing the order of the keys on a node, only the order of the
-offset array is changed. All other key data is not moved. This results
-in slightly better index performance.
-
-
-
-
KeyRec Structure
-
-
Type
Size
Field Name
Description
-
xbLong
4
LeftNodeNo
The node number (offset from beginning of file) of the lower node
- for this key. 0 in Leaf Nodes.
-
xbLong
4
DbfRecNo
The DBF record number for this key.
- 0 in Interior Nodes.
-
char
KeyLen
KeyValue
The key value.
-
-
-
-For those interested in knowing how the Xbase DBMS manipulates and
-navigates index files, the following discussion may be helpfull.
-
-Xbase DBMS navigates through NTX files by using an in-memory chain of
-nodes of the current location / key in use. It starts by reading the
-Head Node of the index, which points to the first node of the
-file. The first node of the file will be a leaf node if the index is
-small or will be an interior node if the index has more than one leaf
-node. The first interior node is loaded into memory, added to the
-node chain and points to the next node to read. The node is made up
-of one or more keys. If it is a leaf node, the logic looks for a
-matching key on the node. It continues down the tree, adding the
-nodes to the in-memory node chain until it reaches the correct
-node. If it finds a matching key in the leaf node, it returns a XB_FOUND
-condition. If it doesn't find an exact match in the leaf node, it
-returns a XB_NOT_FOUND condition and stops on the key which is greater
-than the search key given.
-
-
-
-Author: Bob Cotton - bob@synxis.com
-
-
diff --git a/docs/html/xbc9.html b/docs/html/xbc9.html
new file mode 100755
index 0000000..afcd2fa
--- /dev/null
+++ b/docs/html/xbc9.html
@@ -0,0 +1,180 @@
+
+
+Xbase DBMS Chapter 9
+
+
NTX Indices
+
Chapter Updated 11/28/22
+
+
+
This chapter might be out of date. The NTX module is pending review and updates for release 4.x.x
+
+The objective of this chapter is to provide information regarding the
+basic concepts of how .NTX index files work in the Xbase environment.
+
+The information in this chapter has been gathered by searching the internet
+and by examining the structure of known good NTX indexes.
+
+
NTX Index File Characteristics
+
+
NTX indices maintain keys in ascending sort order only.
+
NTX indices support unique or non unique keys.
+
+Unique keys must be unique. The database update routines will
+fail if an attempt to add a non-unique key is performed.
+
+Non-unique Keys are not required to be unique, duplicate
+keys are allowed if the index is created with the XB_NOT_UNIQUE
+setting. Duplicate keys are stored in record number order.
+
+
NTX indexes are automatically updated by the Xbase library after the
+indices are opened.
+
+
Character keys are left justified and padded on the right with spaces.
+
+
Numeric keys are stored as eight byte double values.
+
+The numeric key processing logic performs floating point numeric
+calculations on eight byte double values. This logic may be compute intensive
+and slow on older machines, especially the older intel processors without a
+math coprocessor chip.
+
+
+
+
+
NTX File Internals
+
+NTX files are comprised of two or more 1024 byte blocks or nodes of
+information. There are three types of nodes: Head Nodes, Interior
+Nodes and Leaf Nodes.
+
+The Head Node is the first node in the file starting at
+position zero (0) and contains information about the NTX file. There
+is only one Head Node in each index and it always starts at the
+beginning of the file.
+The following structure is used by the Xbase NTX routines:
+
+
+struct NtxHeadNode { /* ntx header on disk */
+ xbUShort Signature; /* Clipper 5.x or Clipper 87 */
+ xbUShort Version; /* Compiler Version */
+ /* Also turns out to be */
+ /* a last modified counter */
+ xbULong StartNode; /* Offset in file for first node */
+ xbULong UnusedOffset; /* First free node offset */
+ xbUShort KeySize; /* Size of items (KeyLen + 8) */
+ xbUShort KeyLen; /* Size of the Key */
+ xbUShort DecimalCount; /* Number of decimal positions */
+ xbUShort KeysPerNode; /* Max number of keys per node */
+ xbUShort HalfKeysPerNode; /* Min number of keys per node */
+ char KeyExpression[256]; /* Null terminated key expression */
+ unsigned Unique; /* Unique Flag */
+ char NotUsed[745];
+};
+
+
+
+
+
+
Interior and Leaf Nodes
+
+NTX files use a B-tree system to store keys. A B-tree is a balanced,
+on disk tree who's design minimizes disk access. Interior Nodes and
+Leaf Nodes share the same structure in an NTX file. The difference is
+that interior nodes point to other nodes. Leaf nodes point to
+nothing. Keys in both interior nodes and leaf nodes point to records
+in a DBF file.
+
+Interior nodes have field LeftNodeNo valued which points to the node
+which points to the keys which are less than the key value in the KeyVal
+field. There is one more LeftNodeNo value in the node than there are keys. The
+Last LeftNodeNo points to the node which is greater than the highest
+key value in the node.
+
+Leaf nodes have 0 in the LeftNodeNo field.
+
+
+
+
NTX Interior Node and Leaf Node Structure
+
+
Type
Size
Field Name
Description
+
xbShort
2
NoOfKeysThisNode
The number of key values in this node. (N)
+
Array of xbUShort
2
offsets[]
Array of
+
HeadNode.KeysPerNode +1
unsigned longs.
+ These values are the offsets (in bytes) of each key
+ in this node, from the beginning of the node.
+
char
variable
KeyRecs
A repeating structure of
+ pointers and keys. See the next table for the KeyRec structure.
+
+
+
+One primary difference between NDX files and NTX files is that NTX
+files uses an array of offsets on all interior and leaf nodes. Each
+offset is the byte count from the beginning of the node where each
+KeyRec will be found. The order of the array of offsets determines
+the order of keys on a given node. When keys are added or deleted,
+thus changing the order of the keys on a node, only the order of the
+offset array is changed. All other key data is not moved. This results
+in slightly better index performance.
+
+
+
+
KeyRec Structure
+
+
Type
Size
Field Name
Description
+
xbLong
4
LeftNodeNo
The node number (offset from beginning of file) of the lower node
+ for this key. 0 in Leaf Nodes.
+
xbLong
4
DbfRecNo
The DBF record number for this key.
+ 0 in Interior Nodes.
+
char
KeyLen
KeyValue
The key value.
+
+
+
+For those interested in knowing how the Xbase DBMS manipulates and
+navigates index files, the following discussion may be helpfull.
+
+Xbase DBMS navigates through NTX files by using an in-memory chain of
+nodes of the current location / key in use. It starts by reading the
+Head Node of the index, which points to the first node of the
+file. The first node of the file will be a leaf node if the index is
+small or will be an interior node if the index has more than one leaf
+node. The first interior node is loaded into memory, added to the
+node chain and points to the next node to read. The node is made up
+of one or more keys. If it is a leaf node, the logic looks for a
+matching key on the node. It continues down the tree, adding the
+nodes to the in-memory node chain until it reaches the correct
+node. If it finds a matching key in the leaf node, it returns a XB_FOUND
+condition. If it doesn't find an exact match in the leaf node, it
+returns a XB_NOT_FOUND condition and stops on the key which is greater
+than the search key given.
+
+
+
+Author: Bob Cotton - bob@synxis.com
+