=head1 DBD::XBase =begin docbook =end docbook =head1 =head2 Version Version 0.130. =head2 Author and Contact Details The driver author is Jan Pazdziora. He can be contacted at I or I the I mailing list. =head2 Supported Database Versions and Options The C module supports dBaseIII and IV and Fox* flavors of I files, including their I and I memo files. =head2 Connect Syntax The Cconnect()> Data Source Name, or I, should include the directory where the I files are located as the third part. dbi:XBase:/path/to/directory It defaults to current directory. There are no driver specific attributes for the Cconnect()> method. =head2 Numeric Data Handling C supports generic NUMBER(p,s), FLOAT(p,s) and INTEGER(l) types. The maximum scale and precision is limited by Perl's handling of numbers. In the I files, the numbers are stored as ASCII strings, binary integers, or floats. Existing I files come with the field types defined in the I file header. Numeric types can be either stored as ASCII string or in some binary format. C (via C) parses this information and reads and writes the fields in that format. When you create a new I file ( I C ), the numeric fields are always created in the traditional XBase way, as an ASCII string. (The C module offer more control over this.) Numeric fields are always returned as Perl numeric values, not strings. Consequently, numbers outside of Perl's valid range are not possible. This restriction might be withdrawn in the future. =head2 String Data Handling C has CHAR(length) and VARCHAR(length) data types. The maximum length is 65535 characters for both types*. * This limit if effective even though the older dBase's only allowed 254 characters. Therefore, created dbf files might not be portable to other XBase compatible software. Both CHAR I VARCHAR are blank padded so I applies to both. Data with the 8th bit set are handled transparently. No national language character set conversions are done. Since the string types can store binary data, Unicode strings can be stored. =head2 Date Data Handling C supports these date and time types: DATE DATETIME TIME The DATE type holds an eight character string in the format C. Only that format can be used for input and output. C doesn't check for validity of the values. The DATETIME and TIME types internally store a 4 byte integer day value and a 4 byte integer seconds value ( counting 1/1000's of a second ). C inputs and outputs these types using a floating point unix-style "seconds-since-epoch" value ( possibly with decimal part ). This might change in the future. There is no way to get the current date/time, and no SQL date time functions are supported. There is also no concept of time zones. =head2 LONG/BLOB Data Handling C supports a MEMO data type. BLOB can be used as an alias for MEMO. Strings up to 2 GB can be stored in MEMO fields ( for all types of XBase memo files ). With dBaseIII I files, the memo field cannot contain a C<0x1A> byte. With dBaseIV and Fox* C/Cs, any character values can be stored. No special handling is required for fetching or inserting MEMO fields. The I and I attributes are currently ignored. =head2 Other Data Handling issues The C driver supports the C method. C supports automatic conversions between data types wherever it's reasonable. =head2 Transactions, Isolation and Locking C currently does not support transactions and does not lock the tables it is working on. =head2 No-Table Expression Select Syntax You can't select a constant expression using C. Only table field names or C<*>, for all columns, can be selected. =head2 Table Join Syntax C does not support table joins. =head2 Table and Column Names The XBase format stores each table as a distinct file. Memo fields are stored in an additional file. The table names are limited by the filesystem's maximum filename length. They are stored and treated as entered. The case sensitivity depends on the filesystem that the file is stored on. Column names are limited to 11 characters. They are stored as uppercase, but are not case sensitive. Table and field names have to start with letter. Any combination of letters, digits, and underscores may follow. National character sets can be used. C does not support putting quotes around table or column names. =head2 Case Sensitivity of LIKE Operator The LIKE operator is not case sensitive. There is currently no case sensitivity operator. =head2 Row ID C does not support a "row ID" pseudocolumn. =head2 Automatic Key or Sequence Generation C does not support automatic key generation or sequence generators owing to the limitations of the XBase format. =head2 Automatic Row Numbering and Row Count Limiting C does not support a row-numbering pseudocolumn. =head2 Parameter Binding Parameter binding is implemented in the driver and supports the C style of placeholder. The C<:1> placeholder style is not (yet) supported. The TYPE attribute to C is ignored. Consequently, unsupported values of the TYPE attribute do not currently generate a warning. =head2 Stored Procedures Stored procedures are not applicable in the XBase format. =head2 Table Metadata C supports the C method. There is no way to get detailed information about the columns of a table (at the moment) other than doing a C