Logo Search packages:      
Sourcecode: facturalux version File versions  Download package

bool FLManager::checkMetaData ( const QString &  n  )  [static]

Comprueba si los metadatos definidos actualmente para una tabla en un fichero .mtd, difieren de los que tiene actualmente esa tabla en la base de datos (difieren con la copia que se tiene actualmente de ellos).

Cuando se realizan modificaciones en la definición de una tabla, es probable que esa tabla ya exista en la base de datos. Con este método podemos determinar posteriormente si lo metadatos definidos actualmente difieren de los de la tabla existente en la base de datos.

Parameters:
n Nombre de la tabla a comprobar.
Returns:
TRUE si los metadatos que hemos definido en FLManager::metadata() para una tabla (nuevos) son iguales a los metadatos de la tabla que tenemos en la base de datos (viejos), y FALSE en caso contrario.

Definition at line 253 of file FLManager.cpp.

References createTable(), existsTable(), and metadata().

Referenced by metadata().

{
  QDomDocument doc (n);
  QFile fi (FLDATA "/facturalux/tables/" + n + ".mtd");
  QDomElement docElem;

  if (!fi.open (IO_ReadOnly))
      {
        fi.close ();
        qWarning ("FLManager : " + qApp->tr ("Los meta datos para ") + n + qApp->tr (" no están definidos"));
        return true;
      }
  QTextStream t (&fi);
  QString mtd1 = t.read ();
  fi.close ();

  if (!existsTable ("flmetadata"))
      {
        fi.setName (FLDATA "/facturalux/tables/flmetadata.mtd");
        if (!fi.open (IO_ReadOnly))
            qWarning ("FLManager : " + qApp->tr ("Los meta datos para flmetadata no están definidos"));
        else
            {
              t.setDevice (&fi);
              if (!doc.setContent (t.read ()))
                  qWarning ("FLManager : " + qApp->tr ("Error al cargar los meta datos para flmetadata"));
              else
                  {
                    docElem = doc.documentElement ();
                    createTable (metadata (&docElem));
                  }
            }
      }

  QString mtd2;
  QSqlCursor c ("flmetadata");
  c.setFilter ("tabla='" + n + "'");
  c.select ();
  if (c.next ())
      {
        QSqlRecord *buffer = c.editBuffer (true);
        mtd2 = buffer->value ("xml").toString ();
      }
  else
      return true;

  return checkMetaData (mtd1, mtd2);
}


Generated by  Doxygen 1.6.0   Back to index