Eli, olen tässä nyt hiukan aikaa koodaillut tuolla Microsoftin Visual C++ 2008 Express Editionilla ja nyt haluaisin kysyä, että olisiko tuon Microsoft SQL Server Databasen tai Microsoft Access Databasen käyttö hyödyllistä pelissä esim. pelin tietojen tallentamiseen?
Jos siitä jotain hyötyä on niin voisiko joku laittaa linkin sivulle jossa olisi ohjeita jommankumman tai molempien käyttöön?
Koetko tarvitsevasi niitä johonkin? Tuskin kumpaakaan on ainakaan missään reaaliaikaisessa pelissä käytetty, tietenkin jotkin verkossa pelattavat manageripelit jne. ovat asia erikseen.
Kerro toki, jos keksit jotain, mitä olisi järkevää tallentaa tietokantaan.
Yleissääntö ohjelmoinnissa: jos kaikki sujuu helposti ja toimii nopeasti, on melko turhaa miettiä, "voisiko tässä käyttää menetelmää/ohjelmistoa X".
Syntty kirjoitti:
Eli, olen tässä nyt hiukan aikaa koodaillut tuolla Microsoftin Visual C++ 2008 Express Editionilla ja nyt haluaisin kysyä, että olisiko tuon Microsoft SQL Server Databasen tai Microsoft Access Databasen käyttö hyödyllistä pelissä esim. pelin tietojen tallentamiseen?
Olen nähnyt pelin, jossa käytetään Metakit-nimistä tietokantakirjastoa pelitilanteiden tallentamiseen. Se toimii siinä pelissä hyvin pelin rakenteen ansiosta. Kyseessä on ohjelmaan upotettava tietokantakirjasto, eli hieman kuin sqlite, mutta ei samalla tavalla relaatiomalliin perustuva. Sivukin on:
Oleellista tässä on, että nämä kirjastoina toimivat tietokantatoiminnot voi linkata itse sovellukseen. Niissä ei ole palvelinta, vaan ne kirjoittavat tiedon talteen tavalliseen tiedostoon. Jos käyttäisit Microsoftin DB-ohjelmia, niiden levittäminen ohjelmasi mukana on työlästä, jos MS:n lisenssi ylipäätänsä sallii sen. Eli MS:n ohjelmien käyttäminen ei vaikuta kovin mielekkäältä tässä tilanteessa. Serveripuolella ne olisivat mahdollisia.
Järkevin tapa esittää ja tallentaa pysyvä data riippuu kunkin pelin tarpeista. Tätä vastinetta ei pidä tulkita suosituksena Metakitin käyttöön. Kerroinpa vain, että joku on käyttänyt.
lainaus:
Jos siitä jotain hyötyä on niin voisiko joku laittaa linkin sivulle jossa olisi ohjeita jommankumman tai molempien käyttöön?
Suosittelen tietokannoista kertovan kirjan hankkimista ja lukemista, jos aihe kiinnostaa tarpeeksi. Perustiedot tietorakenteista ja algoritmeista on hyvä hankkia ennen kuin näihin asioihiin syventyy.
microsoft sql server expressiä saa ihan vapaasti käyttää, ja on vapaasti myös jaossa.
http://www.microsoft.com/Sqlserver/2005/en/us/
sql:stä löydät tutoriaaleja pilvin pimein, itse jo aiemmin postasin sqlesimerkin visual c++:lle.
komentoja löydät: http://www.sqlcommands.net
ja käyttöesimerkin: https://www.ohjelmointiputka.net/keskustelu/
vaikka et pelissä tarvitse niin opitpahan käyttämään tietokantaa :)
ja muista että vc++:ssa korvaa pointteriasteriski ^ merkillä,
se ainakin oletuksena on joku managed CLI tai vastaava windows form applications puolella.
Luokka::Jotain^ MyJotain = gcnew Luokka::Jotain();
gcnew = new, automaagisella roskankeruulla.
tässä vielä esimerkki querystä vc++:lla ja windows Form application
tauluna Users (Name varchar,Country varchar)
ekalla rivillä Perttu,Suomi
toisella Liisa,Ruotsi
using namespace System; using namespace System::Data; using namespace System::Data::SqlClient; //System::Formin alle esittelyihin.. public: static System::Data::SqlClient::SqlConnection^ MyConnection = gcnew System::Data::SqlClient::SqlConnection(); public: static System::Data::SqlClient::SqlCommand^ MyCommand = gcnew System::Data::SqlClient::SqlCommand(); //näitä kutsut sitte jossain private::Void ConnectionAndQuery() { String^ Data; this->MyConnection->ConnectionString = "blahblah"; try { this->MyConnection->Open(); } catch(Exception^ ex) { MessageBox::Show(ex->ToString()); } this->MyCommand->CommandText = "SELECT Name,Country FROM Users WHERE Name = 'Liisa'"; //Tai "SELECT * FROM Users WHERE Name = 'Liisa'" -kun kerran kaikki data luetaan SqlDataReader^ MyReader = this->MyCommand->ExecuteReader(); while(MyReader->Read()) { Data = "MyReader[0]->ToString() + " From " + MyReader[1]->ToString(); } MyReader->Close(); this->MyConnection->Close(); MessageBox::Show(Data); }
Data = Liisa From Ruotsi
ja kappas ekalla rivillä olikin Perttu vaikka piti olla Pertti. no korjataan se
//Samat alkuhärpäkkeet... System::Void Update() { this->MyConnection->ConnectionString = "Basgflasg"; this->MyConnection->Open(); this->MyCommand->CommandText = "UPDATE Users SET Name = 'Pertti' WHERE Name = 'Perttu'"; this->MyCommand->ExecuteNonQuery(); this->MyConnection->Close(); }
ja unohdin, ms visual studion express versioilla tehtyjä ohjelmia voi vapaasti levittää. ms:n express sivujen lisenssiosiossa.
groovyb kirjoitti:
ja muista että vc++:ssa korvaa pointteriasteriski ^ merkillä,
VC++:lla voi onneksi tehdä muitakin kuin .Net-ohjelmia, ja tällöin syntaksikin vastaa aivan normaalia C++:aa.
puhuinkin windows form applicationista, jossa vakiona on tollainen modattu syntaksi
Aihe on jo aika vanha, joten et voi enää vastata siihen.