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.
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); }
|