Avatar billede prebenged Nybegynder
07. oktober 2002 - 14:12 Der er 12 kommentarer og
1 løsning

MySQL og C++

Heysa,

Jeg har kigget rundt omkring, for at finde ud af hvordan dævlen jeg skal lave et C++ program, der kan redigere i min MySQL DB. Jeg er blevet i tvivl om man kan lave det fra et windows program, ellers skal man compile i linux?

Jeg har Borland 6.0 til WinXP, og så har jeg downloaded mysql++.

Jeg har adgang til en MySQL-DB der ligger på en server et eller andet sted.

Spørgsmålet er nu. Kan jeg lave et program i Borland 6.0, compile det med den tilhørende compiler, og køre prgrammet på XP?

Hvis ja, hvordan gør man det? Kunne være rart med et lille eksempel, en guide til hvad man skal downloade osv..

tusind tak!

mummelmann
Avatar billede ladyhawke Novice
07. oktober 2002 - 14:27 #1
Det skal kunne lade sig gøre med Windows! Jeg har ikke selv prøvet i C++, men i java/windows og det går fint :o)
Avatar billede jpk Nybegynder
07. oktober 2002 - 14:51 #2
Ja, det kan sagtens lade sig gøre og du kan hente eksempler samme sted som du har downloadet MySQL...
Avatar billede prebenged Nybegynder
07. oktober 2002 - 17:13 #3
Men MySQL har jeg jo netop ikke downloaded. Der er bare en DB jeg har tilgang til.

Jeg kunne godt bruge noget lidt mere konkret :)
Avatar billede soreno Praktikant
07. oktober 2002 - 17:15 #4
Avatar billede prebenged Nybegynder
07. oktober 2002 - 22:12 #5
Vi nærmer os, men der er stadigt en del galt.

F.eks., så kan den ikke finde nogle af includene (f.eks. #include <sqlplus.hh>), uden jeg skriver den fulde sti. Selvom jeg har installeret præcis efter manualen.

Hvis jeg så selv skriver stien, får jeg følgene fejl.
[C++ Error] simple1.cpp(15): E2294 Structure required on left side of . or .* ved linien

        Connection con(cchar *db, cchar *host="***", cchar *user="***", cchar *passwd="***");
        Query query = con.query();            <--------------

Nogen der kan hjælpe?
Avatar billede soepro Nybegynder
08. oktober 2002 - 12:03 #6
Sidstnævnte fejl ligner jo umiddelbart at du ikke har fået erklæret "con" variablen. Havde du (nu) fået inkluderet alle header filerne ? Du skal ind under 'project->Options' og 'Directories' fanen, og sørge for at den path hvori MySQL header-filerne er en del af din include path.
Avatar billede mickni33 Nybegynder
09. oktober 2002 - 09:19 #7
Kan det ikke være fordi at din con jo er af typen Connection og den sætter du så lig med query af typen Query....
Tror nok at det skal være af samme type enten Connection eller Query..
Query query = con.query();
Avatar billede soepro Nybegynder
09. oktober 2002 - 09:32 #8
mickni33 >> Hvad er det du prøver at sige ?

prebenged >> con er en 'Connection', 'con.query()' et metodekald, som (forventningsvis) returnerer en pointer (ARGHH - Selvfølgelig det er jo det som er problemet !!!) til en Query. Så mon ikke din assign skal se sådan her ud:

Query *query = con.query();
Avatar billede jpk Nybegynder
09. oktober 2002 - 10:01 #9
mickni33 >> Nej, det er Query-objektet han sætter lig med returværdien fra con.query()!

soepro >> Nej, det tror jeg ikke. con.query() returnerer sikkert en reference til et query-objekt og det er derfor rigtig nok...

prebenged >> Kan du godt oprette en instans af Connection?
Altså hvis du prøver at fjerne linien med con.query(), og blot beholder constructoren.
Avatar billede soepro Nybegynder
09. oktober 2002 - 12:51 #10
jpk >> Altså noget i stil med Query& Connection::Query(void); som prototype ?!
Avatar billede jpk Nybegynder
09. oktober 2002 - 14:47 #11
Tja, eller måske returnerer den en egentlig instans...
Jeg ved det ikke, har aldrig brugt metoderne...

Men hvis man skal kunne bruge beskeden fra compileren til noget, må det da være fordi con ikke er defineret...
Altså at compileren ikke kan finde definitionen på Connection.
Avatar billede soepro Nybegynder
09. oktober 2002 - 15:06 #12
Jeg tror nu stadig at det er oprettelsen af Connection objectet 'con' det halter. Har du prøvet med:

Connection *con = new Connection(cchar *db, cchar *host="***", cchar *user="***", cchar *passwd="***");
Query query = con->Query();
Avatar billede demos Nybegynder
10. oktober 2002 - 00:04 #13
Jeg har selv siddet og rodet med mysql forbindelse via c++. Hvad jeg til sidst fandt ud af var at filen libmySQL.lib i mysql++ apien først skal bygges. Dette bliver gjort ved at åbne og bygge projektet for mySQL++ API’en, der ligger i roden af mySQL++ mappen. Yderligere har alle programmer, der gør brug af mySQL++, brug for libmySQL.dll filen. Denne fil følger med i mySQL++ og skal kopieres til samme mappe som den eksekverebare fil eller til windows\system mappen.
Herefter skulle man kunne lave en forbindelse i et c++ projekt mere eller mindre sådan:
MYSQL *pConnection; // reference til databaseadgang
pConnection = mysql_init(NULL); // instantierer reference
mysql_real_connect(pConnection,host,username,password,databasenavn,0,NULL,0); // forbindelse til database.
Ved en succesfuld forbindelse til databasen, vil dette metodekald returnerer en værdi, som ikke er lig værdien NULL
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester