diff options
Diffstat (limited to 'html/xbc1.htm')
-rwxr-xr-x | html/xbc1.htm | 232 |
1 files changed, 232 insertions, 0 deletions
diff --git a/html/xbc1.htm b/html/xbc1.htm new file mode 100755 index 0000000..72c9904 --- /dev/null +++ b/html/xbc1.htm @@ -0,0 +1,232 @@ +<!DOCTYPE HTML PUBLIC> +<HTML> +<TITLE>Xbase DBMS Chapter 1</TITLE> +<BODY BGCOLOR=#FFFFFF> + +<h1><p align="center">Getting Started</p></h1> +<p align="center">Chapter Updated 8/14/03</p> + +<hr><h2>Overview</h2> + +Welcome to Xbase DBMS. Xbase DBMS is a collection of specifications, +programs, utilities and a C++ class library for manipulating Xbase type +datafiles and indices. Xbase has been developed and produced by several +people from around the world via the internet. +<br><br> + +The term Xbase is often used used to describe the format of the original +DBase, Clipper and Foxbase (.DBF) files. Many vendors support the industry +standard Xbase file format and are committed to this technology for many +years to come, thus insuring continued support.<br><br> + +The original purpose of the Xbase library was to provide reliable and +economical programming tools to programmers for reading, writing and updating +DBF databases, indices and memo fields.<br><br><br> + +<hr><h2>System Requirements</h2> + +To use Xbase DBMS, the following items are needed:<br><br> + +A computer and C/C++ compiler.<br><br> + +The original source code is developed on a Linux platform with the GCC +public domain C/C++ compiler. +<br><br> + +Xbase DBMS has been successfully ported and runs on Linux, Sun Solaris, +OpenVMS, FreeBSD, OS2 and DOS/Windows (Using the large memory model). +<br><br> + +This software is not intended to be used on any system using an SCO operating +system. +<br><br> + +<hr><h2>Classes and User Interface</h2> + +There are six classes in the Xbase library which are available +for use in a typical Xbase application program.<br><br><br> + +<CENTER><TABLE BORDER> +<CAPTION ALIGN=TOP><H3>Xbase Classes - Version 1.8.0 and newer</H3></CAPTION> +<TR VALIGN=BASELINE> +<TR><TH ALIGN=LEFT>Class<TD>Basic Description<TD>How Used<TD>Old Class<br>Name +<TR><TH ALIGN=LEFT>xbXBase<TD>Basic Xbase Class<TD>Every program gets one of these<TD>XBASE +<TR><TH ALIGN=LEFT>xbDbf<TD>Database and Field class<TD>Need one of these for each open DBF file<TD>DBF +<TR><TH ALIGN=LEFT>xbNdx<TD>Ndx index class<TD>Need one of these for each open NDX index<TD>NDX +<TR><TH ALIGN=LEFT>xbNtx<TD>Ntx index class<TD>Need one of these for each open NTX index +<TR><TH ALIGN=LEFT>xbString<TD>String class<TD>Used for handling strings +<TR><TH ALIGN=LEFT>xbHtml<TD>Html generation class<TD>Needed for creating HTML code<TD>HTML +</TABLE></CENTER> +<br><br> +There are other classes used internally by these Xbase classes, but most +application programs need not to be concerned with. These classes are +xbStack - used for stack data structures, xbExpn - used for expression +logic, and xbDate - used for date manipulation logic. + +<br><br> +<hr><h2>Portability, Type Defs and Structures</h2> + +To effectively make the Xbase library as portable across platforms as possible, +three things occured. +<br><br> +<li>First, the software was developed to run and compile on either big endian +or little endian computers and store all numeric data in little endian format. +<br><br> +<li>Secondly, field types must be consistently defined in each environment. The <em>types.h</em> +file defines the xbase data types. To modify the Xbase code base to function +in a different (non ported to yet) environment, start by modifying the <em>types.h</em> +file for your site and recompile.<br><br> +<li>Thirdly, support for unix automake and autoconf has been to provided +support on a wide variety of unices. +<hr><br><br> +<CENTER> +<TABLE BORDER> +<CAPTION ALIGN=TOP><h3>Field Types</h3></CAPTION> +<TR ALIGN=BASELINE> +<TR><TH ALIGN=LEFT>Type<TD>Description +<TR><TH ALIGN=LEFT>xbULong<TD>unsigned long int +<TR><TH ALIGN=LEFT>xbUShort<TD>unsigned short int +<TR><TH ALIGN=LEFT>xbShort<TD>short int +<TR><TH ALIGN=LEFT>xbLong<TD>long +<TR><TH ALIGN=LEFT>xbFloat<TD>float +<TR><TH ALIGN=LEFT>xbDouble<TD>double +<TR><TH ALIGN=LEFT>char<TD>char +<TR><TH ALIGN=LEFT>void<TD>void +<TR><TH ALIGN=LEFT>struct SCHEMA<TD>Used for defining record structures +</TABLE></CENTER> +<br><br> + +Xbase was designed for portability utilizing standard ANSI-C compliant +code. If you decide to write updates to the Xbase project, please try +to keep your work to standard generic ANSI-C (no special DOS/WINDOWS Calls). +<br><br> + +<hr><h2>Compilation Overview</h2> +If you are building the sources on a Linux/Unix platform:<br><br> +Download the source<br> +./configure<br> +make<br> +su<br> +make install<br> +exit<br><br> + +<br><br> +Before compiling the library, you may need to modify the options for your +environment. Do "./configure --help" for a list of the current options + +<br><br> +On my server, I had to: +<li>Verify the library and associated links were copied from xbase/xbase/.libs +into /usr/local/lib +<li>Add /usr/local/lib is in /etc/ld.so.conf +<li>execute program <em>ldconfig</em> as root to refresh the new libs + +<br><br> +Actual milage at your site may vary. +<br><br> + +<hr><h2>Building a program with the Xbase library</H2> + +Create a directory for your project:<br><br> + +cd /home/me<br> +mkdir MyProject<br> +cd MyProject<br> +vi MyProg.cpp<br><br> + +To use the Xbase classes, include the following header file in the program: +<br><br> + +#include <xbase/xbase.h><br><br> + +For more details, check out the sample programs in the +xbase/examples directory. +<br><br> +<hr><h2>Compiling and Linking Unix Application Program for v3.0 later</h2> + +The install script should have provided specific instructions for your +environment on how to link with the xbase library. <br><br> + +In the Linux environment, assuming that you are using shared libraries, +and usr/local/lib has been added to +the /etc/ld.so.conf file, and the ldconfig command was executed +<br><br> + +To Compile:<br> +g++ -c -Wall -I/usr/include -I/usr/src/linux/include-asm-i386 -I/usr/local/include +-I/usr/local/xbase myprog.cpp<br><br> +To Link Edit:<br> +g++ -o myprog myprog.o libxbase.so<br><br> + +<hr><h2>Compiling an Application Program with Borland v4.5 C/C++compiler</h2> +With Borland C compiler: bcc -Ic:\xbase\src myprog.cpp -Lc:\xbase\src\xbase.lib +<br><br> + +<hr><h2>Getting the latest development version of XBase</h2> + +<br>The Xbase project is in an ongoing state of development with new +enhancements being added and bug fixes being applied as they are found +and the package maintainers have time. There are several programmers +from various parts of the world working on Xbase. If you would like to +get the latest version of the Xbase library for your project, it is +available on sourceforge.net. + +<br><h3>Notes about using the current development library</h3> +<li>1 - Library functions may or may not be documented +<li>2 - The library may or may not be stable. This is the development library +and is being updated with current code changes. If you are using it, and it +does not behave the way you think it should, you may want to drop a note to +<A HREF="mailto:xdb-devel@lists.sourceforeg.net">xdb-devel@lists.sourceforge.net +</A> This may sound a little unsettling, but the +library is generally stable. It goes through periods of time where it is in +a state of flux when major changes are occurring, but for the most part it is +probably OK to use. +<li>3 - If you have changes to contribute to the library, mail your updates +to<A HREF="mailto:xdb-devel@lists.sourceforge.net"> +xdb-devel@lists.sourceforge.net</A><br>. + +<hr><br> +<h2>System Limitations</h2> +<br> +Maximum size of a database file is the size of LONG - 2,147,483,647 bytes<br> +Total number of fields in a database - 1024 <br> +Total number of characters in all fields - 32767<br> +Maximum number of characters in a field - 254<br> +Total number of records in a file - 1 billion<br> +Maximum index key length - 100 bytes<br> +Maximum .DBT file memo block size - 32256<br> +Maximum expression result length - 100 bytes<br> +Maximum NDX index key length - 100 bytes<br><br> +<hr><br><br> + +<CENTER> +<TABLE BORDER> +<CAPTION ALIGN=TOP><H3>Xbase Options - Unix Automake environment</H3></CAPTION> +<TR VALIGN=BASELINE> +<TR><TH ALIGN=LEFT>OPTION<TD>DESCRIPTION +<TR><TH ALIGN=LEFT>--without-xbase-debug<TD>Turns off xbase debugging code +<TR><TH ALIGN=LEFT>--without-index-ndx<TD>Turns off NDX index options +<TR><TH ALIGN=LEFT>--without-index-ntx<TD>Turns off NTX index options +<TR><TH ALIGN=LEFT>--without-memo-fields<TD>Turns off memo fields +<TR><TH ALIGN=LEFT>--without-expressions<TD>Turns off expression processing +<TR><TH ALIGN=LEFT>--without-ui-html<TD>Turns off HTML user interface class +<TR><TH ALIGN=LEFT>--without-xbase-locking<TD>Turns off xbase locking +<TR><TH ALIGN=LEFT>--without-xbase-debug<TD>Turns off debug logic +<TR><TH ALIGN=LEFT>--without-exceptions<TD>Turns on exception processing +<TR><TH ALIGN=LEFT>--with-castellano<TD>Turn on castellano/spanish date options +<TR><TH ALIGN=LEFT>--without-realdelete<TD>Turn off Xbase record deletion +<TR><TH ALIGN=LEFT>--without-xbase-filter<TD>Turn off Xbase filter logic +</TABLE></CENTER> +<br><br> + +Use these options on the command line when executing the <em>./configure</em> +command. Also, you can execute <em>./configure --help</em> for a complete +list of all unix configure options. +<br><br> +<B>Q</B> Why turn any of thes options off?<br> +<B>A</B> Smaller library<br><br><hr> + + +<p><img src=xbase.jpg><br><hr> +</BODY> +</HTML> |