| <?
// This is a class that converts a .DBF file into SQL intructions
// Autor : Pablo Dall'Oglio ([email protected] )
// Date :  Saturday, 07, 2001
class dbf2sql
{
    var $db;
    var $num_records;
    var $num_fields;
    var $nome_arq;
    var $table;
    var $myfile;
    // This function open DBF file, set the variables
    // returns 1 if open with success otherwise, returns 0
    function opendb($dbffile, $sqlfile, $tablename)
    {
      if (($dbffile) && ($sqlfile))
      {
        $this->db = @dbase_open($dbffile, 0);
        if ($this->db)
        {
          $this->num_records = dbase_numrecords($this->db);
          $this->num_fields = dbase_numfields($this->db);
        }
        else
        {
          return(0);
        }
        $this->nome_arq = $sqlfile;
        $this->table = $tablename;
        return(1);
      }
      return(0);
    }
    // This function open the SQL file for write
    // returns 1 if open with success otherwise, returns 0
    function opensql()
    {
      $this->myfile = @fopen($this->nome_arq, "w");
      if (!$this->myfile)
      {
        return(0);
      }
      return(1);
    }
    // This function close both DBf and SQL files
    function closeall()
    {
      fclose($this->myfile);
      dbase_close($this->db);
    }
    // This function get the columns from DBF file and
    // whrite it into a SQL file
    function GetColumns($array_columns)
    {
      $total = count($array_columns);
      // loop the database
      for($index=1; $index <= $this->num_records; $index ++)
      {
        $record = dbase_get_record($this->db, $index); // get the actual record
        // linha_mens is the SQL instruction to write into SQL file
        $linha_mens = "insert into $this->table ( ";
        // get the column names
        for($count=0; $count<$total; $count++)
        {
          $linha_mens .= $array_columns[$count][1] . ", ";
        }
        $linha_mens = substr($linha_mens,0, strlen($linha_mens)-2);
        $linha_mens .= " ) values (";
        // get the column values
        for($count=0; $count<$total; $count++)
        {
          $linha_mens .= "'" . trim($record[$array_columns[$count][0]]) . "', ";
        }
        $linha_mens = substr($linha_mens,0, strlen($linha_mens)-2);
        $linha_mens .= " ); \n";
        // Ignore deleted fields
        if ($record["deleted"] != "1")
        { fputs($this->myfile, "$linha_mens"); }
      }
    }
}
?>
 |