function xbase_create($filename, $fields)
{
    // - Creates a dBase database
    if ($xbase =& XBaseWritableTable::create($filename, $fields)) {
        return xbase_addInstance($xbase);
    }
    return false;
}
 function create($filename, $fields)
 {
     if (!$fields || !is_array($fields)) {
         trigger_error("cannot create xbase with no fields", E_USER_ERROR);
     }
     $recordByteLength = 1;
     $columns = array();
     $columnNames = array();
     $i = 0;
     foreach ($fields as $field) {
         if (!$field || !is_array($field) || sizeof($field) < 2) {
             trigger_error("fields argument error, must be array of arrays", E_USER_ERROR);
         }
         $column = new XBaseColumn($field[0], $field[1], 0, @$field[2], @$field[3], 0, 0, 0, 0, 0, 0, $i, $recordByteLength);
         $recordByteLength += $column->getDataLength();
         $columnNames[$i] = $field[0];
         $columns[$i] = $column;
         $i++;
     }
     $result = new XBaseWritableTable($filename);
     $result->version = 131;
     $result->modifyDate = time();
     $result->recordCount = 0;
     $result->recordByteLength = $recordByteLength;
     $result->inTransaction = 0;
     $result->encrypted = false;
     $result->mdxFlag = chr(0);
     $result->languageCode = chr(0);
     $result->columns = $columns;
     $result->columnNames = $columnNames;
     $result->backlist = "";
     $result->foxpro = false;
     if ($result->openWrite($filename, true)) {
         return $result;
     }
     return false;
 }
Example #3
0
function xbase_open($filename, $flags = 0)
{
    // - Opens a dBase database - flags : Typically 0 means read-only, 1 means write-only, and 2 means read and write
    if ($flags == 0) {
        $xbase = new XBaseTable($filename);
        if (!$xbase->open()) {
            return false;
        }
    } else {
        $xbase = new XBaseWritableTable($filename);
        if (!$xbase->openWrite()) {
            return false;
        }
    }
    return xbase_addInstance($xbase);
}
Example #4
0
* 
* --------------------------------------------------------------
*
* Demonstration how to clone table meta-data to another and copy records
*
**/
/* load the required classes */
require_once "Column.class.php";
require_once "Record.class.php";
require_once "Table.class.php";
require_once "WritableTable.class.php";
/* open a template table object and read it */
$tableParent = new XBaseTable("test/bond.DBF");
$tableParent->open();
/* create a new table */
$tableNew = XBaseWritableTable::cloneFrom($tableParent);
$tableNew->openWrite("test/created.dbf", true);
while ($record = $tableParent->nextRecord()) {
    $tableNew->appendRecord();
    $tableNew->record->copyFrom($record);
    $tableNew->writeRecord();
}
$tableNew->close();
$tableParent->close();
/* open created file*/
$table = new XBaseTable("test/created.dbf");
$table->open();
/* xml output */
echo "<pre>\n";
echo htmlspecialchars($table->toXML());
echo "</pre>\n";
Example #5
0
	require_once "Column.class.php";
	require_once "Record.class.php";
	require_once "Table.class.php";
	require_once "WritableTable.class.php";

	/* sample data */	
	$fields = array(
		array("bool" , DBFFIELD_TYPE_LOGICAL),
		array("memo" , DBFFIELD_TYPE_MEMO),
		array("date" , DBFFIELD_TYPE_DATE),
		array("number" , DBFFIELD_TYPE_NUMERIC, 3, 0),
		array("string" , DBFFIELD_TYPE_CHAR, 50),
	);
	
	/* create a new table */
	$tableNew = XBaseWritableTable::create("data.dbf",$fields);
	
	/* insert some data */
	$r =& $tableNew->appendRecord();
	$r->setObjectByName("bool",true);
	$r->setObjectByName("date",time());
	$r->setObjectByName("number",123);
	$r->setObjectByName("string","String one");
	$tableNew->writeRecord();
	
	$r =& $tableNew->appendRecord();
	$r->setObjectByName("bool",false);
	$r->setObjectByName("date",time()/2);
	$r->setObjectByName("number",321);
	$r->setObjectByName("string","String two");
	$tableNew->writeRecord();
Example #6
-1
*  Info? Mail to info@cyane.nl
* 
* --------------------------------------------------------------
*
* Demonstration how to create a dbf from scratch
*
**/
/* load the required classes */
require_once "Column.class.php";
require_once "Record.class.php";
require_once "Table.class.php";
require_once "WritableTable.class.php";
/* sample data */
$fields = array(array("bool", DBFFIELD_TYPE_LOGICAL), array("memo", DBFFIELD_TYPE_MEMO), array("date", DBFFIELD_TYPE_DATE), array("number", DBFFIELD_TYPE_NUMERIC, 3, 0), array("string", DBFFIELD_TYPE_CHAR, 50));
/* create a new table */
$tableNew = XBaseWritableTable::create("test/created.dbf", $fields);
/* insert some data */
$r =& $tableNew->appendRecord();
$r->setObjectByName("bool", true);
$r->setObjectByName("date", time());
$r->setObjectByName("number", 123);
$r->setObjectByName("string", "String one");
$tableNew->writeRecord();
$r =& $tableNew->appendRecord();
$r->setObjectByName("bool", false);
$r->setObjectByName("date", time() / 2);
$r->setObjectByName("number", 321);
$r->setObjectByName("string", "String two");
$tableNew->writeRecord();
$r =& $tableNew->appendRecord();
$r->setObjectByName("bool", true);