Új hozzászólás Aktív témák

  • sztanozs
    veterán

    Üdv mindenkinek! Nem vagyok SQL felhasználó, épp csak belenéztem az alapokba. Különböző programok (pl. böngésző, android rendszer) SQLite adatbázisokban tartják az adataim, amiket szeretnék általam felhasználható, szöveges formában kinyerni. Kérdéseim: 1. Az sqlite3 .dump utasítás minden információt kimásol, vagy marad még valami elrejtve az adatbázis fájlban? 2. Ez az utasítás a csatolt journal fájt is feldolgozza? 3. Van esetleg jobb mód az adatok teljes körű kinyerésére?

    Bónuszként örülnék, ha elmondanátok, az ilyen egyszerű, kis elemszámú adattárolási feladatokra, javarészt szöveges adatokhoz, a fejlesztők miért használnak adatbáziskezelőt és bináris fájlformátumot valamilyen szöveges formátum (pl. json, hagyományos ini) helyett.

    Köszönöm.

    1-2) az adatbázis fájlban nem marad, de az SQLite nem igazán szereti a konkurens használatot.
    a) ha az adatbázi fájl nincs nyitva más által, akkor nincs journal fájl sem és mindent kimásol.
    b) ha lehalt az eredeti program és vannak bent ragadt módosítások, de nem korrupt az adatbázis, akkor az adatbázis megnyitáskor azokat végrehajtja és utána mindent kiír
    c) ha korrupt az adatbázis, akkor a sémát és az olvasható adatokat is kiírja, de az sql dump vége regy rollback utasítás lesz. Ha ezt kézzel átírod egy commit-ra, akkor az adatbázis-t az aktuálisan olvasható adatokkal vissza tudod állítani.
    3) szvsz nincs. Amúgy ez nem "kinyeri" az adatokat, hanem az egész adatbázist és a benne található adatokat és a sémát SQL utasításokká konvertálja. Az adataid eddig is megvoltak, csak máshogy tudsz hozzájuk férni. Ha csak az adatok kellenek, akkor inkább exportálj, de dumpolj: [link]

    Bónusz: Azért használnak ilyneket, mert ezekhez vannak sztenderd könyvtárak és gyakorlat, míg a szöveges fájlok (főleg ini) feldolgozását (és hibakezelést) kézzel kell megoldani.

Új hozzászólás Aktív témák