erimitis Δημοσ. 14 Ιανουαρίου 2012 Δημοσ. 14 Ιανουαρίου 2012 Mπορεί κάποιος ουσιαστικά να με βοηθήσει ώστε να μπορέσει να γίνει σύνδεση MySQL με C++ Ενα πρόγραμμα που βρήκα και κολάει είναι: #include <iostream> #include <cstdlib> #include <string> using namespace std; // Specify our connection target and credentials const string server = "tcp://127.0.0.1:3306"; const string username = "root"; const string password = ""; // No password - thanks, WAMP Server! int main() { sql::Driver *driver; // Create a pointer to a MySQL driver object sql::Connection *dbConn; // Create a pointer to a database connection object sql::Statement *stmt; // Create a pointer to a Statement object to hold our SQL commands sql::ResultSet *res; // Create a pointer to a ResultSet object to hold the results of any queries we run // Try to get a driver to use to connect to our DBMS try { driver = get_driver_instance(); } catch (sql::SQLException e) { cout << "Could not get a database driver. Error message: " << e.what() << endl; system("pause"); exit(1); } // Try to connect to the DBMS server try { dbConn = driver->connect(server, username, password); } catch (sql::SQLException e) { cout << "Could not connect to database. Error message: " << e.what() << endl; system("pause"); exit(1); } stmt = dbConn->createStatement(); // Specify which connection our SQL statement should be executed on // Try to query the database try { stmt->execute("USE mysql"); // Select which database to use. Notice that we use "execute" to perform a command. res = stmt->executeQuery("show tables"); // Perform a query and get the results. Notice that we use "executeQuery" to get results back } catch (sql::SQLException e) { cout << "SQL error. Error message: " << e.what() << endl; system("pause"); exit(1); } // While there are still results (i.e. rows/records) in our result set... while (res->next()) { // ...get each field we want and output it to the screen // Note: The first field/column in our result-set is field 1 (one) and -NOT- field 0 (zero) // Also, if we know the name of the field then we can also get it directly by name by using: // res->getString("TheNameOfTheField"); cout << res->getString(1) << endl; } // Clean up after ourselves delete res; delete stmt; delete dbConn; system("pause"); return 0; }
georgemarios Δημοσ. 16 Ιανουαρίου 2012 Δημοσ. 16 Ιανουαρίου 2012 Δεν εχω δουλεψει καθολου τον c++ connector αλλα 1) που σου κολαει (σε ποια γραμμη, τι ερρορ παιρνεις) 2) τσεκαρε οτι η mysql σου τρέχει κανονικά (just to be sure) 3) κοιτωντας αυτο το παραδειγμα, μετα απο το >con = driver -> connect χρησιμοποιει το >con -> setSchema(database); . Δε ξερω αν κανει τη διαφορα 4) Στο .net που παιζω εγω, το ονομα της βασης το περναω στο connection string κατευθειαν (πχ string connStr = "server=localhost;user=root;database=mydb;password=;charset=utf8"; Για δοκιμασε το ετσι
erimitis Δημοσ. 16 Ιανουαρίου 2012 Μέλος Δημοσ. 16 Ιανουαρίου 2012 Ευχαριστώ για την προσπάθεια Αν σου τύχει κάτι συγκεκριμένο έστω πως να γίνει η σύνδεση θέλω θα είμαι υπόχρεως
georgemarios Δημοσ. 17 Ιανουαρίου 2012 Δημοσ. 17 Ιανουαρίου 2012 Τι εννοείς; Εξακολουθώ να ρωτώ, που σου κολαει (σε ποια γραμμη, τι ερρορ παιρνεις)
erimitis Δημοσ. 17 Ιανουαρίου 2012 Μέλος Δημοσ. 17 Ιανουαρίου 2012 Δεν το έχω τρέξει το παρακάτω γιατί είμαι σχολείο αλλά χρειάζεται κάποια βιβλιοθήκη για να τρέξει;;;;; #include <mysql.h> #include <stdio.h> main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "root"; char *password = "PASSWORD"; /* set me first */ char *database = "mysql"; conn = mysql_init(NULL); /* Connect to database */ if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } /* send SQL query */ if (mysql_query(conn, "show tables")) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } res = mysql_use_result(conn); /* output table name */ printf("MySQL Tables in mysql database:\n"); while ((row = mysql_fetch_row(res)) != NULL) printf("%s \n", row[0]); /* close connection */ mysql_free_result(res); mysql_close(conn); }
georgemarios Δημοσ. 17 Ιανουαρίου 2012 Δημοσ. 17 Ιανουαρίου 2012 Ναι, θέλει τον MySQL C Connector (οχι τον c++)
erimitis Δημοσ. 17 Ιανουαρίου 2012 Μέλος Δημοσ. 17 Ιανουαρίου 2012 Καλησπέρα κατέβασα και αυτό και δεν το τρέχει Δεν υπάρχει αυτός ο φάκελος στα Ιnclude #include <mysql.h> Βγάζει λάθος δεν το αναγνωρίζει MYSQL *conn; Αν έχεις κάτι έτοιμο δώστο Ευχαριστώ.
georgemarios Δημοσ. 17 Ιανουαρίου 2012 Δημοσ. 17 Ιανουαρίου 2012 1) ξεζιπάρεις τον κονεκτορ κάπου στο σκληρο σου δισκο. Στο φάκελο αυτο υπάρχουν οι φάκελοι include (μεσα στον οποιο ειναι και το mysql.h) και lib 2) οριζεις στον compiler/IDE σου να προσθέσει στα include folders του τον προαναφερθεντα φακελο include. Αν χρησιμοποιεις visual studio, αυτο γίνεται απο project properties > c/c++ > General > Additional Include Directories 3) οριζεις στον compiler/IDE σου να προσθέσει στα lib folders του τον προαναφερθεντα φακελο lib. Αν χρησιμοποιεις visual studio, αυτο γίνεται απο project properties > Linker > General > Additional Library Directories 4) οριζεις στον compiler/IDE σου να κάνει link το πρόγραμμα με τη βιβλιοθήκη libmysql.lib. Αν χρησιμοποιεις visual studio, αυτο γίνεται απο project properties > linker > additional dependencies (εκεί προσθέτεις το libmysql.lib μαζί με ότι άλλο εχει ηδη εκέι) 5) προσθέτεις μία ακόμα γραμμή στον κώδικά σου, πριν το #include <mysql.h> βάλε το #include <winsock.h> 6) κανε build....
erimitis Δημοσ. 18 Ιανουαρίου 2012 Μέλος Δημοσ. 18 Ιανουαρίου 2012 Χρησιμοποιώ τον dev c++ και δεν μπορώ να τον κουμαντάρω Εχεις κάποιον να μου προτείνεις.
georgemarios Δημοσ. 18 Ιανουαρίου 2012 Δημοσ. 18 Ιανουαρίου 2012 Οκ, η πρώτη μου αντίδραση θα ήταν να σε αποτρέψω από το να δουλέυεις με το ρόπαλο που λέγεται Dev C++. Υπάρχουν πολύ καλύτερα εργαλεία όπως το Visual studio c++ express, το Netbeans, το Code::Blocks κτλ κτλ αλλά αν ΠΡΕΠΕΙ να χρησιμοποιήσεις το Dev... 1) κατεβάζεις αυτο το devpack 2) Από το μενού το Dev, πας Tools > Package Manager, στο παράθυρο που ανοιγει επιλέγεις Install (πάνω αριστερά), και επιλεγεις το αρχειο που μόλις κατέβασες στο βήμα 1 3) τσέκαρε αν τα αρχεια που χρειάζεσαι εγκαταστάθηκαν: πας στο φάκελο εγκαταστασης του Dev (πιθανόν C:\Dev-Cpp). Στο φάκελο lib πρεπει να είναι ενα αρχειο libmysql.a και στο φάκελο include πρέπει να ειναι νεας φάκελος mysql που μέσα του έχει αναμεσα σε ολα τ' αλλα το mysql.h 4) Στο Dev ανοίγεις τα project options (menu Project > Project Options). 4.1) Πας "Directories" > "Include Directories" και προσθέτεις το φάκελο "C:\Dev-Cpp\include\mysql" 4.2) Πας "Parameters" και γράφεις μέσα στο κουτι του linker το "-lmysql" (χωρίς τα εισαγωγικά). Αυτο του λέει να κάνει λινκ με τη βιβλιοθηκη libmysql 5) compile......
erimitis Δημοσ. 18 Ιανουαρίου 2012 Μέλος Δημοσ. 18 Ιανουαρίου 2012 georgemarios ΕΥΧΑΡΙΣΤΩ ΕΙΣΑΙ ΑΡΧΟΝΤΑΣ Συνεχίζω να έχω προβλήματα, όποτε μπορεις γράψε 10 γραμμες κώδικα που να κάνει σε σένα σύνδεση Σε ευχαριστώ georgemarios ΕΥΧΑΡΙΣΤΩ ΕΙΣΑΙ ΑΡΧΟΝΤΑΣ Συνεχίζω να έχω προβλήματα, όποτε μπορεις γράψε 10 γραμμες κώδικα που να κάνει σε σένα σύνδεση Σε ευχαριστώ
georgemarios Δημοσ. 19 Ιανουαρίου 2012 Δημοσ. 19 Ιανουαρίου 2012 Δε μου λες όμως ΠΟΥ έχεις πρόβλημα Το παρακάτω δουλεύει μια χαρά Ανοιγει την βάση με όνομα "mysql" (υπάρχει ήδη από την εγκατασταση της mysql), και δειχενι στη κονσολα τα ονοματα ολων των πινακων > #include <winsock.h> #include <mysql.h> #include <stdio.h> main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "root"; char *password = ""; char *database = "mysql"; conn = mysql_init(NULL); /* Connect to database */ if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } /* send SQL query */ if (mysql_query(conn, "show tables")) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } res = mysql_use_result(conn); /* output table name */ printf("MySQL Tables in mysql database:\n"); while ((row = mysql_fetch_row(res)) != NULL) printf("%s \n", row[0]); /* close connection */ mysql_free_result(res); mysql_close(conn); }
erimitis Δημοσ. 19 Ιανουαρίου 2012 Μέλος Δημοσ. 19 Ιανουαρίου 2012 ΣΕ ΕΥΧΑΡΙΣΤΩ Οκ δουλεύει τα λέμε σε άλλες πνευματικές μονομαχίες
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα