Teen koulutehtävää, jossa tarkoituksena oli tehdä yksinkertainen MySQL-tietokantapohjainen tekstiseikkailu C++:lla, MySQL:n C-apia käyttäen.
Eli kaikki pelin esineet, viholliset ja huoneet haetaan kannasta. Tehtäväannossa taisi lukea niin, että kun poimitaan esine, se tulee poistaa kannasta.
Tietokannasta on dumppi pelin kanssa samassa kansiossa.
Peli toimii muuten loistavasti, mutta haluaisin omana lisäyksenä ihan lopuksi dropata pelin aikana muuttuvat taulut ohjelmallisesti (tämä onnistui), ja seuraavalla kerralla palauttaa kannan dumpista, jolloin poimitut esineet ja tapetut viholliset ovat taas siellä. Jostakin syystä mysql_query ei pysty käsittelemään kokonaista dumppia kerralla.
Kysely ei mennyt läpi, kun luin dumpin tällaisella funktiolla:
std::string file (const std::string fname) { std::ifstream ifile (fname.c_str()); std::string ret = "", buf; if (!ifile) return ret; while (std::getline (ifile, buf)) ret += "\n" + buf; return ret; }
Printtasin myös paluuarvon, joten tiedän, että kyseessä oli oikea tiedosto.
Ja palautusarvon annoin sitten mysql_querylle, joka kuitenkin palautti virhearvon.
Eli miten voin importata kaikki taulut dumpista C/C++ -kielellä?
Lisäys: Haluaisin, että ratkaisu olisi helposti siirrettävissä, eli ei mielellään ulkoisia ohjelmia :) Toki, jos tämä on ainoa ratkaisu, niin on siihen tyydyttävä. Niinkuin mysqldump
Kiitti Grez!
Aihe on jo aika vanha, joten et voi enää vastata siihen.