Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++ ja tietokannat

putkahese [12.11.2008 12:19:49]

#

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ä?

Teuro [12.11.2008 12:38:25]

#

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.

putkahese [12.11.2008 13:08:21]

#

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 !

groovyb [20.11.2008 02:44:50]

#

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();

Grez [20.11.2008 14:58:20]

#

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?

groovyb [20.11.2008 16:55:48]

#

sitä juuri tarkoitin Grez, mielestäni tietokantahallinnointi on vaan helpompaa ja nopeampaa vääntää .netillä kuin vb6 tai vs.

makuasioita silti kaiketi :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta