Miten pääsisin alkuun seuraavassa: Pitäisi tehdä c++:lla ohjelma, joka luo tietokannan ja jolla voi kantaa muokata. ODBC on kai se juttu. Pääsis vaan alkuun ! Löytyiskö todella simple esimerkkiä?
Oletko kuinka paljon ohjelmoinut? Kysymys sen takia, että vastauksen mielekkyys riippuu pitkälti vastaanoottokyvystäsi. Tarvitset ainakin jonkun kirjaston tietokantaan yhdistämistä ja sen käyttöä varten. Mitä kantaa on tarkoitus käyttää?
Onko tietokanta olemassa, vai pitääkö se ja sisältökin luoda? Yksinkertaisia esimerkkejä tuskin löytyy, mutta c++ odbc tutorial voisi olla kova hakusanajoukko googleen.
On tässä jonkun verran tullut väännettyä koodia. Vb:llä tuon homman sain jo toimimaan acces kantaan. Aluksi voisin ottaa yhteyden tuohon samaan kantaa, johon olen saanat Vb:llä lisättyä kenttiä ja tehtyä hakuja. Myöhemmin sql on tavoite !
jos vb:tä käytät niin käytä ihmeessä .net kirjastoa jos mahdollista
korvaat vaan OleDb Sql sanalla.
tässä pätkä c++ .netillä
using namespace System; using namespace System::Data; using namespace System::Data::OleDb; // jos access using namespace System::Data::SqlClient; // jos Ms Sql OleDbConnection * OleDbkanta = new OleDbConnection(); //OleDb... SqlConnection * Sqlkanta = new SqlConnection(); //Sql... OleDbkanta->ConnectionString = S"Provider=Microsoft.Jet.OLEDB.4.0" S"Data Source=C:\\...mdb"; //visual studiossa connectionstringin saa näppärästi kun yhdistää vaan ylävalikosta kantaan ja database explorerista copy pastettaa connectionstringin Sqlkanta->ConnectionString = ..... try { OleDbkanta->open(); Console::Write(S"Yhdistetty"); } catch (OleDbException * pe ) { Console::Write(S"Error"); Console::Writeline(S"pe->Message); } if(OleDbkanta->State != ConnectionState::Closed) { OleDbkanta->Close(); } Console::Writeline(S"Yhteys katkaistu");
jne.
// ja tässä yksi hakuesimerkki... taulu nimeltä tuotteet ja siellä nimi joka on varchar sekä hinta joka decimal... OleDbCommand * haku = new OledDbCommand(); //vaihtoehtoisesti SqlCommand... haku->CommandText = S"SELECT nimi,hinta FROM tuotteet"; OleDbDataReader * luku = haku->ExecuteReader(); Console::Writeline(S"\n---------------------------------------------"); while (luku->Read()) { Console::Write(luku->GetString(0)); Console::Write(S", "); Console::Writeline(luku->GetDecimal(1)); } Console::Writeline(S"----------------------------------------------"); luku->Close();
groovyb kirjoitti:
jos vb:tä käytät niin käytä ihmeessä .net kirjastoa jos mahdollista
Mielestäni olisi kyllä sitten järkevämpää siirtyä kokonaan VB.Netiin, kuin yrittää käyttää .Net -kirjastoja VB:n puolelta. Vai ymmärsinkö jotain väärin?
sitä juuri tarkoitin Grez, mielestäni tietokantahallinnointi on vaan helpompaa ja nopeampaa vääntää .netillä kuin vb6 tai vs.
makuasioita silti kaiketi :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.