C++ z xml pod sql

0

witam, w jaki sposób mogę ten kod przerobić pod sql'a?

bool Houses::SaveHouseItems(Game* game)
{
    std::string filename = g_config.DATA_DIR + "houseitems.xml";
    std::stringstream sb;

    xmlDocPtr doc;
    xmlNodePtr root, tileNode, itemNode;
    xmlMutexLock(xmlmutex);

    doc = xmlNewDoc((const xmlChar*)"1.0");
    doc->children = xmlNewDocNode(doc, nullptr, (const xmlChar*)"houseitems", nullptr);
    root = doc->children;

    for (size_t i = 0; i < houses.size(); i++)
    {
        for (size_t j = 0; j < houses[i]->tiles.size(); j++)
        {
            Position& pos = houses[i]->tiles[j];
            Tile *housetile = game->getTile(pos.x, pos.y, pos.z);
            bool firstItem = true;

            for (int32_t i = housetile->getThingCount(); i >= 0; i--)
            {
                Item* item = dynamic_cast<Item*>(housetile->getThingByStackPos(i));
                if (item && !item->isNotMoveable())
                {
                    if (firstItem)
                    {
                        tileNode = xmlNewNode(nullptr, (const xmlChar*)"tile");
                        sb << pos.x;
                        xmlSetProp(tileNode, (const xmlChar*) "x", (const xmlChar*)sb.str().c_str());
                        sb.str("");
                        sb << pos.y;
                        xmlSetProp(tileNode, (const xmlChar*) "y", (const xmlChar*)sb.str().c_str());
                        sb.str("");
                        sb << pos.z;
                        xmlSetProp(tileNode, (const xmlChar*) "z", (const xmlChar*)sb.str().c_str());
                        sb.str("");
                        firstItem = false;
                    }
                    itemNode = item->serialize();
                    Container *container = dynamic_cast<Container*>(item);

                    if (container)
                    SaveContainer(itemNode, container);
                    xmlAddChild(tileNode, itemNode);
                }
            }
            if (!firstItem)
            xmlAddChild(root, tileNode);
        }
    }

    if (xmlSaveFile(filename.c_str(), doc))
    {
        xmlFreeDoc(doc);
        xmlMutexUnlock(xmlmutex);
        return true;
    }
    else
    {
        std::cout << "Could not save " << filename << "!" << std::endl;
        xmlFreeDoc(doc);
        xmlMutexUnlock(xmlmutex);
        return false;
    }
} 
					query_insert.setQuery("INSERT INTO `houses` (`x`, `y` ) VALUES "); 

takie coś wystarczy?

1

Daj ofertę w "ogłoszenia drobne" - bo chyba za dużo by czasu zajęło wytłumaczenie.
W ogłoszeniu podaj docelowy system baz danych.

Duplikat: z XML do SQL zapisz / odczyt.

1 użytkowników online, w tym zalogowanych: 0, gości: 1