From c894a7cdd8686ea695602a23a511a3f1b0d047be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 14 Aug 2023 21:07:46 +0200 Subject: New upstream version 4.1.4 --- docs/howto/AddAnIndex.txt | 11 +++++ docs/howto/AddNewMemoFileType.txt | 9 ++++ docs/howto/GettingStarted.txt | 86 +++++++++++++++++++++++++++++++++++++++ docs/howto/Hacking.txt | 28 +++++++++++++ docs/howto/Locking.txt | 53 ++++++++++++++++++++++++ docs/howto/mac_cmake_compile.txt | 1 + 6 files changed, 188 insertions(+) create mode 100755 docs/howto/AddAnIndex.txt create mode 100755 docs/howto/AddNewMemoFileType.txt create mode 100755 docs/howto/GettingStarted.txt create mode 100755 docs/howto/Hacking.txt create mode 100755 docs/howto/Locking.txt create mode 100755 docs/howto/mac_cmake_compile.txt (limited to 'docs/howto') diff --git a/docs/howto/AddAnIndex.txt b/docs/howto/AddAnIndex.txt new file mode 100755 index 0000000..251caf8 --- /dev/null +++ b/docs/howto/AddAnIndex.txt @@ -0,0 +1,11 @@ + + +How to create an index + +1) Derive a child class from xbIx Pure Virtual Class + +2) Create header file +3) Create cpp file + +4) SQL updates + - xbcrix.cpp 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/howto/GettingStarted.txt b/docs/howto/GettingStarted.txt new file mode 100755 index 0000000..d6497a2 --- /dev/null +++ b/docs/howto/GettingStarted.txt @@ -0,0 +1,86 @@ + +To build the xbase library + +1) Verify you have the correct software prerequisites installed + A) cmake 2.6 or LATER + B) Compiler and linker + +2) Verify you have access to the target location of the library + +3) Unpack the tar or zip file + +4) For Linux 64 bit or 32 bit plat forms + + cd xbase/build/Linux64 or xbase/build/Linux32 + 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 + Your mileage may vary depending on Linux Distro + + + To update the configuration file + cd xbase/build/Linux64 or xbase/build/Linux32 + ccmake . + + + +5) For Mac + + Verify you have xcode installed and operational + cd xbase/build/Mac + cmake . -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk + make + make test + + +6) For Windows 64 bit with Visual Studio + + Open a Visual Studio 64 bit Shell + cd xbase\build\Win64VS + buildwin.bat + nmake test + + From a VS Studio 64 bit shell in admin mode + nmake install + + Also of note: cleanwin.bat resets everything + +7) For Windows 32 bit with Visual Studio + + Open a Visual Studio 32 bit Shell + cd xbase\build\Win32VS + buildwin.bat + nmake test + + From a VS Studio 32 bit shell in admin mode + nmake install + + + +8) For Windows 32 bit with Borland 5.5 free compiler + + cd xbase\build\Win32Borland + BuildBorland.bat + make test + + +9) 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 diff --git a/docs/howto/Hacking.txt b/docs/howto/Hacking.txt new file mode 100755 index 0000000..3447490 --- /dev/null +++ b/docs/howto/Hacking.txt @@ -0,0 +1,28 @@ + + +How to modify the library: + + +The library was redesigned with a structure in mind to allow additional +dbf, memo and index files to be added relatively easily without trashing +the underlying codebase. + + +To add functionality to add a DBF, or tailor a particular dbf class, +create a new derived class using the xbdbf class as a base class. +The core xbdbf base class encompasses the DBASE III code base. + +At one time there was "Real Delete" processing embedded in the code. It +was removed from the core classes because it would be incompatible with +later versions of the xbase file structures. If you were interested in +adding this back into the library, you could derive a new dbf class +and add the mods into the new derived class, leaving the base class +as it stands. + + +To add additional memo functionality, create a new derived class from +the xbMemo class. + + + +Update xbFile::DetermineXbaseVersion to identify Xbase file type \ No newline at end of file diff --git a/docs/howto/Locking.txt b/docs/howto/Locking.txt new file mode 100755 index 0000000..b3cc832 --- /dev/null +++ b/docs/howto/Locking.txt @@ -0,0 +1,53 @@ + +Xbase64 - Multi user / Record Locking + + + +If you are using the Xbase64 library in a multi user environment, + +The Record Locking functionality of Xbase64 is designed to work in an evironment +where the files are not cached on a local client machine. + +If you are using the Xbase64 library in a multi user environment, you will need +to verify that Oplocks are turned off for the files in question. + +Oplocks is short for Opportunistic Locking. + + +If you are using Samba software as your file server software, you will +need to add the following to your smb.conf config files. + + +In the global section of the smb.conf file: + +[global] +veto oplock files = /*.dbf/*.DBF/*.dbt/*.DBT/*.ndx/*.NDX/*.cdx/*.CDX/*.mdx/*.MDX + + +Or you could set this at the share level +[share_name] +veto oplock files = /*.dbf/*.DBF/*.dbt/*.DBT/*.ndx/*.NDX/*.cdx/*.CDX/*.mdx/*.MDX + + +Sometimes locking issues can be related to the network config, more than the programs +For example, the locking logic might fail if the underlying file structure does not +support it. + +Mac OSX does not support locking functionality on SMB / Samba shares +Mac OSX does support locking functionality on NFS shares +Per Apple, this is by design + + +Function: xbase::SetMultiUser( xbTrue || xbFalse ) + + Use this function to turn multi user mode on or off. + This function needs to be called before any files are opened or created. + If this function is called after files are opened or created, the files + will need to be closed and reopened for this setting to take effect. + + This setting turns file buffering on and off. In a single user environment, + set this switch to off to improve the performance of the application. + + + + diff --git a/docs/howto/mac_cmake_compile.txt b/docs/howto/mac_cmake_compile.txt new file mode 100755 index 0000000..4ec0ad6 --- /dev/null +++ b/docs/howto/mac_cmake_compile.txt @@ -0,0 +1 @@ +cmake . -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -- cgit v1.2.3