07. oktober 2002 - 14:12Der 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..
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
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.
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();
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:
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.
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
Synes godt om
Ny brugerNybegynder
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.